Codebase list curl / 0481144
Imported Upstream version 7.24.0 Alessandro Ghedini 12 years ago
263 changed file(s) with 11497 addition(s) and 5829 deletion(s). Raw diff Collapse all Expand all
+1222
-1040
CHANGES less more
44 \___|\___/|_| \_\_____|
55
66 Changelog
7
8 Version 7.24.0 (24 Jan 2012)
9
10 Daniel Stenberg (24 Jan 2012)
11 - RELEASE-NOTES: synced with 70f71bb99f7ed9
12
13 Version 7.24.0 (24 Jan 2012)
14
15
16 Version 7.24.0 (24 Jan 2012)
17 Synced and prepared for 7.24.0 release. Two security problems, one bug fix,
18
19 Version 7.24.0 (24 Jan 2012)
20 two more contributors.
21
22 - gnutls: enforced use of SSLv3
23
24 With advice from Nikos Mavrogiannopoulos, changed the priority string to
25 add "actual priorities" and favour ARCFOUR. This makes libcurl work
26 better when enforcing SSLv3 with GnuTLS. Both in the sense that the
27 libmicrohttpd test is now working again but also that it mitigates a
28 weakness in the older SSL/TLS protocols.
29
30 Bug: http://curl.haxx.se/mail/lib-2012-01/0225.html
31 Reported by: Christian Grothoff
32
33 - tests: test CRLF in URLs
34
35 Related to the security vulnerability: CVE-2012-0036
36
37 Bug: http://curl.haxx.se/docs/adv_20120124.html
38
39 - URL sanitize: reject URLs containing bad data
40
41 Protocols (IMAP, POP3 and SMTP) that use the path part of a URL in a
42 decoded manner now use the new Curl_urldecode() function to reject URLs
43 with embedded control codes (anything that is or decodes to a byte value
44 less than 32).
45
46 URLs containing such codes could easily otherwise be used to do harm and
47 allow users to do unintended actions with otherwise innocent tools and
48 applications. Like for example using a URL like
49 pop3://pop3.example.com/1%0d%0aDELE%201 when the app wants a URL to get
50 a mail and instead this would delete one.
51
52 This flaw is considered a security vulnerability: CVE-2012-0036
53
54 Security advisory at: http://curl.haxx.se/docs/adv_20120124.html
55
56 Reported by: Dan Fandrich
57
58 - OpenSSL: don't disable security work-around
59
60 OpenSSL added a work-around for a SSL 3.0/TLS 1.0 CBC vulnerability
61 (http://www.openssl.org/~bodo/tls-cbc.txt). In 0.9.6e they added a bit
62 to SSL_OP_ALL that _disables_ that work-around despite the fact that
63 SSL_OP_ALL is documented to do "rather harmless" workarounds.
64
65 The libcurl code uses the SSL_OP_ALL define and thus logically always
66 disables the OpenSSL fix.
67
68 In order to keep the secure work-around workding, the
69 SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS bit must not be set and this change
70 makes sure of this.
71
72 Reported by: product-security at Apple
73
74 - RELEASE-NOTES: synced with 6e2fd2c9ea
75
76 3 more bugfixes, 3 more contributors
77
78 - CURLOPT_ACCEPTTIMEOUT_MS: spellfix
79
80 Dan Fandrich (20 Jan 2012)
81 - examples: updated README with two new example programs
82
83 Daniel Stenberg (20 Jan 2012)
84 - URL parse: user name with ipv6 numerical address
85
86 Using a URL with embedded user name and password didn't work if the host
87 was given as a numerical IPv6 string, like ftp://user:password@[::1]/
88
89 Reported by: Brandon Wang
90 Bug: http://curl.haxx.se/mail/archive-2012-01/0047.html
91
92 Yang Tse (20 Jan 2012)
93 - telnet.c: fix OOM triggered segfault
94
95 - testtrace.c: fix compiler warning
96
97 - OpenSSL: follow-up for commit a20daf90e3
98
99 avoid checking preprocessor definition official value
100
101 Pierre Joye (19 Jan 2012)
102 - - s, use, enable, for options name, avoiding conflicts with the names used in the makefile
103
104 Daniel Stenberg (19 Jan 2012)
105 - curl.1: improve --stderr wording
106
107 As is pointed out in this bug report, there can indeed be situation
108 where --stderr has a point even when the "real" stderr can be
109 redirected. Remove the superfluous and wrong comment.
110
111 bug: http://curl.haxx.se/bug/view.cgi?id=3476020
112
113 - KNOWN_BUGS: can't receive zero bytes file properly
114
115 http://curl.haxx.se/bug/view.cgi?id=3438362
116
117 Yang Tse (18 Jan 2012)
118 - ssl session caching: fix compiler warnings
119
120 Daniel Stenberg (18 Jan 2012)
121 - polarssl: show cipher suite name correctly with 1.1.0
122
123 Apparently ssl_get_ciphersuite() is needed to get the name of the used
124 cipher suite.
125
126 - polarssl: show error code correctly
127
128 The value was turned negative when it shouldn't have been
129
130 - polarssl: havege_rand is not present in version 1.1.0
131
132 ... it is now named havege_random!
133
134 Reported by: Robert Schumann
135 Bug: http://curl.haxx.se/mail/lib-2012-01/0178.html
136
137 - RELEASE-NOTES: synced with 5d70a61b94604
138
139 5 more bug fixes, 1 more contributor
140
141 - [Colin Hogben brought this change]
142
143 Add two tests for telnet: URLs
144
145 Add simple telnet tests which (ab)use the http server.
146 The second test checks for an input file handling bug.
147
148 - [Colin Hogben brought this change]
149
150 Remove bogus optimisation of telnet upload.
151
152 Remove wrongly implemented optimisation of telnet upload, apparently
153 intended to allow the library to avoid manually polling for input.
154
155 - [Colin Hogben brought this change]
156
157 Use correct file descriptor for telnet upload.
158
159 Fix a bug where input was read from stdin even when a different FILE *
160 had been configured via CURLOPT_READDATA
161
162 Yang Tse (18 Jan 2012)
163 - OpenLDAP: fix LDAP connection phase memory leak
164
165 bug: http://curl.haxx.se/bug/view.cgi?id=3474308
166
167 - [Johannes Bauer brought this change]
168
169 OpenSSL: fix PKCS#12 certificate parsing related memory leak
170
171 Leak triggered when CURLOPT_SSLCERTTYPE and CURLOPT_SSLKEYTYPE set to P12
172 and both CURLOPT_SSLCERT and CURLOPT_SSLKEY point to the same PKCS#12 file.
173
174 - OpenSSL: SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG option is no longer enabled
175
176 SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG option enabling allowed successfull
177 interoperability with web server Netscape Enterprise Server 2.0.1 released
178 back in 1996 more than 15 years ago.
179
180 Due to CVE-2010-4180, option SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG has
181 become ineffective as of OpenSSL 0.9.8q and 1.0.0c. In order to mitigate
182 CVE-2010-4180 when using previous OpenSSL versions we no longer enable
183 this option regardless of OpenSSL version and SSL_OP_ALL definition.
184
185 - tests: enable time tracing on tests 500, 573 and 585
186
187 - tests: testtrace.[ch] provides debug callback for libtest usage
188
189 Allows tests from the libtest subdir to generate log traces
190 similar to those of curl with --tracetime and --trace-ascii
191 options but with output going to stderr.
192
193 - sws.c: fix proxy mode secondary connection monitoring condition
194
195 - add LF termination to infof() trace string
196
197 - sws.c: improve proxy mode torture testing support - followup to 18c6c8a5
198
199 Daniel Stenberg (16 Jan 2012)
200 - url2file: new simple example
201
202 Just showing how to download the contents of a given URL into a local
203 file.
204
205 Based on a suggestion and example code by Georg Potthast
206
207 - imap.c: a dead simple imap example
208
209 Just to show that IMAP is used just like other protocols
210
211 Yang Tse (16 Jan 2012)
212 - sws.c: improve proxy mode torture testing support - followup to c731fc58
213
214 - sws.c: improve proxy mode torture testing support - followup to d4bf87dc
215
216 - Curl_proxyCONNECT() trace known bug #39
217
218 Daniel Stenberg (14 Jan 2012)
219 - test: verify HTTP response code 308
220
221 This newly speced HTTP status code already works as intended in the new
222 spec:
223 http://greenbytes.de/tech/webdav/draft-reschke-http-status-308-02.html
224
225 Test 1325 is added to verify that the method is kept after the redirect
226
227 Yang Tse (13 Jan 2012)
228 - http_negotiate_sspi.c: fix compiler warning
229
230 - ssh.c: fix compiler warning
231
232 - sws.c: improve proxy mode torture testing support
233
234 Daniel Stenberg (12 Jan 2012)
235 - RELEASE-NOTES: synced with 9f20379fe4
236
237 5 bug fixes, 3 more contributors
238
239 - hostip: avoid getaddrinfo when c-ares is used
240
241 Some functions using getaddrinfo and gethostbyname were still
242 mistakingly being used/linked even if c-ares was selected as resolver
243 backend.
244
245 Reported by: Arthur Murray
246 Bug: http://curl.haxx.se/mail/lib-2012-01/0160.html
247
248 Yang Tse (9 Jan 2012)
249 - sws.c: replace sleep() usage with wait_ms()
250
251 Daniel Stenberg (9 Jan 2012)
252 - [gsengun brought this change]
253
254 FTP: CURLE_PARTIAL_FILE should not cause control connection to be closed
255
256 Test 161 updated accordingly
257
258 Yang Tse (8 Jan 2012)
259 - sws.c: some compiler warning fixes
260
261 - lib/setup.h: portable symbolic names for Winsock shutdown() mode flags
262
263 - sws.c: 812fa73057 follow-up
264
265 - sws.c: some IPv6 proxy mode peparatory adjustments
266
267 Daniel Stenberg (5 Jan 2012)
268 - curl.h: provide backwards compatible symbols
269
270 In commit c834213ad52 we re-used some obsolete error codes, and here are
271 two defines that makes sure existing source codes that happen to use any
272 of these deprecated ones will still compile.
273
274 As usual, define CURL_NO_OLDIES to avoid getting these "precaution
275 defines".
276
277 - win32-threaded-resolver: stop using a dummy socket
278
279 Previously the code would create a dummy socket while resolving just to
280 have curl_multi_fdset() return something but the non-win32 version
281 doesn't do it this way and the creation and use of a socket that isn't
282 made with the common create-socket callback can be confusing to apps
283 using the multi_socket API etc.
284
285 This change removes the dummy socket and thus will cause
286 curl_multi_fdset() to return with maxfd == -1 more often.
287
288 - [Peter Sylvester brought this change]
289
290 OpenSSL: remove reference to openssl internal struct
291
292 With this change, curl compiles with the new OPENSSL_NO_SSL_INTERN
293 cflag. This flag might become the default in some distant future.
294
295 Yang Tse (4 Jan 2012)
296 - test1320 test1321: avoid User-Agent comparison
297
298 - httpserver.pl: reorder sws command line options
299
300 make 'pidfile' and 'logfile' options appear first on command line in order
301 to ensure that processing of other options which write to logfile do this
302 to intended file and not the default one.
303
304 - sws.c: fix proxy mode segfault
305
306 - tool_formparse.c: fix compiler warning: enumerated type mixed with another type
307
308 - krb5.c: fix compiler warning: variable set but not used
309
310 Daniel Stenberg (4 Jan 2012)
311 - KNOWN_BUGS: #77 CURLOPT_FORBID_REUSE kills NTLM
312
313 - [Steve Holme brought this change]
314
315 Fixed use of CURLUSESSL_TRY for POP3 and IMAP based connections.
316
317 Fixed a problem in POP3 and IMAP where a connection would fail when
318 CURLUSESSL_TRY was specified for a server that didn't support
319 SSL/TLS connections rather than continuing.
320
321 - [Steve Holme brought this change]
322
323 Fixed incorrect error code being returned in STARTTLS
324
325 The STARTTLS response code in SMTP, POP3 and IMAP would return
326 CURLE_LOGIN_DENIED rather than CURLE_USE_SSL_FAILED when SSL/TLS
327 was not available on the server.
328
329 Reported by: Gokhan Sengun
330 Bug: http://curl.haxx.se/mail/lib-2012-01/0018.html
331
332 - curl_easy_setopt: refer to the most recent URI RFC
333
334 - RELEASE-NOTES: synced with 2f4a487a68
335
336 Two bugfixes, two more contributors
337
338 - tests: test IMAP, POP3 and SMTP over HTTP proxy tunnel
339
340 - test proxy supports CONNECT
341
342 There's a new 'http-proxy' server for tests that runs on a separate port
343 and lets clients do HTTP CONNECT to other ports on the same host to
344 allow us to test HTTP "tunneling" properly.
345
346 Test cases now have a <proxy> section in <verify> to check that the
347 proxy protocol part matches correctly.
348
349 Test case 80, 83, 95, 275, 503 and 1078 have been converted. Test 1316
350 was added.
351
352 - curl_easy_strerror.3: minor synopsis edit of the look
353
354 Yang Tse (2 Jan 2012)
355 - hostip.c: fix potential write past the end of string buffer
356
357 - hostip.c: fix Curl_loadhostpairs() OOM handling
358
359 - runtests.pl: on test failure, don't show trace log files of other tests
360
361 Daniel Stenberg (1 Jan 2012)
362 - Curl_input_negotiate: use the correct buffer for input
363
364 Unfortunately we have no test cases for this and I have no SSPI build or
365 server to verify this with. The change seems simple enough though.
366
367 Bug: http://curl.haxx.se/bug/view.cgi?id=3466497
368 Reported by: Patrice Guerin
369
370 - runtests: put trace outputs in log/trace[num] for all tests
371
372 - just a stupid typo
373
374 - SFTP dir: increase buffer size counter
375
376 When the buffer gets realloced to hold the file name in the
377 SSH_SFTP_READDIR_LINK state, the counter was not bumped accordingly.
378
379 Reported by: Armel Asselin
380 Patch by: Armel Asselin
381 Bug: http://curl.haxx.se/mail/lib-2011-12/0249.html
382
383 - RELEASE-NOTES: synced with 81ebdd9e287
384
385 6 more bugfixes, 3 more contributors
386
387 - create_hostcache_id: use the key lower cased
388
389 ... to make sure the DNS cache is properly case insensitive
390
391 - changed case: use new host name for subsequent HTTP requests
392
393 When a HTTP connection is re-used for a subsequent request without
394 proxy, it would always re-use the Host: header of the first request. As
395 host names are case insensitive it would make curl send another host
396 name case that what the particular request used.
397
398 Now it will instead always use the most recent host name to always use
399 the desired casing.
400
401 Added test case 1318 to verify.
402
403 Bug: http://curl.haxx.se/mail/lib-2011-12/0314.html
404 Reported by: Alex Vinnik
405
406 - CURLOPT_RESOLVE: avoid adding already present host names
407
408 The load host names to DNS cache function was moved to hostip.c and it
409 now makes sure to not add host names that already are present in the
410 cache. It would previously lead to memory leaks when for example using
411 the --resolve and multiple URLs on the command line.
412
413 Dan Fandrich (31 Dec 2011)
414 - runtests.pl: Use logmsg more consistently
415
416 Daniel Stenberg (30 Dec 2011)
417 - [Alessandro Ghedini brought this change]
418
419 examples: update README, Makefile.inc and gitignore with pop3s examples
420
421 - [Alessandro Ghedini brought this change]
422
423 examples: add a couple of simple pop3s examples
424
425 These examples show how to fetch a single message (RETR command) and how to
426 list all the messages in a given mailbox (LIST command), with authentication
427 via SSL.
428
429 They were both based on the https.c example.
430
431 Yang Tse (30 Dec 2011)
432 - removed execute file permission
433
434 - removed trailing whitespace
435
436 - ftpserver.pl: arbitrary application data splitting among TCP packets [II]
437
438 Take in account that 'pingpong' server commands may arrive splitted among
439 several sockfilt 'DATA' PDU's.
440
441 - ftpserver.pl: arbitrary application data splitting among TCP packets [I]
442
443 Initial step in order to allow our pingpong server to better support arbitrary
444 application data splitting among TCP packets. This first commit only addresses
445 reasembly of data that sockfilter processes reads from soockets and pingpong
446 server later reads from sockfilters stdout.
447
448 - testcurl.pl: 82c344a3 follow-up
449
450 - testcurl.pl: log ACLOCAL_FLAGS
451
452 - testcurl.pl: third party m4 warnings filtering adjustment
453
454 Make testcurl.pl ignore messages pertaining to third party m4 files we don't
455 care nor use on a file basis policy while retaining all other warnings.
456
457 This closes temporary commit e71e226f
458
459 Kamil Dudka (25 Dec 2011)
460 - transfer: avoid unnecessary timeout event when waiting for 100-continue
461
462 The commit 9dd85bc unintentionally changed the way we compute the time
463 spent waiting for 100-continue. In particular, when using a SSL client
464 certificate, the time spent by SSL handshake was included and could
465 cause the CURL_TIMEOUT_EXPECT_100 timeout to be mistakenly fired up.
466
467 Bug: https://bugzilla.redhat.com/767490
468 Reported by: Mamoru Tasaka
469
470 Yang Tse (25 Dec 2011)
471 - transfer.c: move a logging statement placement
472
473 - hash.c: fix OOM triggered segfault
474
475 Daniel Stenberg (24 Dec 2011)
476 - ftp_do_more: don't return success until all is done
477
478 ftp_do_more() returns after accepting the server connect however it
479 needs to fall through and set "*complete" to TRUE before exit from the
480 function.
481
482 Bug: http://curl.haxx.se/mail/lib-2011-12/0250.html
483 Reported by: Gokhan Sengun
484
485 - Curl_do_more: fix typo logic
486
487 In the recent do_more fix the new logic was mistakenly checking the
488 pointer instead of what it points to.
489
490 Reported by: Gokhan Sengun
491 Bug: http://curl.haxx.se/mail/lib-2011-12/0250.html
492
493 - SFTP mkdir: use correct permission
494
495 When sending quote command to a SFTP server and 'mkdir' was used, it
496 would send fixed permissions and not use the CURLOPT_NEW_DIRECTORY_PERMS
497 as it should.
498
499 Reported by: Armel
500 Patch by: Armel
501 Bug: http://curl.haxx.se/mail/lib-2011-12/0249.html
502
503 Yang Tse (23 Dec 2011)
504 - buildconf: minor tweaks commit 430527a1 follow-up
505
506 Daniel Stenberg (23 Dec 2011)
507 - [Colin Hogben brought this change]
508
509 Require a less ancient version of perl
510
511 The INTERNALS document suggested that compatibility should be
512 maintained with perl version 4, but this was untrue - scripts such as
513 chksource.pl and runtests.pl use perl5-isms.
514
515 - resolve: don't leak pre-populated dns entries
516
517 CURLOPT_RESOLVE populates the DNS cache with entries that are marked as
518 eternally in use. Those entries need to be taken care of when the cache
519 is killed off.
520
521 Bug: http://curl.haxx.se/bug/view.cgi?id=3463121
522 Reported by: "tw84452852"
523
524 - new test: verify --resolve
525
526 Test 1317 verifies --resolve (leaked memory)
527
528 Bug: http://curl.haxx.se/bug/view.cgi?id=3463121
529 Reported by: "tw84452852"
530
531 Yang Tse (23 Dec 2011)
532 - testcurl.pl: temporary change
533
534 Allow autobuilds to run a couple of days without filtering out aclocal
535 underquoted definition warnings.
536
537 Daniel Stenberg (21 Dec 2011)
538 - operate: removed a single trailing space
539
540 Dan Fandrich (21 Dec 2011)
541 - --retry: Retry transfers on timeout and DNS errors
542
543 Yang Tse (21 Dec 2011)
544 - buildconf: minor tweaks
545
546 - formdata.c: OOM handling fixes
547
548 Daniel Stenberg (21 Dec 2011)
549 - TODO: 1.7 Happy Eyeball dual stack connect
550
551 Dan Fandrich (20 Dec 2011)
552 - runtests.pl: Fixed perl warning when using the -l option
553
554 Daniel Stenberg (20 Dec 2011)
555 - RELEASE-NOTES: added two references
556
557 - Curl_socket_check: enlarge poll struct array to 3
558
559 This function was introduced in commit 5527417afae0 and as pointed out
560 by Gokhan Sengun, the array with poll structs must large enough to hold
561 3 sockets since that is what the function can accept. It could be noted
562 that he had this fixed in his patch as posted in
563 http://curl.haxx.se/mail/lib-2011-12/0179.html
564
565 Bug: http://curl.haxx.se/mail/lib-2011-12/0228.html
566 Reported by: Gokhan Sengun
567
568 - RELEASE-NOTES: synced with 380bade777
569
570 5 new bugfixes, 2 new changes and 4 new contributors
571
572 - TODO: remove active FTP from section 2.1
573
574 It is no longer done blocking in the multi interface
575
576 - libcurl docs: add the new FTP accept option + errors
577
578 - timeleft_accept: ack global timeout, moved to ftp.c
579
580 First off the timeout for accepting a server connect back must of course
581 respect a global timeout. Then the timeleft function is only used by ftp
582 code so it was moved to ftp.c and made static.
583
584 - libcurl-tutorial.3: curl doesn't sent pragma no-cache
585
586 It did a long time ago
587
588 - libcurl-multi.3: active FTP is no longer blocking!
589
590 - FTP: move FTP-specific struct field to ftpc_conn
591
592 "wait_data_conn" was added to the connectionbits in commit c834213ad5 for
593 handling active FTP connections but as it is purely FTP specific and now
594 only ever accessed by ftp.c I moved it into the FTP connection struct.
595
596 - non-blocking active FTP: cleanup multi state usage
597
598 Backpedaled out the funny double-change of state in the multi state
599 machine by adding a new argument to the do_more() function to signal
600 completion. This way it can remain in the DO_MORE state properly until
601 done. Long term, the entire DO_MORE logic should be moved into the FTP
602 code and be hidden from the multi code as the logic is only used for
603 FTP.
604
605 - [Gokhan Sengun brought this change]
606
607 FTP: perform active connections non-blocking
608
609 1- Two new error codes are introduced.
610
611 CURLE_FTP_ACCEPT_FAILED to be set whenever ACCEPTing fails because of
612 FTP server connected.
613
614 CURLE_FTP_ACCEPT_TIMEOUT to be set whenever ACCEPTing timeouts.
615
616 Neither of these errors are considered fatal and control connection
617 remains OK because it could just be a firewall blocking server to
618 connect to the client.
619
620 2- One new setopt option was introduced.
621
622 CURLOPT_ACCEPTTIMEOUT_MS
623
624 It sets the maximum amount of time FTP client is going to wait for a
625 server to connect. Internal default accept timeout is 60 seconds.
626
627 - sockets: new Curl_socket_check() can wait for 3 sockets
628
629 This offers an alternative to the existing Curl_socket_ready() API which
630 only checks one socket for read and one for write.
631
632 - [Cédric Deltheil brought this change]
633
634 curl.h: add __ANDROID__ macro check
635
636 When working with the Android Standalone Toolchain the compiler defines
637 this macro:
638
639 /path/to/arm-linux-androideabi-gcc -E -dM - < /dev/null \
640 | grep -i android
641 #define __ANDROID__ 1
642
643 We really need to check both ANDROID and __ANDROID__ since I've observed
644 that:
645
646 * if you use Android.mk file(s) and the 'ndk-build' script (aka vanilla
647 way), ANDROID is predefined (see -DANDROID extra C flag),
648
649 * if you use the Android Standalone Toolchain, then __ANDROID__ is
650 predefined as stated by the compiler
651
652 - lib500: verify timers relative each other
653
654 As commit ce896875f8 fixed a timer that accidentally had been moved in
655 code and then returned a bad timer, the lib500.c code (used in test 500
656 and some others) now verifies 5 timers against each other to verify that
657 they have the correct relative values. We cannot compare against
658 absolute values as the timings will vary a lot.
659
660 - Curl_pgrsTime: store now in an auto variable
661
662 It makes it easier to introduce debug outputs in this function, and
663 everything in the function is using the value anyway so it might even be
664 more efficient.
665
666 - timer: restore PRETRANSFER timing
667
668 Regression introduced in 7.23.0 with commit 9dd85bce. The function in
669 which the PRETRANSFER time stamp was recorded was moved in time causing
670 it be stored very quickly after the start timestamp. On most systems
671 shorter than 1 millisecond and thus it wouldn't even show with -w
672 "%{time_pretransfer}" using the command line tool.
673
674 Bug: http://curl.haxx.se/mail/archive-2011-12/0022.html
675 Reported by: Toni Moreno
676
677 - [Bernhard Reutner-Fischer brought this change]
678
679 libcurl.m4: Fix quoting arguments of AC_LANG_PROGRAM
680
681 Parameters were underquoted, resulting in
682 warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body
683
684 Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
685
686 - gitignore: ignore the symbol versioning file
687
688 - tutorial: remove CURLM_CALL_MULTI_PERFORM add sharing
689
690 The CURLM_CALL_MULTI_PERFORM reference is an old leftover I had to
691 remove.
692
693 I also added some blurb to the previously blank "sharing" section.
694
695 - [Alessandro Ghedini brought this change]
696
697 configure: add symbols versioning option
698
699 Allow, at configure time, the production of versioned symbols. The
700 symbols will look like "CURL_<FLAVOUR>_<VERSION> <SYMBOL>", where
701 <FLAVOUR> represents the SSL flavour (e.g. OPENSSL, GNUTLS, NSS, ...),
702 <VERSION> is the major SONAME version and <SYMBOL> is the actual symbol
703 name. If no SSL library is enabled the symbols will be just
704 "CURL_<VERSION> <SYMBOL>".
705
706 - [Sven Wegener brought this change]
707
708 Use Curl_ssl_connect for non-blocking connect fallback
709
710 This gets the appconnect time right for ssl backends, which don't
711 support non-blocking connects.
712
713 Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
714
715 - RELEASE-NOTES: synced with af9bc1604c1
716
717 One new feature, one bug fix. Introduced references in this file for
718 mentioned issues after this discussion:
719 http://curl.haxx.se/mail/lib-2011-12/0187.html
720
721 The plan is to let the references get moved over to the changes.html
722 file at release-time
723
724 - curl.1: minor white space cleanup
725
726 - [Alessandro Ghedini brought this change]
727
728 docs: improve description of the --capath option
729
730 Document the possibility of providing multiple values using the ":"
731 separator, and the fact that the default value will be ignored if the
732 option is used.
733
734 - [Steve Holme brought this change]
735
736 DOCS: Added SMTP information to CURLOPT_INFILESIZE
737
738 - Curl_proxyCONNECT: use newlines in debug output
739
740 - curl -F: fix multiple file upload with custom type
741
742 Test case 1315 was added to verify this functionality. When passing in
743 multiple files to a single -F, the parser would get all confused if one
744 of the specified files had a custom type= assigned.
745
746 Reported by: Colin Hogben
747
748 - [Colin Hogben brought this change]
749
750 New test for multiple file upload
751
752 test 1315 checks correct behaviour when uploading multiple files.
753 Buggy behaviour has been seen where only two attachments are sent.
754
755 Yang Tse (15 Dec 2011)
756 - configure: libtool 1.5 tweaks
757
758 Daniel Stenberg (15 Dec 2011)
759 - [Colin Hogben brought this change]
760
761 Correct substitution var names
762
763 Two variable names were wrong in the documentation.
764
765 - [Colin Hogben brought this change]
766
767 Correct default upload mimetype in manual
768
769 The default content-type for file uploads is application/octet-stream,
770 not text/plain as stated in the MANUAL.
771
772 - [Alessandro Ghedini brought this change]
773
774 docs: fix typo in curl_easy_setopt manpage
775
776 Yang Tse (13 Dec 2011)
777 - if2ip.[ch]: fix compilation with MinGW
778
779 Avoid 'interface' literal that some MinGW versions define as a macro
780
781 - connect.c: fix compiler warning 'enumerated type is mixed with another type'
782
783 - if2ip.c: fix compiler warning 'unused parameter'
784
785 - pop3.c: fix compiler warning variable may be used uninitialized
786
787 - if2ip.c: fix compiler warning 'enumerated type is mixed with another type'
788
789 Daniel Stenberg (12 Dec 2011)
790 - [Jason Glasgow brought this change]
791
792 CURLOPT_INTERFACE: avoid resolving interfaces names
793
794 Do not try to resolve interfaces names via DNS by recognizing interface
795 names in a few ways. If the interface option argument has a prefix of
796 "if!" then treat the argument as only an interface. Similarly, if the
797 interface argument is the name of an interface (even if it does not have
798 an IP address assigned), treat it as an interface name. Finally, if the
799 interface argument is prefixed by "host!" treat it as a hostname that
800 must be resolved by /etc/hosts or DNS.
801
802 These changes allow a client using the multi interfaces to avoid
803 blocking on name resolution if the interface loses its IP address or
804 disappears.
805
806 - RELEASE-NOTES: synced with 1259ccf7474
807
808 5 more bugfixes, 5 more contributors
809
810 - [Steve Holme brought this change]
811
812 ConnectionExists: Fix reuse for TLS upgraded connections
813
814 Fixed the connection reuse detection in ConnectionExists() when
815 comparing a new connection that is non-SSL based against that of a SSL
816 based connection that has become so by being upgraded via TLS.
817
818 - create_conn: don't switch to HTTP protocol if tunneling is enabled
819
820 This is a regression since who knows when. When spotting that a HTTP
821 proxy is used we must not uncondititionally enable the HTTP protocol
822 since if we do tunneling through the proxy we're still using the target
823 protocol.
824
825 Reported by: Naveen Chandran
826
827 - FAQ: add --resolve details to question 3.19
828
829 - [Gokhan Sengun brought this change]
830
831 Curl_closesocket: clear sock_accepted on close
832
833 As a follow-up from commit d5b5f64bce3a8, clear the sock_accepted status
834 when such a socket is closed to avoid a re-used connection to retain the
835 state wrongly.
836
837 Bug: http://curl.haxx.se/mail/lib-2011-12/0079.html
838
839 - static SSL windows builds: add more libs to the link
840
841 Starting with some recent OpenSSL versions (1.0.0e was mentioned)
842 linking with a static openssl requires a set of more libs to be linked
843 on Windows.
844
845 Thanks also to Steve Holme and Martin Storsjö for additional feedback.
846
847 Bug: http://curl.haxx.se/mail/lib-2011-12/0063.html
848 Reported by: Ward Willats
849
850 - [Gokhan Sengun brought this change]
851
852 multi interface: fix block when CONNECT_ONLY option is used
853
854 Dan Fandrich (6 Dec 2011)
855 - Added some include files in a couple of example programs
856
857 This improves portability of the examples. This patch was
858 submitted to the OpenBSD ports collection by naddy.
859
860 Daniel Stenberg (6 Dec 2011)
861 - MakefileBuild: fix the static build
862
863 This is a left-over fix from commit b7e242de0e that Tom Wright
864 suggested.
865
866 Reported by: Ward Willats
867
868 - OpenSSL: check for the SSLv2 function in configure
869
870 If no SSLv2 was detected in OpenSSL by configure, then we enforce the
871 OPENSSL_NO_SSL2 define as it seems some people report it not being
872 defined properly in the OpenSSL headers.
873
874 - CURLOPT_CONNECTTIMEOUT: default is 300 seconds
875
876 If the option is set to 0, the default timeout will be used - which in
877 modern libcurl versions equals 300 seconds (== 5 minutes).
878
879 Bug: http://curl.haxx.se/mail/lib-2011-12/0051.html
880 Reported by: Vladimir Grishchenko
881
882 - [Rob Ward brought this change]
883
884 progress function example: include timed interval
885
886 Adds a timer based off of CURLINFO_TOTAL_TIME that is used to perform
887 certain actions after a minimum amount of time has passed using the
888 progress function. As a consequence the curl handle is now also passed
889 into the progress function. Progress example now also includes an
890 example of how to retreive the TOTAL_TIME and print it out.
891
892 - RELEASE-NOTES: synced with 347f951c390
893
894 8 more bugs, 5 more contributors
895
896 - SSH: fix CURLOPT_SSH_HOST_PUBLIC_KEY_MD5
897
898 When a 32 digit hex key is given as a hostkey md5 checksum, the code
899 would still run it against the knownhost check and not properly
900 acknowledge that the md5 should then be the sole guide for.
901
902 The verbose output now includes the evaluated MD5 hostkey checksum.
903
904 Some related source code comments were also updated.
905
906 Bug: http://curl.haxx.se/bug/view.cgi?id=3451592
907 Reported by: Reza Arbab
908
909 - Curl_resolver_is_resolved: differentiate between host/proxy errors
910
911 As there are different return codes for host vs proxy errors, this function
912 now properly returns the code properly depending on what was attempted to get
913 resolved.
914
915 Bug: http://curl.haxx.se/mail/archive-2011-12/0010.html
916 Reported by: Jason Liu
917
918 - c-ares: return proxy failure for all proxy types
919
920 When making a distinction which return code to return, the code previously
921 only regarded HTTP proxies to be proxies and thus return host-related errors
922 for failures on other proxy types than HTTP. Now all proxy types will be
923 considered proxies...
924
925 - FTP: close callback fix
926
927 Keep track of which sockets that are the result of accept() calls and
928 refuse to call the closesocket callback for those sockets. Test case 596
929 now verifies that the open socket callback is called the same number of
930 times as the closed socket callback for active FTP connections.
931
932 Bug: http://curl.haxx.se/mail/lib-2011-12/0018.html
933 Reported by: Gokhan Sengun
934
935 - FTP: call opensocket callback properly
936
937 When the new socket is created for an active connection, it is now done
938 using the open socket callback.
939
940 Test case 596 was modified to run fine, although it hides the fact that
941 the close callback is still called too many times, as it also gets
942 called for closing sockets that were created with accept().
943
944 - Curl_socket: internal replacement for socket()
945
946 Moved out into a separate function to work as a "generic" socket()
947 replacement.
948
949 - test: verify the opensocket callback for FTP
950
951 test 595: for passive FTP
952 test 596: for active FTP
953
954 - [Jason Glasgow brought this change]
955
956 CURLOPT_DNS_SERVERS: set name servers if possible (fix)
957
958 Ensure that CURLE_OK is returned if setting the name servers is successfull.
959
960 - multi interface: only use non-NULL function pointer!
961
962 If the socket callback function pointer hasn't been set, we must not
963 attempt to use it. Commit adc88ca20 made it more likely to occur.
964
965 - [Jason Glasgow brought this change]
966
967 multi: handle timeouts on DNS servers by checking for new sockets
968
969 If the first name server is not available, the multi interface does
970 not invoke the socket_cb when the DNS request to the first name server
971 timesout. Ensure that the list of sockets are always updated after
972 calling Curl_resolver_is_resolved.
973
974 This bug can be reproduced if Curl is complied with --enable_ares and
975 your code uses the multi socket interfaces and the
976 CURLMOPT_SOCKETFUNCTION option. To test try:
977 iptables -I INPUT \
978 -s $(sed -n -e '/name/{s/.* //p;q}' /etc/resolv.conf)/32 \
979 -j REJECT
980 and then run a program which uses the multi-interface.
981
982 - test 815: verify POP3 dot-first-on-line unescaping
983
984 - [Steve Holme brought this change]
985
986 POP3: fixed escaped dot not being striped out
987
988 Changed the eob detection to work across the whole of the buffer so that
989 lines that begin with a dot (which the server will have escaped) are
990 passed to the client application correctly.
991
992 Yang Tse (30 Nov 2011)
993 - buildconf: follow-up for commit 7e02f7fd
994
995 - buildconf: fix libtool 1.5.x warnings triggered with autoconf 2.6x or later
996
997 Using libtool 1.5.x (x < 26) with autoconf 2.6x or later generates warnings
998 due to some libtool variables not following naming convention for variables
999 that will be cached.
1000
1001 This is addressed renaming a couple of variables to make these follow expected
1002 naming convention.
1003
1004 Daniel Stenberg (30 Nov 2011)
1005 - RELEASE-NOTES: synced with 1038d0aa1
1006
1007 5 bugfixes and 1 new contributor
1008
1009 Yang Tse (29 Nov 2011)
1010 - pop3.c: fix compiler warning
1011
1012 - configure: avoid usage of macro PKG_CHECK_MODULES
1013
1014 libidn option adjusted in order to use pkg-config info when available
1015 in a similar way as we already do for other libraries.
1016
1017 Daniel Stenberg (29 Nov 2011)
1018 - POP3: detect when LIST returns no mails
1019
1020 By making sure the function can detect an "end of body" sequence
1021 immediately on the first line, test 811 is now enabled.
1022
1023 - ftpserver: output CRLF in logs
1024
1025 Previously the log function would just filter out all CR and LF
1026 occurances from the log to make it more readable. This had the downside
1027 that it made it very hard to see CR LFs when they actually matters.
1028
1029 Now, they're instead converted to "[CR]" and "[LR]" in the log to become
1030 apparent to readers.
1031
1032 - POP3: fix end of body detection
1033
1034 Curl_pop3_write() now has a state machine that scans for the end of a
1035 POP3 body so that the CR LF '.' CR LF sequence can come in everything
1036 from one up to five subsequent packets.
1037
1038 Test case 810 is modified to use SLOWDOWN which makes the server pause
1039 between each single byte and thus makes the POP3 body get sent to curl
1040 basically one byte at a time.
1041
1042 - test: added POP3 test with dot-prefixed line
1043
1044 Test 815 is disabled for now since libcurl currently doesn't unescape
1045 such lines the way it should. See mail:
1046
1047 http://curl.haxx.se/mail/lib-2011-11/0324.html
1048
1049 - configure: fix to make older pkg-config play well
1050
1051 configure.ac:1349: error: possibly undefined macro: PKG_CONFIG_LIBDIR
1052
1053 Obviously this is not a problem with pkg-config 0.26 but older versions
1054 seem to show this.
1055
1056 Fix suggested by: Kamil Dudka
1057 Reported by: Guenter
1058 Bug: http://curl.haxx.se/mail/lib-2011-11/0298.html
1059
1060 - test 1211: FTP test to repeat bug #3429299
1061
1062 "Active FTP hangs if server does not open data connection"
1063
1064 The server first sends a 150 and then when libcurl waits for the data
1065 transfer, the server sends a 425.
1066
1067 - [Mark Brand brought this change]
1068
1069 configure: add support for pkg-config detection of libidn
1070
1071 - FTP tests 1206 - 1209: don't expect QUIT
1072
1073 The protocol parts for these tests do not include QUIT simply because
1074 the error is CURLE_OPERATION_TIMEDOUT (28) which is a generic timeout
1075 error without specificly saying for which connection it concerns, and
1076 for timeouts libcurl marks the control channel as "invalid". As this
1077 test case times out for the data connection it could still use the
1078 control channel.
1079
1080 Yang Tse (25 Nov 2011)
1081 - CyaSSL 2.0+ library initialization adjustment
1082
1083 Daniel Stenberg (25 Nov 2011)
1084 - [Jonas Schnelli brought this change]
1085
1086 rectify comment
1087
1088 - SSLSESSION_SHARED: new macro to check if session is shared
1089
1090 Added convenience macro to use to check if a handle is using a shared
1091 SSL session, and fixed so that Curl_ssl_close_all() doesn't lock when
1092 the session isn't shared.
1093
1094 Yang Tse (25 Nov 2011)
1095 - telnet.c: fix MSVC compiler warning
1096
1097 - tvdiff_secs(): sub-zero time difference adjustment
1098
1099 Skip a floating point addition operation when integral part of time difference
1100 is zero. This avoids potential floating point addition rounding problems while
1101 preserving decimal part value.
1102
1103 Daniel Stenberg (25 Nov 2011)
1104 - telnet: fix macros to allow proper semicolon use
1105
1106 Macros that look like function calls need to be made so that we can use
1107 semicolons properly for indentation and for reducing the risk for
1108 mistakes when using them.
1109
1110 - [Laurent Rabret brought this change]
1111
1112 TELNET: improved treatment of options
1113
1114 1) enables the Window Size option
1115 2) allows the server to enable the echo mode
1116 3) allows an app using libcurl to disable the default binary mode
1117
1118 Signed-off-by: Laurent Rabret
1119
1120 - RELEASE-NOTES: synced with 2c905fd1f82
1121
1122 - [Jonas Schnelli brought this change]
1123
1124 query-part: ignore the URI part for given protocols
1125
1126 By setting PROTOPT_NOURLQUERY in the protocol handler struct, the
1127 protocol will get the "query part" of the URL cut off before the data is
1128 handled by the protocol-specific code. This makes libcurl adhere to
1129 RFC3986 section 2.2.
1130
1131 Test 1220 is added to verify a file:// URL with query-part.
1132
1133 - symbols.pl: provide LIBCURL_HAS macro for apps
1134
1135 Experience has shown that the symbols-in-versions file is very useful to
1136 applications that want to build with a wide range of libcurl versions.
1137 It is however easy to get it wrong and the source gets a bit messy with
1138 all the fixed numerical comparisions.
1139
1140 The point of this script is to provide an easy-to-use macro for libcurl-
1141 using applications to do preprocessor checks for specific libcurl
1142 defines, and yet make the code clearly show what the macro is used for.
1143
1144 Yang Tse (24 Nov 2011)
1145 - lib573.c: fix double data type variable comparison with zero
1146
1147 - getinfo.c: reset app connect time when clearing session-info time variables
1148
1149 - Fix unreleased regression when using windows gnutls versions older than 2.8
1150
1151 Daniel Stenberg (23 Nov 2011)
1152 - [Mark Brand brought this change]
1153
1154 gnutls: only translate winsock errors for old versions
1155
1156 Bugfix: https handshake fails using gnutls 3 on windows
1157 http://sourceforge.net/tracker/index.php?func=detail&aid=3441084&group_id=976&atid=100976
1158
1159 New gnutls versions have an error handler that knows about Winsock
1160 errors, which is why gnutls_transport_set_global_errno() was deprecated
1161 and then removed.
1162
1163 This is a correction of commit f5bb370 (blame me) which meant to
1164 reimplement gnutls_transport_set_global_errno(), which is not necessary.
1165
1166 - protocol_connect: show verbose connect and set connect time
1167
1168 Regression: commit b998d95b (shipped first in release 7.22.0) made the
1169 condition always equal false that should reset the TIMER_CONNECT timer
1170 and call the Curl_verboseconnect() function.
1171
1172 Reported by: "Captain Basil"
1173 Bug: http://curl.haxx.se/mail/archive-2011-11/0035.html
1174
1175 - -J -O: use -O name if no Content-Disposition header comes!
1176
1177 A regression between 7.22.0 and 7.23.0 -- downloading a file with the
1178 flags -O and -J results in the content being written to stdout if and
1179 only if there was no Content-Disposition header in the http response. If
1180 there is a C-D header with a filename attribute, the output is correctly
1181 written.
1182
1183 Reported by: Dave Reisner
1184 Bug: http://curl.haxx.se/mail/archive-2011-11/0030.html
1185
1186 - [Martin Storsjo brought this change]
1187
1188 Add support for using nettle instead of gcrypt as gnutls backend
1189
1190 - [Jonas Schnelli brought this change]
1191
1192 test: SFTP quote commands with * prefix
1193
1194 Related to the f64812ca63 commit
1195
1196 - CURLOPT_QUOTE: SFTP supports the '*'-prefix now
1197
1198 - [Jonas Schnelli brought this change]
1199
1200 SFTP: support '*' prefix for quote operations
1201
1202 prefixing a command with '*' means it is allowed to fail without
1203 aborting the chain actions
1204
1205 - getsessionid: don't ever return while locked
1206
1207 Also, check for the session sharing bit instead of comparing pointers
1208
1209 - Curl_ssl_getsessionid: increase the value, not the pointer
1210
1211 - THANKS: one new contributor in 7.23.1
1212
1213 - [Alejandro Alvarez Ayllon brought this change]
1214
1215 SSL session share: move the age counter to the share object
1216
1217 Previously the age counter would be counted individually in each easy
1218 handle that shared SSL sessions!
1219
1220 - [Alejandro Alvarez Ayllon brought this change]
1221
1222 libtest build: add the missing lib586
1223
1224 - [Jason Glasgow brought this change]
1225
1226 CURLOPT_DNS_SERVERS: set name servers if possible
1227
1228 - RELEASE-NOTES: correct the release and contributor numbers
71229
81230 Version 7.23.1 (17 Nov 2011)
91231
40445266 Reported by: Henry Ludemann <misc@hl.id.au>
40455267
40465268 - test582: improved info messages
4047
4048 - source header: added to more files
4049
4050 - sources: update source headers
4051
4052 All C and H files now (should) feature the proper project curl source
4053 code header, which includes basic info, a copyright statement and some
4054 basic disclaimers.
4055
4056 - TODO-RELEASE: add 10 pending issues
4057
4058 - TODO-RELEASE: fix the IPv6-working probing
4059
4060 - tests: phase out haxx.se
4061
4062 Instead of using haxx.se as a fixed magic host name in lots of tests,
4063 this is a first step to move toward the generic example.com host
4064 instead.
4065
4066 - test523: avoid using haxx.se
4067
4068 ... since search engines find what they think is a URL in this, they
4069 hammer www.haxx.se on this port!
4070
4071 - configure: update the copyright year in the output
4072
4073 Dan Fandrich (9 Mar 2011)
4074 - Force setopt constants written by --libcurl to be long
4075
4076 Daniel Stenberg (8 Mar 2011)
4077 - cyassl: fix compiler warnings
4078
4079 - [Todd A Ouska brought this change]
4080
4081 SSL: (part 2) Added CyaSSL to SSL abstraction layer
4082
4083 This is the modified existing files commit.
4084
4085 - [Todd A Ouska brought this change]
4086
4087 SSL: Added CyaSSL to SSL abstraction layer
4088
4089 CyaSSL (available from git@github.com:cyassl/cyassl.git) has been
4090 added to the SSL abstraction layer.
4091
4092 To test:
4093 1) git CyaSSL sources
4094 2) autoreconf -i
4095 3) ./configure --disable-static
4096 4) make
4097 5) sudo make install
4098 6) autoreconf -i
4099 7) git curl sources (and this patch)
4100 8) ./configure --disable-shared --with-cyassl --without-ssl --enable-debug
4101 9) make
4102 10) normal testing
4103
4104 Please send questions or comments to todd@yassl.com .
4105
4106 - curl.1: clarify -E
4107
4108 Stress that it is for client certificates and then mention that it also
4109 works for all other SSL-based protocols apart from HTTPS and
4110 FTPS. Namely POP3S, IMAPS and SMTPS for now.
4111
4112 - FAQ: Protocol xxx not supported or disabled in libcurl
4113
4114 - lib582: used for test 582
4115
4116 Accidentally not included in commit 0e74e1d8d83
4117
4118 Dan Fandrich (7 Mar 2011)
4119 - Fixed libcurl to honour the --disable-ldaps configure option
4120
4121 Daniel Stenberg (8 Mar 2011)
4122 - [Henry Ludemann brought this change]
4123
4124 sftp-multi: test 582 added
4125
4126 Add test 582 for uploading a file using sftp and the multi interface.
4127
4128 (Patch and test slightly tweaked by Daniel Stenberg)
4129
4130 Initially marked as disabled until it is fixed in the source.
4131
4132 - FAQ: How to SFTP from my user's home directory?
4133
4134 - cpp: correct #endif placement
4135
4136 The end-of-file #endif in rawstr.h was not correcly positioned after all
4137 prototypes.
4138
4139 Reported by: Boris
4140 Bug: http://curl.haxx.se/bug/view.cgi?id=3195205
4141
4142 Dan Fandrich (4 Mar 2011)
4143 - Moved test 577 into the unit test framework as test 1307
4144
4145 - Added unit test 1306 so tests 558 & 559 are now fully replaced
4146
4147 - The unit test argument is allowed to be used
4148
4149 - Converted tests 558 & 559 to use the unit test framework as 1305
4150
4151 Test 558 was just a subset of 559 which is something that can be
4152 easily added later.
4153
4154 - Fixed test 1300 to pass the torture test
4155
4156 - Added abort_* unit test macros
4157
4158 These are for when a test failure makes it impossible to continue
4159 running further tests.
4160
4161 Kamil Dudka (4 Mar 2011)
4162 - [Stefan Krause brought this change]
4163
4164 transfer: avoid insane conversion of time_t
4165
4166 Daniel Stenberg (26 Feb 2011)
4167 - ssh_connect: treat libssh2 return code better
4168
4169 libssh2_knownhost_readfile() returns a negative value on error or
4170 otherwise number of parsed known hosts - this was previously not
4171 documented correctly in the libssh2 man page for the function.
4172
4173 Bug: http://curl.haxx.se/mail/lib-2011-02/0327.html
4174 Reported by: murat
4175
4176 Julien Chaffraix (25 Feb 2011)
4177 - http: removed wrong unused comment.
4178
4179 |premature| is used in Curl_http_done.
4180
4181 - http: removed code duplication for stubbed https_getsock function.
4182
4183 Daniel Stenberg (23 Feb 2011)
4184 - RELEASE-NOTES: synced with 2345c1dd661c
4185
4186 - runtests.pl/stopserver: space separate pids
4187
4188 The stopserver function would append pids to kill and could append them
4189 without separating them with space properly. The result would be a very
4190 large number that by (some implementations of) kill would be interpreted
4191 as a negative number and that process group would be wiped...
4192
4193 Bug: http://curl.haxx.se/bug/view.cgi?id=3188836
4194 Reported by: Greg Pratt
4195
4196 Kamil Dudka (22 Feb 2011)
4197 - nss: do not ignore failure of SSL handshake
4198
4199 Flaw introduced in fc77790 and present in curl-7.21.4.
4200 Bug: https://bugzilla.redhat.com/669702#c16
4201
4202 Daniel Stenberg (21 Feb 2011)
4203 - CURLOPT_SSH_KEYFUNCTION: requires *SSH_KNOWNHOSTS
4204
4205 Extend the docs to clarify that CURLOPT_SSH_KEYFUNCTION is only called
4206 if the known hosts option is also correctly set!
4207
4208 Julien Chaffraix (20 Feb 2011)
4209 - curl_easy_setopt.3: Removed wrong reference to CURLOPT_USERPASSWORD.
4210
4211 CURLOPT_HTTPAUTH was mentioning CURLOPT_USERPASSWORD instead of
4212 CURLOPT_PASSWORD.
4213
4214 Reported by: Mike Henshaw
4215
4216 - netrc: Removed _NETRC_DEBUG code.
4217
4218 This is not needed anymore as we have unit testing running on it.
4219
4220 - tests: Cleaned up netrc testing.
4221
4222 Removed the "netrc_debug" keyword replaced with --netrc-file additions.
4223 Removed the debug code from Curl_parsenetrc as it is superseeded by
4224 --netrc-file.
4225
4226 - curl: Added --netrc-file.
4227
4228 This enables people to specify a path to the netrc file to use.
4229 The new option override --netrc if both are present. However it
4230 does follow --netrc-optional if specified.
4231
4232 Ben Noordhuis (20 Feb 2011)
4233 - IMAP in multi mode: use Curl_ssl_connect_nonblocking() when upgrading the connection to TLS/SSL.
4234
4235 - IMAP in multi mode: use Curl_ssl_connect_nonblocking() when connecting.
4236
4237 Daniel Stenberg (18 Feb 2011)
4238 - [Mike Crowe brought this change]
4239
4240 multi: close connection on timeout
4241
4242 After a request times out, the connection wasn't properly closed and
4243 prevented to get re-used, so subsequent transfers could still mistakenly
4244 get to use the previously aborted connection.
4245
4246 - multi: better failed connect treatment
4247
4248 When failing to connect the protocol during the CURLM_STATE_PROTOCONNECT
4249 state, Curl_done() has to be called with the premature flag set TRUE as
4250 for the pingpong protocols this can be important.
4251
4252 When Curl_done() is called with premature == TRUE, it needs to call
4253 Curl_disconnect() with its 'dead_connection' argument set to TRUE as
4254 well so that any protocol handler's disconnect function won't attempt to
4255 use the (control) connection for anything.
4256
4257 This problem caused the pingpong protocols to fail to disconnect when
4258 STARTTLS failed.
4259
4260 Reported by: Alona Rossen
4261 Bug: http://curl.haxx.se/mail/lib-2011-02/0195.html
4262
4263 - [Hoi-Ho Chan brought this change]
4264
4265 PolarSSL: Return 0 on receiving TLS CLOSE_NOTIFY alert
4266
4267 Signed-off-by: Hoi-Ho Chan <hoiho.chan@gmail.com>
4268
4269 - symbols-in-versions: sorted
4270
4271 I forgot to sort it when I added the CURL_SOCKOPT_* symbols
4272
4273 - TODO-RELEASE: refresh
4274
4275 - SOCKOPTFUNCTION: documented new return codes
4276
4277 - SOCKOPTFUNCTION: callback can say already-connected
4278
4279 Introducing a few CURL_SOCKOPT* defines for conveniance. The new
4280 CURL_SOCKOPT_ALREADY_CONNECTED signals to libcurl that the socket is to
4281 be treated as already connected and thus it will skip the connect()
4282 call.
4283
4284 Kamil Dudka (17 Feb 2011)
4285 - nss: avoid memory leak on SSL connection failure
4286
4287 Daniel Stenberg (17 Feb 2011)
4288 - RELEASE-NOTES: fresh start towards 7.21.5
4289
4290 - curlver.h: bump to 7.21.5
4291
4292 - THANKS: add contributors from 7.21.4
4293
4294 Version 7.21.4 (17 Feb 2011)
4295
4296 Guenter Knauf (17 Feb 2011)
4297 - Set -fpcc-struct-return only for gcc compiler.
4298
4299 Daniel Stenberg (17 Feb 2011)
4300 - RELEASE-NOTES: credits since 7.21.3
4301
4302 I went through all the names mentioned as authors and in commit messages
4303 since 7.21.3, and this list inserted now is sorted on first name.
4304
4305 - nss_load_key: fix unused variable warning
4306
4307 - gmtime: remove define
4308
4309 It turns out some systems rely on the gmtime or gmtime_r to be defined
4310 already in the system headers and thus my "precaution" redefining of
4311 them only caused trouble. They are now removed.
4312
4313 Guenter Knauf (13 Feb 2011)
4314 - Added -m32 to CFLAGS to compile with x86_64 gcc.
4315
4316 - Updated OpenSSL version, added links to docu.
4317
4318 Daniel Stenberg (10 Feb 2011)
4319 - RELEASE-NOTES: synced with 3bb1291fbd4
4320
4321 - --keepalive-time: warn if not supported properly
4322
4323 Since the feature requires support for TCP_KEEPIDLE and TCP_KEEPINTVL to
4324 function as documented, it now warns if that support is missing when the
4325 option is used.
4326
4327 Dan Fandrich (10 Feb 2011)
4328 - Call ERR_peek_error instead of ERR_peek_last_error
4329
4330 The latter isn't available in older OpenSSL versions, and is
4331 less useful since it returns the most recent error instead of
4332 the first one encountered.
4333
4334 Julien Chaffraix (10 Feb 2011)
4335 - netrc: Enable setting up the filename in unit tests.
4336
4337 Unset the environment variable so that we can specify different
4338 filenames in the unit test.
4339
4340 - test1304: Added some unit tests for Curl_parsenetrc.
4341
4342 Moved some definitons into the header file so that we can reuse them.
4343
4344 Daniel Stenberg (9 Feb 2011)
4345 - [Quinn Slack brought this change]
4346
4347 CURLE_TLSAUTH_FAILED: removed
4348
4349 On second thought, I think CURLE_TLSAUTH_FAILED should be eliminated. It
4350 was only being raised when an internal error occurred while allocating
4351 or setting the GnuTLS SRP client credentials struct. For TLS
4352 authentication failures, the general CURLE_SSL_CONNECT_ERROR seems
4353 appropriate; its error string already includes "passwords" as a possible
4354 cause. Having a separate TLS auth error code might also cause people to
4355 think that a TLS auth failure means the wrong username or password was
4356 entered, when it could also be a sign of a man-in-the-middle attack.
4357
4358 - [Quinn Slack brought this change]
4359
4360 TLS-SRP: new options documented
4361
4362 - CURLOPT_SOCKOPTFUNCTION: return proper error code
4363
4364 When the callback returns an error, this function must make sure to return
4365 CURLE_ABORTED_BY_CALLBACK properly and not CURLE_OK as before to allow the
4366 callback to properly abort the operation.
4367
4368 - curl.1: typo in -v description
4369
4370 Reported by: Ian D Allen
4371 Bug: https://bugs.launchpad.net/ubuntu/+source/curl/+bug/714895
4372
4373 Forwarded to us by:
4374
4375 Reported by: Andreas Olsson
4376 Bug: http://curl.haxx.se/bug/view.cgi?id=3175422
4377
4378 Julien Chaffraix (7 Feb 2011)
4379 - netrc: Removed dead code.
4380
4381 The main has not been updated from some time and is out of sync with
4382 the code. The code is now tested by several test cases so no need for
4383 a seperate code path.
4384
4385 - netrc: Tightened up the type checks.
4386
4387 The state should not be anonymous so that we can check if the values
4388 are fine. Added 2 unreachables states to the switch as a result of this
4389 change.
4390
4391 - imap: Fixed typo in a comment.
4392
4393 Daniel Stenberg (7 Feb 2011)
4394 - Curl_gmtime: avoid future mistakes
4395
4396 Document Curl_gmtime() and define away the old functions so that they
4397 won't be used internally again by mistake.
4398
4399 - Curl_gmtime: added a portable gmtime
4400
4401 Instead of polluting many places with #ifdefs, we create a single place
4402 for this function, and also check return code properly so that a NULL
4403 pointer returned won't cause problems.
4404
4405 Guenter Knauf (3 Feb 2011)
4406 - mk-ca-bundle.vbs: use new cacert url
4407
4408 The official Mozilla page at http://www.mozilla.org/projects/security/certs/
4409 points out a new place as the "proper" place to get Mozilla's CA certs from
4410 so this script is now updated to use that instead.
4411
4412 Reported by: Daniel Mentz
4413
4414 Daniel Stenberg (2 Feb 2011)
4415 - mk-ca-bundle.pl: use new cacert url
4416
4417 The official Mozilla page at
4418 http://www.mozilla.org/projects/security/certs/ points out a new place
4419 as the "proper" place to get Mozilla's CA certs from so this script is
4420 now updated to use that instead.
4421
4422 Reported by: Daniel Mentz
4423
4424 - [Bjoern Sikora brought this change]
4425
4426 ssluse: improved error message on SSL_CTX_new failures
4427
4428 "SSL: couldn't create a context" really isn't that helpful, now it'll
4429 also extract an explanation from OpenSSL and append to the right.
4430
4431 - [Nicholas Maniscalco brought this change]
4432
4433 multi: fix CURLM_STATE_TOOFAST for multi_socket
4434
4435 The code in the toofast state needs to first recalculate the values
4436 before it uses them again since it may have been a while since it last
4437 did it when it reaches this point.
4438
4439 - unit1300: code style cleanup
4440
4441 - [Amr Shahin brought this change]
4442
4443 adding unit tests for Curl_llist_remove
4444
4445 Patrick Monnerat (31 Jan 2011)
4446 - Include TLSAUTH options in ILE/RPG binding.
4447
4448 Kamil Dudka (31 Jan 2011)
4449 - [Dave Reisner brought this change]
4450
4451 file: add support for CURLOPT_TIMECONDITION
4452
4453 - [Dave Reisner brought this change]
4454
4455 transfer: add Curl_meets_timecondition()
4456
4457 This will be used by file_do() and Curl_readwrite() as a unified method
4458 of checking to see if a remote document meets the supplied
4459 CURLOPT_TIMEVAL and CURLOPT_TIMECONDITION.
4460
4461 Signed-off-by: Dave Reisner <d@falconindy.com>
4462
4463 Daniel Stenberg (29 Jan 2011)
4464 - FAQ: clarified/expanded 6.7 a bit
4465
4466 "6.7 What are my obligations when using libcurl in my commercial apps?"
4467 got the piece about what exactly "in all copies" mean to a user of the
4468 code.
4469
4470 This interpretation is based on what other MIT-like licenses have made
4471 more explicit.
4472
4473 - COPYING: update the year to 2011
4474
4475 The generic copyright year range now includes 2011
4476
4477 - [Pierre Joye brought this change]
4478
4479 Windows build: alternative makefile
4480
4481 This is a separate makefile for MSVC builds. It is deliberately put in
4482 another dir than src/ and lib/ to allow a different build experience
4483 than the previous - at least during a period. Eventually we should
4484 unify.
4485
4486 - test: add test 580 to the dist
4487
4488 Dan Fandrich (27 Jan 2011)
4489 - Some minor edits including updates to function names
4490
4491 Daniel Stenberg (27 Jan 2011)
4492 - ares: memory leak fix
4493
4494 The double name resolve trick used with c-ares could leave allocated
4495 memory in 'temp_ai' if the operation was aborted in the middle.
4496
4497 - ares_query_completed_cb: don't touch invalid data
4498
4499 When this callback is called due to the destruction of the ares handle,
4500 the connection pointer passed in as an argument may no longer pointing
4501 to valid data and this function doesn't need to do anything with it
4502 anyway so we make sure it doesn't.
4503
4504 Bug: http://curl.haxx.se/mail/lib-2011-01/0333.html
4505 Reported by: Vsevolod Novikov
4506
4507 Kamil Dudka (27 Jan 2011)
4508 - nss: avoid memory leaks and failure of NSS shutdown
4509
4510 ... in case more than one CA is loaded.
4511
4512 Bug: https://bugzilla.redhat.com/670802
4513
4514 Dan Fandrich (26 Jan 2011)
4515 - Mention that sftp quote commands can be quoted
4516
4517 Daniel Stenberg (25 Jan 2011)
4518 - tests: more multiple headers checks
4519
4520 - HTTP: memory leak on multiple Location:
4521
4522 The HTTP parser allocated memory on each received Location: header
4523 without properly freeing old data. Starting now, the code only considers
4524 the first Location: header and will blissfully ignore subsequent ones.
4525
4526 Bug: http://curl.haxx.se/bug/view.cgi?id=3165129
4527 Reported by: Martin Lemke
4528
4529 - FAQ: clarify 5.13 how to stop a transfer
4530
4531 Guenter Knauf (22 Jan 2011)
4532 - Fixed C++ style comment not allowed in ISO C90.
4533
4534 Dan Fandrich (21 Jan 2011)
4535 - Mention axTLS in some more documentation
4536
4537 Daniel Stenberg (20 Jan 2011)
4538 - runtests.pl: make -s not show skipped tests
4539
4540 - [Amr Shahin brought this change]
4541
4542 unittest: add 3 tests to test1300
4543
4544 Testing Curl_llist_insert_next
4545
4546 Dan Fandrich (20 Jan 2011)
4547 - [Darshan Mody brought this change]
4548
4549 Fixed compile using OpenSSL versions < 0.9.4a
4550
4551 Daniel Stenberg (19 Jan 2011)
4552 - main: make the tlsauth options always present
4553
4554 ... to not make the connection between the tool and the libcurl used
4555 tighter than necessary, the tlsauth options are now always present but
4556 if the used libcurl doesn't have TLSAUTH support it will return failure.
4557
4558 Also, replaced strncmp() with strequal to get case insensitive matching.
4559
4560 - symbols-in-versions: add the new TLSAUTH-SRP symbols
4561
4562 - configure: TLS-SRP wasn't added as a feature
4563
4564 Test case 1014 failed since TLS-SRP was correctly set to the features
4565 variable so curl-config --features didn't output it.
4566
4567 - dist: add new certs to tarball
4568
4569 - [Quinn Slack brought this change]
4570
4571 TLS-SRP: support added when using GnuTLS
4572
4573 - CURLOPT_SSL_VERIFYPEER: more clarifications
4574
4575 The default value is 1.
4576
4577 curl _uses_ a default CA bundle, it doesn't install one.
4578
4579 Drop the references to 7.10 as that is now >8 years old!
4580
4581 - TheArtOfHttpScripting: extended
4582
4583 Extended the intial HTTP protcol part and added a mention of --trace and
4584 --trace-ascii.
4585
4586 Replaced most URLs in the text to use example.com instead of all the
4587 made up strange names.
4588
4589 Shortened a bunch of lines.
4590
4591 - curl_easy_setopt.3: clarify VERIFYHOST/PEER
4592
4593 Extended the descriptions somewhat and made the options get listed next
4594 to each other.
4595
4596 - RELEASE-NOTES: mention contributors
4597
4598 - RELEASE-NOTES: synced with 7fcbdd68b9e
4599
4600 Guenter Knauf (18 Jan 2011)
4601 - Fixed configure define for Win32.
4602
4603 Submitted by Vincent Torri.
4604
4605 Kamil Dudka (18 Jan 2011)
4606 - nss: fix a bug in handling of CURLOPT_CAPATH
4607
4608 ... and update the curl.1 and curl_easy_setopt.3 man pages such that
4609 they do not suggest to use an OpenSSL utility if curl is not built
4610 against OpenSSL.
4611
4612 Bug: https://bugzilla.redhat.com/669702
4613
4614 Guenter Knauf (17 Jan 2011)
4615 - Avoid redefines.
4616
4617 Daniel Stenberg (15 Jan 2011)
4618 - curl.1: fix spelling
4619
4620 Bug: http://curl.haxx.se/bug/view.cgi?id=3157232
4621 Reported by: John Bradshaw
4622
4623 Guenter Knauf (14 Jan 2011)
4624 - Added casts to silent gcc warnings.
4625
4626 Yang Tse (13 Jan 2011)
4627 - build: BCC - makefile.b32 tweak
4628
4629 Get rid of stdout redirection to NUL and move stderr redirection
4630 into RM and RMDIR macros.
4631
4632 - build: BCC - makefile.b32 tweak
4633
4634 Check for BCCDIR environment var done now as other checks.
4635
4636 Guenter Knauf (13 Jan 2011)
4637 - Use env var for PSDK instead of hardcoded path.
4638
4639 - Enabled SSPI support by default.
4640
4641 - Use MAKE macro with BCC targets.
4642
4643 Yang Tse (12 Jan 2011)
4644 - docs - update BCC INSTALL section
4645
4646 - build: BCC - require Borlands's MAKE for Makefile.b32 processing.
4647
4648 - build: BCC - recover lost functionality from commit 3d813204260b37289411
4649
4650 Borland's $(MAKEDIR) expands to the path where make.exe is located,
4651 use this feature to define BCCDIR when user has not defined BCCDIR.
4652
4653 - build: use external preprocessor cpp32 when building with Borland C
4654
4655 - build: allow usage of Borland 5.5.1 external preprocessor cpp32
4656
4657 Guenter Knauf (11 Jan 2011)
4658 - Disable LDAP support since BCC headers are insufficient.
4659
4660 - Instead of exiting with error lets set BCCDIR self.
4661
4662 - Some Borland C++ makefile tweaks.
4663
4664 - Borland C++ doesnt have struct sockaddr_storage.
4665
4666 Daniel Stenberg (11 Jan 2011)
4667 - connect: use UDP correctly
4668
4669 The idea that the protocol and socktype is part of name resolving in the
4670 libc functions is nuts. We keep the name resolver functions assume
4671 TCP/STREAM and we make sure that when we want to connect to a UDP
4672 service we use the correct UDP/DGRAM set instead. This bug was because
4673 the ->protocol field was not always set correctly.
4674
4675 This bug was only affecting ipv6-disabled non-cares non-threaded builds.
4676
4677 Bug: http://curl.haxx.se/bug/view.cgi?id=3154436
4678 Reported by: "dperham"
4679
4680 - [Quinn Slack brought this change]
4681
4682 SSL: fix memory leak
4683
4684 In OOM situation. Follow-up fix to commit a9cd4f4ed49e1a0.
4685
4686 - gtls: fix memory leak
4687
4688 Bug: http://curl.haxx.se/mail/lib-2011-01/0079.html
4689 Reported by: Quinn Slack
4690
4691 - [Marcel Roelofs brought this change]
4692
4693 HTTP: HTTP Negotiate authentication using SSPI
4694
4695 Only under Windows
4696
4697 - cmake: removed two files
4698
4699 CMake/CheckTypeSize.c.in and CMake/CheckTypeSize.cmake were removed in
4700 the previous cmake commit
4701
4702 Dan Fandrich (5 Jan 2011)
4703 - Made unit_setup() return an error code to abort the test early
4704
4705 This makes it possible to skip the call to unit_stop() in such
4706 cases. Also use Curl_safefree() in unit test 1302 so it will
4707 pass the memory torture test.
4708
4709 Daniel Stenberg (6 Jan 2011)
4710 - SSH: speedcheck clobbered existing error
4711
4712 The just added speedcheck must not ruin the error code if already set
4713 due to a problem.
4714
4715 - [Brad King brought this change]
4716
4717 CMake: Use upstream CheckTypeSize module
4718
4719 The CheckTypeSize module that comes with CMake 2.6.2 and above does
4720 everything we need and also supports cross-compiling. Avoid duplicating
4721 an older version of it here. This also fixes a cross-compiling error
4722 because the old line
4723
4724 include ("${CMAKE_MODULE_PATH}/CheckTypeSize.cmake")
4725
4726 failed because CMAKE_MODULE_PATH is a search path and not a directory.
4727
4728 Signed-off-by: Brad King <brad.king@kitware.com>
4729
4730 - SSH: acknowledge speedcheck
4731
4732 Check for speedcheck limits during the state machine traversals
4733
4734 - tests: <info> tag corrections
4735
4736 - unittest: 1303 tests Curl_timeleft
4737
4738 I came up with 33 different ways to call it and verify that it returns the
4739 correct return code.
4740
4741 - curlcheck.h: add fail()
4742
4743 fail is a new function/macro that a test case can use to indicate a test
4744 failure for cases when the standard macros are not sufficient.
4745
4746 - Curl_timeleft: s/conn/data in first argument
4747
4748 As the function doesn't really use the connectdata struct but only the
4749 SessionHanadle struct I modified what argument it wants.
4750
4751 Dan Fandrich (4 Jan 2011)
4752 - Fixed path to allow out-of-tree builds
4753
4754 Kamil Dudka (4 Jan 2011)
4755 - nss: avoid CURLE_OUT_OF_MEMORY given a file name without any slash
4756
4757 Bug: https://bugzilla.redhat.com/623663
4758
4759 Daniel Stenberg (4 Jan 2011)
4760 - ignore: all executable unit test cases
4761
4762 - tests: add 1302 to the package
4763
4764 - unittest: test base64 encode/decode
4765
4766 - curlcheck.h: avoid using NULL pointers
4767
4768 - curlcheck.h: add verify_memory
4769
4770 This check verifies that a pointer contains the correct data.
4771
4772 - curlcheck.h: add newlines in error messages
4773
4774 - unittest: verify curl_strequal
4775
4776 - get_cert_chain: support larger data sets
4777
4778 512 bytes turned out too short for some data, so now we allocate a
4779 larger buffer instead
4780
4781 Bug: http://curl.haxx.se/mail/archive-2011-01/0002.html
4782
4783 - RELEASE-NOTES: synced with 83e9fb21aabbec2
4784
4785 - curlcheck.h: add fail_if() fix code
4786
4787 The UNITTEST_START and UNITTEST_STOP defines needed to do a new brace
4788 level so that test cases can declare variables fine and still remain
4789 fine C89 code.
4790
4791 - unittests: basic docs
4792
4793 - ignore: unit test files
4794
4795 - unittests: a dedicated feature in tests
4796
4797 The test runner script now knows if unittests can run and the unit test
4798 setup file says it is one. I also made runtests.pl deal with no
4799 <command> tag set, so that the description file can get even simpler.
4800
4801 - unittesting: build a separate static lib
4802
4803 When configure --enable-debug has been used, all files in lib/ are now
4804 built twice and a separate static library crafted for unit-testing will
4805 be linked. The unit tests in the tests/unit subdir will use that
4806 library.
4807
4808 - unittest: framework for unit-testing
4809
4810 This is the first approach at doing fairly clean and easy to write and
4811 debug unit tests.
4812
4813 - SSH: avoid PATH_MAX with alloc
4814
4815 We cannot assume that PATH_MAX will be enough for the remote path name
4816 so allocating room for it is the only sensible approach.
4817
4818 - TODO: get rid of PATH_MAX
4819
4820 - Curl_nss_connect: avoid PATH_MAX
4821
4822 Since some systems don't have PATH_MAX and it isn't that clever to
4823 assume a fixed maximum path length, the code now allocates buffer space
4824 instead of using stack.
4825
4826 Reported by: Samuel Thibault
4827 Bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=608521
4828
4829 - SFTP: make pwd output result to header callback
4830
4831 Sending "pwd" as a QUOTE command only sent the reply to the
4832 DEBUGFUNCTION. Now it also sends an FTP-like header to the header
4833 callback to allow similar operations as with FTP, and apps can re-use
4834 the same parser.
4835
4836 - pubkey_show: allocate buffer to fit any-size result
4837
4838 The loop condition was wrong so keys larger than 340 bits would overflow
4839 the local stack-based buffer.
4840
4841 - CURLINFO_FTP_ENTRY_PATH: sftp support
4842
4843 - [Luke Amery brought this change]
4844
4845 ssh: honour the CURLINFO_FTP_ENTRY_PATH curl_getinfo option
4846
4847 - [Pierre Joye brought this change]
4848
4849 IDN: use win32 API if told to
4850
4851 The functionality is provided in a new source file: lib/idn_win32.c
4852
4853 Yang Tse (28 Dec 2010)
4854 - test harness: take in account that Windows does not support LD_PRELOAD
4855
4856 configure.ac: Test harness libhostname library will not be built for Windows.
4857
4858 runtests.pl: LD_PRELOAD mechanism will not be used to load libhostname
4859 library on operating systems which lack LD_PRELOAD support.
4860
4861 Daniel Stenberg (27 Dec 2010)
4862 - c-ares: fix cancelled resolves
4863
4864 When built IPv6-enabled, we could do Curl_done() with one of the two
4865 resolves having returned already, so when ares_cancel() is called the
4866 resolve callback ends up doing funny things (sometimes resulting in a
4867 segfault) since it would try to actually store the previous resolve even
4868 though we're shutting down the resolve.
4869
4870 This bug was introduced in commit 8ab137b2bc9630ce so it hasn't been
4871 included in any public release.
4872
4873 Bug: http://curl.haxx.se/bug/view.cgi?id=3145445
4874 Reported by: Pedro Larroy
4875
4876 - [Brad Hards brought this change]
4877
4878 Typo / spelling fixes.
4879
4880 - [Brad Hards brought this change]
4881
4882 Use angle address, as for the rest of the example.
4883
4884 Also spelling fix for RECIPIENT #define.
4885
4886 - [Brad Hards brought this change]
4887
4888 Add angle brackets to addresses in easy SMTP examples, as for smtp-multi example.
4889
4890 - cookies: tricked dotcounter fixed
4891
4892 Providing multiple dots in a series in the domain field (domain=..com) could
4893 trick the cookie engine to wrongly accept the cookie believing it to be
4894 fine. Since the tailmatching would then match all .com sites, the cookie would
4895 then be sent to all of them.
4896
4897 The code now requires at least one letter between each dot for them to be
4898 counted. Edited test case 61 to verify this.
4899
4900 - multi: connect fail => use next IP address
4901
4902 When using the multi interface and connecting to a host name that
4903 resolves to multiple IP addresses, there was no logic that made it
4904 continue to the next IP if connecting to the first address times
4905 out. This is now corrected.
4906
4907 - smtp-multi: put recipient within <brackets>
4908
4909 Even if libcurl might to do it for us, it is more correct.
4910
4911 - ossl_seed: no more RAND_screen
4912
4913 RAND_screen() is slow, not thread-safe and not needed anymore since OpenSSL
4914 uses the thread-safe win32 CryptoAPI nowadays.
4915
4916 - multi: inhibit some verbose outputs
4917
4918 The info about pipe status and expire cleared are clearly debug-related
4919 and not anything mere mortals will or should care about so they are now
4920 ifdef'ed DEBUGBUILD
4921
4922 - SMTP tests: updated MAIL FROM use
4923
4924 They were all wrong previously since none used the <brackets> they
4925 should for MAIL FROM. Now libcurl adds them itself if the app doesn't so
4926 they end up wrong less easy.
4927
4928 - CURLOPT_MAIL_FROM: document the bracket situation
4929
4930 - [Brad Hards brought this change]
4931
4932 SMTP: add brackets for MAIL FROM
4933
4934 Similar to what is done already for RCPT TO, the code now checks for and
4935 adds angle brackets (<>) around the email address that is provided for
4936 CURLOPT_MAIL_RCPT unless the app has done so itself.
4937
4938 Guenter Knauf (22 Dec 2010)
4939 - Added support for axTLS to NetWare build.
4940
4941 - Fixed include: memory.h -> curl_memory.h.
4942
4943 Kamil Dudka (22 Dec 2010)
4944 - [Brad Hards brought this change]
4945
4946 smtp-tls: add a missing newline
4947
4948 Without this you won't get the next (Subject) line.
4949
4950 Daniel Stenberg (21 Dec 2010)
4951 - [Brad Hards brought this change]
4952
4953 Typo fixes.
4954
4955 Patrick Monnerat (21 Dec 2010)
4956 - New curl/curl.h definitions added to ILE/RPG binding.
4957
4958 Yang Tse (21 Dec 2010)
4959 - build: sort configuration hunks in lib/Makefile.vc6
4960
4961 sorted to reflect same internal order as the one shown
4962 in the usage message.
4963
4964 Daniel Stenberg (20 Dec 2010)
4965 - getparameter: add error check
4966
4967 if add2list() returns an error, bail out!
4968
4969 - loadhostpairs: return errorcode
4970
4971 Make sure that Curl_cache_addr() errors are propagated to callers of
4972 loadhostpairs().
4973
4974 (this loadhostpairs function caused a scan-build warning due to the
4975 'dns' variable getting assigned but never used)
4976
4977 Yang Tse (20 Dec 2010)
4978 - distrib: add new file to EXTRA_DIST
4979
4980 - build: refactoring of msvc makefiles to allow overriding of library filenames.
4981
4982 Default libcurl's file names are kept equal to those used since Y2K.
4983
4984 Daniel Stenberg (19 Dec 2010)
4985 - ftp_parselist: fix compiler warning
4986
4987 Doing curlx_strtoofft() on the size just to figure out the end of it
4988 causes a compiler warning since the result wasn't used, but is also a
4989 bit of a waste.
4990
4991 - [Pasha Kuznetsov brought this change]
4992
4993 Curl_do: avoid using stale conn pointer
4994
4995 Since the original `conn' pointer was used after the `connectdata' it
4996 points to has been closed/cleaned up by Curl_reconnect_request it caused
4997 a crash. We must make sure to use the newly created connection instead!
4998
4999 URL: http://curl.haxx.se/mail/lib-2010-12/0202.html
5000
5001 - [Tommie Gannert brought this change]
5002
5003 ares: ask for both IPv4 and IPv6 addresses
5004
5005 Make the c-ares resolver code ask for both IPv4 and IPv6 addresses when
5006 IPv6 is enabled.
5007
5008 This is a workaround for the missing ares_getaddrinfo() and is a lot
5009 easier to implement.
5010
5011 Note that as long as c-ares returns IPv4 addresses when IPv6 addresses
5012 were requested but missing, this will cause a host's IPv4 addresses to
5013 occur twice in the DNS cache.
5014
5015 URL: http://curl.haxx.se/mail/lib-2010-12/0041.html
5016
5017 - examples: socket type cleanup
5018
5019 - [Brad Hards brought this change]
5020
5021 Trival comment fix.
5022
5023 - [Brad Hards brought this change]
5024
5025 smtp-tls: add Message-ID: header
5026
5027 - gitignore: ignore the new example execs
5028
5029 - examples: fix compiler warnings
5030
5031 - examples: build all examples easier
5032
5033 - [Brad Hards brought this change]
5034
5035 smtp-tls: new example
5036
5037 This example shows how to send SMTP with TLS
5038
5039 - [Brad Hards brought this change]
5040
5041 Docs: add simple SMTP example
5042
5043 Add a simple SMTP example program, patterned after some of the existing
5044 examples, and the curl application.
5045
5046 This version addresses issues raised by David Woodhouse on comments in
5047 the simplesmtp.c example.
5048
5049 Kamil Dudka (17 Dec 2010)
5050 - [Paul Howarth brought this change]
5051
5052 tftpd: avoid buffer overflow report from glibc
5053
5054 Daniel Stenberg (17 Dec 2010)
5055 - example: fix compiler warnings in fopen.c
5056
5057 - [Brad Hards brought this change]
5058
5059 chkspeed: bad strtol() call for -M option
5060
5061 Bug: http://curl.haxx.se/mail/lib-2010-12/0192.html
5062
5063 Yang Tse (16 Dec 2010)
5064 - axTLS integration: silence runtests.pl perl warning
5065
5066 Daniel Stenberg (15 Dec 2010)
5067 - axTLS: mention it among the other SSL libs
5068
5069 - 7.21.4: version bump
5070
5071 - axtls_connect: allow connect without peer verification
5072
5073 The SSL_SERVER_VERIFY_LATER bit in the ssl_ctx_new() call allows the
5074 code to verify the peer certificate explicitly after the handshake and
5075 then the "data->set.ssl.verifypeer" option works.
5076
5077 - axTLS: allow "default" SSL version as well
5078
5079 When no explicit version is selected we should try to use whatever is
5080 best for us, and in the axTLS case that means TLSv1.
5081
5082 - axtls.c: cleanup
5083
5084 Removed trailing whitespace
5085 Removed several compiler warnings
5086 Removed odd backslashes at some line endings
381381 check_include_file_concat("openssl/rand.h" HAVE_OPENSSL_RAND_H)
382382 endif(CMAKE_USE_OPENSSL)
383383
384 if(NOT HAVE_LDAP_H)
384 if(NOT HAVE_LDAP_H)
385385 message(STATUS "LDAP_H not found CURL_DISABLE_LDAP set ON")
386386 set(CURL_DISABLE_LDAP ON CACHE BOOL "" FORCE)
387387 endif()
783783 check_type_size("socklen_t" CURL_SIZEOF_CURL_SOCKLEN_T)
784784 set(CMAKE_EXTRA_INCLUDE_FILES)
785785 if(NOT HAVE_CURL_SIZEOF_CURL_SOCKLEN_T)
786 message(FATAL_ERROR
786 message(FATAL_ERROR
787787 "Check for sizeof socklen_t failed, see CMakeFiles/CMakerror.log")
788788 endif()
789789 else()
3535 EXTRA_DIST = CHANGES COPYING maketgz Makefile.dist curl-config.in \
3636 curl-style.el sample.emacs RELEASE-NOTES buildconf \
3737 libcurl.pc.in vc6curl.dsw MacOSX-Framework Android.mk $(CMAKE_DIST) \
38 Makefile.msvc.names $(WINBUILD_DIST)
38 Makefile.msvc.names $(WINBUILD_DIST) lib/libcurl.vers.in
3939
4040 bin_SCRIPTS = curl-config
4141
7474 $(top_srcdir)/m4/curl-system.m4 $(top_srcdir)/m4/libtool.m4 \
7575 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
7676 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
77 $(top_srcdir)/m4/xc-translit.m4 $(top_srcdir)/acinclude.m4 \
77 $(top_srcdir)/m4/xc-translit.m4 \
78 $(top_srcdir)/m4/zz50-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \
7879 $(top_srcdir)/configure.ac
7980 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
8081 $(ACLOCAL_M4)
249250 USE_EMBEDDED_ARES_FALSE = @USE_EMBEDDED_ARES_FALSE@
250251 USE_EMBEDDED_ARES_TRUE = @USE_EMBEDDED_ARES_TRUE@
251252 USE_GNUTLS = @USE_GNUTLS@
253 USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
252254 USE_LIBRTMP = @USE_LIBRTMP@
253255 USE_LIBSSH2 = @USE_LIBSSH2@
254256 USE_MANUAL_FALSE = @USE_MANUAL_FALSE@
259261 USE_SSLEAY = @USE_SSLEAY@
260262 USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
261263 VERSION = @VERSION@
264 VERSIONED_FLAVOUR = @VERSIONED_FLAVOUR@
265 VERSIONED_SYMBOLS_FALSE = @VERSIONED_SYMBOLS_FALSE@
266 VERSIONED_SYMBOLS_TRUE = @VERSIONED_SYMBOLS_TRUE@
262267 VERSIONNUM = @VERSIONNUM@
263268 ac_ct_AR = @ac_ct_AR@
264269 ac_ct_CC = @ac_ct_CC@
321326 EXTRA_DIST = CHANGES COPYING maketgz Makefile.dist curl-config.in \
322327 curl-style.el sample.emacs RELEASE-NOTES buildconf \
323328 libcurl.pc.in vc6curl.dsw MacOSX-Framework Android.mk $(CMAKE_DIST) \
324 Makefile.msvc.names $(WINBUILD_DIST)
329 Makefile.msvc.names $(WINBUILD_DIST) lib/libcurl.vers.in
325330
326331 bin_SCRIPTS = curl-config
327332 SUBDIRS = lib src include
550555 distdir: $(DISTFILES)
551556 $(am__remove_distdir)
552557 mkdir $(distdir)
553 $(mkdir_p) $(distdir)/. $(distdir)/CMake $(distdir)/CMake/Platforms $(distdir)/include/curl $(distdir)/m4 $(distdir)/packages/AIX/RPM $(distdir)/packages/EPM $(distdir)/packages/Linux/RPM $(distdir)/winbuild
558 $(mkdir_p) $(distdir)/. $(distdir)/CMake $(distdir)/CMake/Platforms $(distdir)/include/curl $(distdir)/lib $(distdir)/m4 $(distdir)/packages/AIX/RPM $(distdir)/packages/EPM $(distdir)/packages/Linux/RPM $(distdir)/winbuild
554559 @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
555560 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
556561 list='$(DISTFILES)'; for file in $$list; do \
0 Curl and libcurl 7.23.1
0 Curl and libcurl 7.24.0
11
2 Public curl releases: 126
2 Public curl releases: 127
33 Command line options: 149
44 curl_easy_setopt() options: 192
55 Public functions in libcurl: 58
66 Known libcurl bindings: 39
77 Contributors: 907
88
9 This release includes the following security fixes:
10
11 o curl was vulnerable to a data injection attack for certain protocols
12 http://curl.haxx.se/docs/adv_20120124.html
13 o curl was vulnerable to a SSL CBC IV vulnerability when built to use OpenSSL
14 http://curl.haxx.se/docs/adv_20120124B.html
15
16 This release includes the following changes:
17
18 o CURLOPT_QUOTE: SFTP supports the '*'-prefix now [24]
19 o CURLOPT_DNS_SERVERS: set name servers if possible [23]
20 o Add support for using nettle instead of gcrypt as gnutls backend [22]
21 o CURLOPT_INTERFACE: avoid resolving interfaces names with magic prefixes [21]
22 o Added CURLOPT_ACCEPTTIMEOUT_MS [30]
23 o configure: add symbols versioning option --enable-versioned-symbols [31]
24
925 This release includes the following bugfixes:
1026
11 o Windows: curl would fail if it found no CA cert, unless -k was used. Even
12 if a non-SSL protocol URL was used
27 o SSL session share: move the age counter to the share object [1]
28 o -J -O: use -O name if no Content-Disposition header comes! [2]
29 o protocol_connect: show verbose connect and set connect time [3]
30 o query-part: ignore the URI part for given protocols [4]
31 o gnutls: only translate winsock errors for old versions [5]
32 o POP3: fix end of body detection [6]
33 o POP3: detect when LIST returns no mails
34 o TELNET: improved treatment of options [7]
35 o configure: add support for pkg-config detection of libidn [8]
36 o CyaSSL 2.0+ library initialization adjustment [9]
37 o multi interface: only use non-NULL socker function pointer
38 o call opensocket callback properly for active FTP
39 o don't call close socket callback for sockets created with accept() [10]
40 o differentiate better between host/proxy errors [11]
41 o SSH: fix CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 and --hostpubmd5 [12]
42 o multi: handle timeouts on DNS servers by checking for new sockets [13]
43 o CURLOPT_DNS_SERVERS: fix return code
44 o POP3: fixed escaped dot not being stripped out [14]
45 o OpenSSL: check for the SSLv2 function in configure [15]
46 o MakefileBuild: fix the static build [16]
47 o create_conn: don't switch to HTTP protocol if tunneling is enabled [17]
48 o multi interface: fix block when CONNECT_ONLY option is used [18]
49 o Fix connection reuse for TLS upgraded connections [19]
50 o multiple file upload with -F and custom type [20]
51 o multi interface: active FTP connections are no longer blocking [25]
52 o Android build fix [26]
53 o timer: restore PRETRANSFER timing [27]
54 o libcurl.m4: Fix quoting arguments of AC_LANG_PROGRAM [28]
55 o appconnect time fixed for non-blocking connect ssl backends [29]
56 o do not include SSL handshake into time spent waiting for 100-continue [32]
57 o handle dns cache case insensitive
58 o use new host name casing for subsequent HTTP requests [33]
59 o CURLOPT_RESOLVE: avoid adding already present host names
60 o SFTP mkdir: use correct permission [34]
61 o resolve: don't leak pre-populated dns entries [35]
62 o --retry: Retry transfers on timeout and DNS errors
63 o negotiate with SSPI backend: use the correct buffer for input [36]
64 o SFTP dir: increase buffer size counter to avoid cut off file names [37]
65 o TFTP: fix resending (again) [38]
66 o c-ares: don't include getaddrinfo-using code [39]
67 o FTP: CURLE_PARTIAL_FILE will not close the control channel [40]
68 o win32-threaded-resolver: stop using a dummy socket
69 o OpenSSL: remove reference to openssl internal struct [41]
70 o OpenSSL: SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG option no longer enabled
71 o OpenSSL: fix PKCS#12 certificate parsing related memory leak
72 o OpenLDAP: fix LDAP connection phase memory leak [42]
73 o Telnet: Use correct file descriptor for telnet upload
74 o Telnet: Remove bogus optimisation of telnet upload
75 o URL parse: user name with ipv6 numerical address
76 o polarssl: show cipher suite name correctly with 1.1.0
77 o polarssl: havege_rand is not present in version 1.1.0 WARNING, we still
78 use the old API which is said to be insecure. See
79 http://polarssl.org/trac/wiki/SecurityAdvisory201102
80 o gnutls: enforced use of SSLv3 [43]
1381
1482 This release includes the following known bugs:
1583
1886 This release would not have looked like this without help, code, reports and
1987 advice from friends like these:
2088
21 Mark Brand
89 Alejandro Alvarez Ayllon, Jason Glasgow, Jonas Schnelli, Mark Brand,
90 Martin Storsjo, Yang Tse, Laurent Rabret, Jason Glasgow, Steve Holme,
91 Reza Arbab, Jason Liu, Gokhan Sengun, Rob Ward, Dan Fandrich,
92 Naveen Chandran, Ward Willats, Vladimir Grishchenko, Colin Hogben,
93 Alessandro Ghedini, Cedric Deltheil, Toni Moreno, Bernhard Reutner-Fischer,
94 Sven Wegener, Alex Vinnik, Kamil Dudka, Mamoru Tasaka, Patrice Guerin,
95 Armel Asselin, Arthur Murray, Steve H Truong, Peter Sylvester,
96 Johannes Bauer, Brandon Wang, Pierre Joye, Robert Schumann,
97 Christian Grothoff, Nikos Mavrogiannopoulos
2298
2399 Thanks! (and sorry if I forgot to mention someone)
100
101 References to bug reports and discussions on issues:
102
103 [1] = http://curl.haxx.se/mail/lib-2011-11/0116.html
104 [2] = http://curl.haxx.se/mail/archive-2011-11/0030.htm
105 [3] = http://curl.haxx.se/mail/archive-2011-11/0035.html
106 [4] = http://curl.haxx.se/mail/lib-2011-11/0218.html
107 [5] = http://curl.haxx.se/mail/lib-2011-11/0267.html
108 [6] = http://curl.haxx.se/mail/lib-2011-11/0279.html
109 [7] = http://curl.haxx.se/mail/lib-2011-11/0247.html
110 [8] = http://curl.haxx.se/mail/lib-2011-11/0294.html
111 [9] = http://curl.haxx.se/bug/view.cgi?id=3442068
112 [10] = http://curl.haxx.se/mail/lib-2011-12/0018.html
113 [11] = http://curl.haxx.se/mail/archive-2011-12/0010.html
114 [12] = http://curl.haxx.se/bug/view.cgi?id=3451592
115 [13] = http://curl.haxx.se/mail/lib-2011-11/0371.html
116 [14] = http://curl.haxx.se/mail/lib-2011-11/0368.html
117 [15] = http://curl.haxx.se/mail/archive-2011-12/0012.html
118 [16] = http://curl.haxx.se/mail/lib-2011-12/0063.html
119 [17] = http://curl.haxx.se/mail/lib-2011-12/0010.html
120 [18] = http://curl.haxx.se/mail/lib-2011-12/0070.html
121 [19] = http://curl.haxx.se/mail/lib-2011-11/0022.html
122 [20] = http://curl.haxx.se/mail/lib-2011-12/0121.html
123 [21] = http://curl.haxx.se/mail/lib-2011-12/0107.html
124 [22] = http://curl.haxx.se/mail/lib-2011-11/0164.html
125 [23] = http://curl.haxx.se/mail/lib-2011-11/0067.html
126 [24] = http://curl.haxx.se/mail/lib-2011-11/0205.html
127 [25] = http://curl.haxx.se/mail/lib-2011-12/0179.html
128 [26] = http://curl.haxx.se/mail/lib-2011-12/0215.html
129 [27] = http://curl.haxx.se/mail/archive-2011-12/0022.html
130 [28] = http://curl.haxx.se/mail/lib-2011-12/0218.html
131 [29] = http://curl.haxx.se/mail/lib-2011-12/0211.html
132 [30] = http://curl.haxx.se/libcurl/c/curl_easy_setopt.html#CURLOPTACCEPTTIMOUTMS
133 [31] = http://curl.haxx.se/mail/lib-2011-12/0133.html
134 [32] = https://bugzilla.redhat.com/767490
135 [33] = http://curl.haxx.se/mail/lib-2011-12/0314.html
136 [34] = http://curl.haxx.se/mail/lib-2011-12/0249.html
137 [35] = http://curl.haxx.se/bug/view.cgi?id=3463121
138 [36] = http://curl.haxx.se/bug/view.cgi?id=3466497
139 [37] = http://curl.haxx.se/mail/lib-2011-12/0249.html
140 [38] = http://curl.haxx.se/mail/lib-2012-01/0146.html
141 [39] = http://curl.haxx.se/mail/lib-2012-01/0160.html
142 [40] = http://curl.haxx.se/mail/lib-2012-01/0096.html
143 [41] = http://curl.haxx.se/mail/lib-2012-01/0049.html
144 [42] = http://curl.haxx.se/bug/view.cgi?id=3474308
145 [43] = http://curl.haxx.se/mail/lib-2012-01/0225.html
901901 m4_include([m4/ltversion.m4])
902902 m4_include([m4/lt~obsolete.m4])
903903 m4_include([m4/xc-translit.m4])
904 m4_include([m4/zz50-xc-ovr.m4])
904905 m4_include([acinclude.m4])
55 # | (__| |_| | _ <| |___
66 # \___|\___/|_| \_\_____|
77 #
8 # Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
8 # Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
99 #
1010 # This software is licensed as described in the file COPYING, which
1111 # you should have received as part of this distribution. The terms
2020 #
2121 ###########################################################################
2222
23 #--------------------------------------------------------------------------
24 # die prints argument string to stdout and exits this shell script.
25 #
2326 die(){
24 echo "$@"
25 exit
27 echo "buildconf: $@"
28 exit 1
2629 }
2730
2831 #--------------------------------------------------------------------------
3235 findtool(){
3336 file="$1"
3437
35 if { echo $file | grep "/" >/dev/null 2>&1; } then
36 # we only check for the explicit file name if the file is given
37 # including a slash. Use ./ for current dir. Previously this would
38 # otherwise always cause findtool to search the local dir first, which
39 # is wrong.
38 if { echo "$file" | grep "/" >/dev/null 2>&1; } then
39 # when file is given with a path check it first
4040 if test -f "$file"; then
4141 echo "$file"
4242 return
8181 if test ! -f configure.ac ||
8282 test ! -f src/tool_main.c ||
8383 test ! -f lib/urldata.h ||
84 test ! -f include/curl/curl.h; then
84 test ! -f include/curl/curl.h ||
85 test ! -f m4/curl-functions.m4; then
8586 echo "Can not run buildconf from outside of curl's source subdirectory!"
8687 echo "Change to the subdirectory where buildconf is found, and try again."
8788 exit 1
187188 fi
188189
189190 #--------------------------------------------------------------------------
190 # libtool check
191 #
192 LIBTOOL_WANTED_MAJOR=1
193 LIBTOOL_WANTED_MINOR=4
194 LIBTOOL_WANTED_PATCH=2
195 LIBTOOL_WANTED_VERSION=1.4.2
196
197 # this approach that tries 'glibtool' first is some kind of work-around for
198 # some BSD-systems I believe that use to provide the GNU libtool named
199 # glibtool, with 'libtool' being something completely different.
191 # GNU libtool preliminary check
192 #
193 want_lt_major=1
194 want_lt_minor=4
195 want_lt_patch=2
196 want_lt_version=1.4.2
197
198 # This approach that tries 'glibtool' first is intended for systems that
199 # have GNU libtool named as 'glibtool' and libtool not being GNU's.
200
200201 libtool=`findtool glibtool 2>/dev/null`
201202 if test ! -x "$libtool"; then
202203 libtool=`findtool ${LIBTOOL:-libtool}`
203204 fi
204
205 if test -z "$LIBTOOLIZE"; then
206 # set the LIBTOOLIZE here so that glibtoolize is used if glibtool was found
207 # $libtool is already the full path
208 libtoolize="${libtool}ize"
209 else
210 libtoolize=`findtool $LIBTOOLIZE`
205 if test -z "$libtool"; then
206 echo "buildconf: libtool not found."
207 echo " You need GNU libtool $want_lt_version or newer installed."
208 exit 1
211209 fi
212210
213211 lt_pver=`$libtool --version 2>/dev/null|head -n 1`
215213 lt_version=`echo $lt_qver|sed -e "s/[- ].*//" -e "s/\([a-z]*\)$//"`
216214 if test -z "$lt_version"; then
217215 echo "buildconf: libtool not found."
218 echo " You need libtool version $LIBTOOL_WANTED_VERSION or newer installed"
216 echo " You need GNU libtool $want_lt_version or newer installed."
219217 exit 1
220218 fi
221219 old_IFS=$IFS; IFS='.'; set $lt_version; IFS=$old_IFS
222220 lt_major=$1
223221 lt_minor=$2
224222 lt_patch=$3
225 lt_status="good"
226
227 if test "$lt_major" = "$LIBTOOL_WANTED_MAJOR"; then
228 if test "$lt_minor" -lt "$LIBTOOL_WANTED_MINOR"; then
229 lt_status="bad"
230 elif test -n "$LIBTOOL_WANTED_PATCH"; then
231 if test "$lt_minor" -gt "$LIBTOOL_WANTED_MINOR"; then
232 lt_status="good"
233 elif test -n "$lt_patch"; then
234 if test "$lt_patch" -lt "$LIBTOOL_WANTED_PATCH"; then
235 lt_status="bad"
236 fi
237 else
238 lt_status="bad"
239 fi
240 fi
241 fi
242 if test $lt_status != "good"; then
223
224 if test -z "$lt_major"; then
225 lt_status="bad"
226 elif test "$lt_major" -gt "$want_lt_major"; then
227 lt_status="good"
228 elif test "$lt_major" -lt "$want_lt_major"; then
229 lt_status="bad"
230 elif test -z "$lt_minor"; then
231 lt_status="bad"
232 elif test "$lt_minor" -gt "$want_lt_minor"; then
233 lt_status="good"
234 elif test "$lt_minor" -lt "$want_lt_minor"; then
235 lt_status="bad"
236 elif test -z "$lt_patch"; then
237 lt_status="bad"
238 elif test "$lt_patch" -gt "$want_lt_patch"; then
239 lt_status="good"
240 elif test "$lt_patch" -lt "$want_lt_patch"; then
241 lt_status="bad"
242 else
243 lt_status="good"
244 fi
245 if test "$lt_status" != "good"; then
243246 echo "buildconf: libtool version $lt_version found."
244 echo " You need libtool version $LIBTOOL_WANTED_VERSION or newer installed"
247 echo " You need GNU libtool $want_lt_version or newer installed."
245248 exit 1
246249 fi
247250
248251 echo "buildconf: libtool version $lt_version (ok)"
249252
250 if test -f "$libtoolize"; then
251 echo "buildconf: libtoolize found"
252 else
253 echo "buildconf: libtoolize not found. Weird libtool installation!"
253 #--------------------------------------------------------------------------
254 # GNU libtoolize check
255 #
256 if test -z "$LIBTOOLIZE"; then
257 # use (g)libtoolize from same location as (g)libtool
258 libtoolize="${libtool}ize"
259 else
260 libtoolize=`findtool $LIBTOOLIZE`
261 fi
262 if test ! -f "$libtoolize"; then
263 echo "buildconf: libtoolize not found."
264 echo " You need GNU libtoolize $want_lt_version or newer installed."
254265 exit 1
255266 fi
256267
275286 # perl check
276287 #
277288 PERL=`findtool ${PERL:-perl}`
289 if test -z "$PERL"; then
290 echo "buildconf: perl not found"
291 exit 1
292 fi
278293
279294 #--------------------------------------------------------------------------
280295 # Remove files generated on previous buildconf/configure run.
310325 libcurl.pc \
311326 libtool \
312327 libtool.m4 \
328 libtool.m4.tmp \
313329 ltmain.sh \
314330 ltoptions.m4 \
315331 ltsugar.m4 \
326342 #
327343
328344 echo "buildconf: running libtoolize"
329 $libtoolize --copy --automake --force || die "The libtoolize command failed"
330
331 if test ! -f m4/curl-functions.m4; then
332 echo "buildconf: cURL m4 macros not found"
333 exit 1
345 ${libtoolize} --copy --automake --force || die "libtoolize command failed"
346
347 # When using libtool 1.5.X (X < 26) we copy libtool.m4 to our local m4
348 # subdirectory and this local copy is patched to fix some warnings that
349 # are triggered when running aclocal and using autoconf 2.62 or later.
350
351 if test "$lt_major" = "1" && test "$lt_minor" = "5"; then
352 if test -z "$lt_patch" || test "$lt_patch" -lt "26"; then
353 echo "buildconf: copying libtool.m4 to local m4 subdir"
354 ac_dir=`${ACLOCAL:-aclocal} --print-ac-dir`
355 if test -f $ac_dir/libtool.m4; then
356 cp -f $ac_dir/libtool.m4 m4/libtool.m4
357 else
358 echo "buildconf: $ac_dir/libtool.m4 not found"
359 fi
360 if test -f m4/libtool.m4; then
361 echo "buildconf: renaming some variables in local m4/libtool.m4"
362 $PERL -i.tmp -pe \
363 's/lt_prog_compiler_pic_works/lt_cv_prog_compiler_pic_works/g; \
364 s/lt_prog_compiler_static_works/lt_cv_prog_compiler_static_works/g;' \
365 m4/libtool.m4
366 rm -f m4/libtool.m4.tmp
367 fi
368 fi
369 fi
370
371 if test -f m4/libtool.m4; then
372 echo "buildconf: converting all mv to mv -f in local m4/libtool.m4"
373 $PERL -i.tmp -pe 's/\bmv +([^-\s])/mv -f $1/g' m4/libtool.m4
374 rm -f m4/libtool.m4.tmp
334375 fi
335376
336377 echo "buildconf: running aclocal"
337 ${ACLOCAL:-aclocal} -I m4 $ACLOCAL_FLAGS || die "The aclocal command line failed"
338
339 if test -n "$PERL"; then
340 echo "buildconf: running aclocal hack to convert all mv to mv -f"
341 $PERL -i.bak -pe 's/\bmv +([^-\s])/mv -f $1/g' aclocal.m4
342 else
343 echo "buildconf: perl not found"
344 exit 1
345 fi
378 ${ACLOCAL:-aclocal} -I m4 $ACLOCAL_FLAGS || die "aclocal command failed"
379
380 echo "buildconf: converting all mv to mv -f in local aclocal.m4"
381 $PERL -i.bak -pe 's/\bmv +([^-\s])/mv -f $1/g' aclocal.m4
346382
347383 echo "buildconf: running autoheader"
348 ${AUTOHEADER:-autoheader} || die "The autoheader command failed"
384 ${AUTOHEADER:-autoheader} || die "autoheader command failed"
349385
350386 echo "buildconf: cp lib/curl_config.h.in src/curl_config.h.in"
351387 cp lib/curl_config.h.in src/curl_config.h.in
352388
353389 echo "buildconf: running autoconf"
354 ${AUTOCONF:-autoconf} || die "The autoconf command failed"
390 ${AUTOCONF:-autoconf} || die "autoconf command failed"
355391
356392 if test -d ares; then
357393 cd ares
361397 fi
362398
363399 echo "buildconf: running automake"
364 ${AUTOMAKE:-automake} -a -c || die "The automake command failed"
365
366 #--------------------------------------------------------------------------
400 ${AUTOMAKE:-automake} --add-missing --copy || die "automake command failed"
401
402 #--------------------------------------------------------------------------
403 # GNU libtool complementary check
404 #
367405 # Depending on the libtool and automake versions being used, config.guess
368406 # might not be installed in the subdirectory until automake has finished.
369407 # So we can not attempt to use it until this very last buildconf stage.
370408 #
371
372409 if test ! -f ./config.guess; then
373410 echo "buildconf: config.guess not found"
374411 else
412449 if test "$lt_status" != "good"; then
413450 need_lt_version="$need_lt_major.$need_lt_minor.$need_lt_patch"
414451 echo "buildconf: libtool version $lt_version found."
415 echo " $buildhost requires libtool $need_lt_version or newer installed."
452 echo " $buildhost requires GNU libtool $need_lt_version or newer installed."
416453 rm -f configure
417454 exit 1
418455 fi
422459 #--------------------------------------------------------------------------
423460 # Finished successfully.
424461 #
425
426462 echo "buildconf: OK"
427463 exit 0
662662 PERL
663663 IPV6_ENABLED
664664 IDN_ENABLED
665 VERSIONED_SYMBOLS_FALSE
666 VERSIONED_SYMBOLS_TRUE
667 VERSIONED_FLAVOUR
665668 USE_LIBRTMP
666669 USE_LIBSSH2
667670 CURL_CA_BUNDLE
672675 USE_CYASSL
673676 USE_POLARSSL
674677 HAVE_GNUTLS_SRP
678 USE_GNUTLS_NETTLE
675679 USE_GNUTLS
676680 HAVE_SSLEAY_SRP
677681 RANDOM_FILE
884888 with_ca_path
885889 with_libssh2
886890 with_librtmp
891 enable_versioned_symbols
887892 with_libidn
888893 enable_nonblocking
889894 enable_threaded_resolver
15791584 --enable-libgcc use libgcc when linking
15801585 --enable-ipv6 Enable ipv6 (with ipv4) support
15811586 --disable-ipv6 Disable ipv6 support
1587 --enable-versioned-symbols
1588 Enable versioned symbols in shared library
1589 --disable-versioned-symbols
1590 Disable versioned symbols in shared library
15821591 --enable-nonblocking Enable non-blocking communications
15831592 --disable-nonblocking Disable non-blocking communications
15841593 --enable-threaded-resolver
26772686
26782687
26792688
2689
26802690 # using curl-override.m4
26812691
26822692
93099319 #endif
93109320 _LT_EOF
93119321 # Now try linking the two files.
9312 mv conftest.$ac_objext conftstm.$ac_objext
9322 mv -f conftest.$ac_objext conftstm.$ac_objext
93139323 lt_globsym_save_LIBS=$LIBS
93149324 lt_globsym_save_CFLAGS=$CFLAGS
93159325 LIBS="conftstm.$ac_objext"
1223812248
1223912249 hpux9*)
1224012250 if test "$GCC" = yes; then
12241 archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
12251 archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv -f $output_objdir/$soname $lib'
1224212252 else
12243 archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
12253 archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv -f $output_objdir/$soname $lib'
1224412254 fi
1224512255 hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
1224612256 hardcode_libdir_separator=:
2063620646 RAND_egd \
2063720647 ENGINE_cleanup \
2063820648 CRYPTO_cleanup_all_ex_data \
20639 SSL_get_shutdown
20649 SSL_get_shutdown \
20650 SSLv2_client_method
2064020651 do :
2064120652 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
2064220653 ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
2180721818 fi
2180821819
2180921820 if test "$GNUTLS_ENABLED" = "1"; then
21810 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcry_control in -lgcrypt" >&5
21811 $as_echo_n "checking for gcry_control in -lgcrypt... " >&6; }
21812 if test "${ac_cv_lib_gcrypt_gcry_control+set}" = set; then :
21821 USE_GNUTLS_NETTLE=
21822 # First check if we can detect either crypto library via transitive linking
21823 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nettle_MD5Init in -lgnutls" >&5
21824 $as_echo_n "checking for nettle_MD5Init in -lgnutls... " >&6; }
21825 if test "${ac_cv_lib_gnutls_nettle_MD5Init+set}" = set; then :
2181321826 $as_echo_n "(cached) " >&6
2181421827 else
2181521828 ac_check_lib_save_LIBS=$LIBS
21816 LIBS="-lgcrypt $LIBS"
21829 LIBS="-lgnutls $LIBS"
21830 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
21831 /* end confdefs.h. */
21832
21833
21834 #ifdef __cplusplus
21835 extern "C"
21836 #endif
21837 char nettle_MD5Init ();
21838 int main (void)
21839 {
21840 return nettle_MD5Init ();
21841 ;
21842 return 0;
21843 }
21844 _ACEOF
21845 if ac_fn_c_try_link "$LINENO"; then :
21846 ac_cv_lib_gnutls_nettle_MD5Init=yes
21847 else
21848 ac_cv_lib_gnutls_nettle_MD5Init=no
21849 fi
21850 rm -f core conftest.err conftest.$ac_objext \
21851 conftest$ac_exeext conftest.$ac_ext
21852 LIBS=$ac_check_lib_save_LIBS
21853 fi
21854 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gnutls_nettle_MD5Init" >&5
21855 $as_echo "$ac_cv_lib_gnutls_nettle_MD5Init" >&6; }
21856 if test "x$ac_cv_lib_gnutls_nettle_MD5Init" = x""yes; then :
21857 USE_GNUTLS_NETTLE=1
21858 fi
21859
21860 if test "$USE_GNUTLS_NETTLE" = ""; then
21861 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcry_control in -lgnutls" >&5
21862 $as_echo_n "checking for gcry_control in -lgnutls... " >&6; }
21863 if test "${ac_cv_lib_gnutls_gcry_control+set}" = set; then :
21864 $as_echo_n "(cached) " >&6
21865 else
21866 ac_check_lib_save_LIBS=$LIBS
21867 LIBS="-lgnutls $LIBS"
2181721868 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2181821869 /* end confdefs.h. */
2181921870
2183021881 }
2183121882 _ACEOF
2183221883 if ac_fn_c_try_link "$LINENO"; then :
21833 ac_cv_lib_gcrypt_gcry_control=yes
21834 else
21835 ac_cv_lib_gcrypt_gcry_control=no
21884 ac_cv_lib_gnutls_gcry_control=yes
21885 else
21886 ac_cv_lib_gnutls_gcry_control=no
2183621887 fi
2183721888 rm -f core conftest.err conftest.$ac_objext \
2183821889 conftest$ac_exeext conftest.$ac_ext
2183921890 LIBS=$ac_check_lib_save_LIBS
2184021891 fi
21892 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gnutls_gcry_control" >&5
21893 $as_echo "$ac_cv_lib_gnutls_gcry_control" >&6; }
21894 if test "x$ac_cv_lib_gnutls_gcry_control" = x""yes; then :
21895 USE_GNUTLS_NETTLE=0
21896 fi
21897
21898 fi
21899 # If not, try linking directly to both of them to see if they are available
21900 if test "$USE_GNUTLS_NETTLE" = ""; then
21901 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nettle_MD5Init in -lnettle" >&5
21902 $as_echo_n "checking for nettle_MD5Init in -lnettle... " >&6; }
21903 if test "${ac_cv_lib_nettle_nettle_MD5Init+set}" = set; then :
21904 $as_echo_n "(cached) " >&6
21905 else
21906 ac_check_lib_save_LIBS=$LIBS
21907 LIBS="-lnettle $LIBS"
21908 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
21909 /* end confdefs.h. */
21910
21911
21912 #ifdef __cplusplus
21913 extern "C"
21914 #endif
21915 char nettle_MD5Init ();
21916 int main (void)
21917 {
21918 return nettle_MD5Init ();
21919 ;
21920 return 0;
21921 }
21922 _ACEOF
21923 if ac_fn_c_try_link "$LINENO"; then :
21924 ac_cv_lib_nettle_nettle_MD5Init=yes
21925 else
21926 ac_cv_lib_nettle_nettle_MD5Init=no
21927 fi
21928 rm -f core conftest.err conftest.$ac_objext \
21929 conftest$ac_exeext conftest.$ac_ext
21930 LIBS=$ac_check_lib_save_LIBS
21931 fi
21932 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nettle_nettle_MD5Init" >&5
21933 $as_echo "$ac_cv_lib_nettle_nettle_MD5Init" >&6; }
21934 if test "x$ac_cv_lib_nettle_nettle_MD5Init" = x""yes; then :
21935 USE_GNUTLS_NETTLE=1
21936 fi
21937
21938 fi
21939 if test "$USE_GNUTLS_NETTLE" = ""; then
21940 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcry_control in -lgcrypt" >&5
21941 $as_echo_n "checking for gcry_control in -lgcrypt... " >&6; }
21942 if test "${ac_cv_lib_gcrypt_gcry_control+set}" = set; then :
21943 $as_echo_n "(cached) " >&6
21944 else
21945 ac_check_lib_save_LIBS=$LIBS
21946 LIBS="-lgcrypt $LIBS"
21947 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
21948 /* end confdefs.h. */
21949
21950
21951 #ifdef __cplusplus
21952 extern "C"
21953 #endif
21954 char gcry_control ();
21955 int main (void)
21956 {
21957 return gcry_control ();
21958 ;
21959 return 0;
21960 }
21961 _ACEOF
21962 if ac_fn_c_try_link "$LINENO"; then :
21963 ac_cv_lib_gcrypt_gcry_control=yes
21964 else
21965 ac_cv_lib_gcrypt_gcry_control=no
21966 fi
21967 rm -f core conftest.err conftest.$ac_objext \
21968 conftest$ac_exeext conftest.$ac_ext
21969 LIBS=$ac_check_lib_save_LIBS
21970 fi
2184121971 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gcrypt_gcry_control" >&5
2184221972 $as_echo "$ac_cv_lib_gcrypt_gcry_control" >&6; }
2184321973 if test "x$ac_cv_lib_gcrypt_gcry_control" = x""yes; then :
21844 cat >>confdefs.h <<_ACEOF
21845 #define HAVE_LIBGCRYPT 1
21846 _ACEOF
21847
21848 LIBS="-lgcrypt $LIBS"
21849
21850 else
21851
21852 as_fn_error "need GnuTLS built with gcrypt to function with GnuTLS" "$LINENO" 5
21853
21854 fi
21855
21974 USE_GNUTLS_NETTLE=0
21975 fi
21976
21977 fi
21978 if test "$USE_GNUTLS_NETTLE" = ""; then
21979 as_fn_error "GnuTLS found, but neither gcrypt nor nettle found" "$LINENO" 5
21980 fi
21981 if test "$USE_GNUTLS_NETTLE" = "1"; then
21982
21983 $as_echo "#define USE_GNUTLS_NETTLE 1" >>confdefs.h
21984
21985 USE_GNUTLS_NETTLE=1
21986
21987 fi
2185621988 fi
2185721989
2185821990 if test "$GNUTLS_ENABLED" = "1"; then
2318523317 fi
2318623318
2318723319
23320 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libraries can be versioned" >&5
23321 $as_echo_n "checking if libraries can be versioned... " >&6; }
23322 GLD=`$LD --help < /dev/null 2>/dev/null | grep version-script`
23323 if test -z "$GLD"; then
23324 versioned_symbols_flavour=
23325 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
23326 $as_echo "no" >&6; }
23327 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ***
23328 *** You need an ld version supporting the --version-script option.
23329 " >&5
23330 $as_echo "$as_me: WARNING: ***
23331 *** You need an ld version supporting the --version-script option.
23332 " >&2;}
23333 else
23334 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
23335 $as_echo "yes" >&6; }
23336
23337 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether versioned symbols are wanted" >&5
23338 $as_echo_n "checking whether versioned symbols are wanted... " >&6; }
23339 versioned_symbols_flavour=
23340
23341 # Check whether --enable-versioned-symbols was given.
23342 if test "${enable_versioned_symbols+set}" = set; then :
23343 enableval=$enable_versioned_symbols; case "$enableval" in
23344 yes) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
23345 $as_echo "yes" >&6; }
23346 if test "x$OPENSSL_ENABLED" = "x1"; then
23347 versioned_symbols_flavour="OPENSSL_"
23348 elif test "x$GNUTLS_ENABLED" == "x1"; then
23349 versioned_symbols_flavour="GNUTLS_"
23350 elif test "x$NSS_ENABLED" == "x1"; then
23351 versioned_symbols_flavour="NSS_"
23352 elif test "x$POLARSSL_ENABLED" == "x1"; then
23353 versioned_symbols_flavour="POLARSSL_"
23354 elif test "x$CYASSL_ENABLED" == "x1"; then
23355 versioned_symbols_flavour="CYASSL_"
23356 elif test "x$AXTLS_ENABLED" == "x1"; then
23357 versioned_symbols_flavour="AXTLS_"
23358 else
23359 versioned_symbols_flavour=""
23360 fi
23361 versioned_symbols="yes"
23362 ;;
23363
23364 *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
23365 $as_echo "no" >&6; }
23366 ;;
23367 esac
23368
23369 else
23370
23371 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
23372 $as_echo "no" >&6; }
23373
23374
23375 fi
23376
23377 fi
23378
23379 VERSIONED_FLAVOUR="$versioned_symbols_flavour"
23380
23381
23382
23383 if test "x$versioned_symbols" = "xyes"; then
23384 VERSIONED_SYMBOLS_TRUE=
23385 VERSIONED_SYMBOLS_FALSE='#'
23386 else
23387 VERSIONED_SYMBOLS_TRUE='#'
23388 VERSIONED_SYMBOLS_FALSE=
23389 fi
23390
23391
23392
23393
2318823394 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build with libidn" >&5
2318923395 $as_echo_n "checking whether to build with libidn... " >&6; }
23396 OPT_IDN="default"
2319023397
2319123398 # Check whether --with-libidn was given.
2319223399 if test "${with_libidn+set}" = set; then :
23193 withval=$with_libidn; LIBIDN="$withval"
23194 fi
23195
23196
23197 case "$LIBIDN" in
23400 withval=$with_libidn; OPT_IDN=$withval
23401 fi
23402
23403 case "$OPT_IDN" in
2319823404 no)
23199 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
23200 $as_echo "no" >&6; }
23201 ;;
23202 *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
23203 $as_echo "yes" >&6; }
23204
23205 idn=""
23206 if test -n "$LIBIDN"; then
23207 if test "x$LIBIDN" != "xyes"; then
23208 oldLDFLAGS=$LDFLAGS
23209 oldCPPFLAGS=$CPPFLAGS
23210 LDFLAGS="$LDFLAGS -L$LIBIDN/lib"
23211 CPPFLAGS="$CPPFLAGS -I$LIBIDN/include"
23212 idn="yes"
23213 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for idna_to_ascii_4i in -lidn" >&5
23214 $as_echo_n "checking for idna_to_ascii_4i in -lidn... " >&6; }
23215 if test "${ac_cv_lib_idn_idna_to_ascii_4i+set}" = set; then :
23405 want_idn="no"
23406 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
23407 $as_echo "no" >&6; }
23408 ;;
23409 default)
23410 want_idn="yes"
23411 want_idn_path="default"
23412 { $as_echo "$as_me:${as_lineno-$LINENO}: result: (assumed) yes" >&5
23413 $as_echo "(assumed) yes" >&6; }
23414 ;;
23415 yes)
23416 want_idn="yes"
23417 want_idn_path="default"
23418 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
23419 $as_echo "yes" >&6; }
23420 ;;
23421 *)
23422 want_idn="yes"
23423 want_idn_path="$withval"
23424 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ($withval)" >&5
23425 $as_echo "yes ($withval)" >&6; }
23426 ;;
23427 esac
23428
23429 if test "$want_idn" = "yes"; then
23430 clean_CPPFLAGS="$CPPFLAGS"
23431 clean_LDFLAGS="$LDFLAGS"
23432 clean_LIBS="$LIBS"
23433 PKGCONFIG="no"
23434 #
23435 if test "$want_idn_path" != "default"; then
23436 IDN_PCDIR="$want_idn_path/lib$libsuff/pkgconfig"
23437
23438
23439 PKGCONFIG="no"
23440
23441 if test x$cross_compiling = xyes; then
23442 # Extract the first word of "${host}-pkg-config", so it can be a program name with args.
23443 set dummy ${host}-pkg-config; ac_word=$2
23444 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
23445 $as_echo_n "checking for $ac_word... " >&6; }
23446 if test "${ac_cv_path_PKGCONFIG+set}" = set; then :
2321623447 $as_echo_n "(cached) " >&6
2321723448 else
23218 ac_check_lib_save_LIBS=$LIBS
23219 LIBS="-lidn $LIBS"
23220 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
23221 /* end confdefs.h. */
23222
23223
23449 case $PKGCONFIG in
23450 [\\/]* | ?:[\\/]*)
23451 ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
23452 ;;
23453 *)
23454 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
23455 as_dummy="$PATH:/usr/bin:/usr/local/bin"
23456 for as_dir in $as_dummy
23457 do
23458 IFS=$as_save_IFS
23459 test -z "$as_dir" && as_dir=.
23460 for ac_exec_ext in '' $ac_executable_extensions; do
23461 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
23462 ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
23463 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
23464 break 2
23465 fi
23466 done
23467 done
23468 IFS=$as_save_IFS
23469
23470 test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="no"
23471 ;;
23472 esac
23473 fi
23474 PKGCONFIG=$ac_cv_path_PKGCONFIG
23475 if test -n "$PKGCONFIG"; then
23476 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
23477 $as_echo "$PKGCONFIG" >&6; }
23478 else
23479 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
23480 $as_echo "no" >&6; }
23481 fi
23482
23483
23484 fi
23485
23486 if test x$PKGCONFIG = xno; then
23487 # Extract the first word of "pkg-config", so it can be a program name with args.
23488 set dummy pkg-config; ac_word=$2
23489 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
23490 $as_echo_n "checking for $ac_word... " >&6; }
23491 if test "${ac_cv_path_PKGCONFIG+set}" = set; then :
23492 $as_echo_n "(cached) " >&6
23493 else
23494 case $PKGCONFIG in
23495 [\\/]* | ?:[\\/]*)
23496 ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
23497 ;;
23498 *)
23499 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
23500 as_dummy="$PATH:/usr/bin:/usr/local/bin"
23501 for as_dir in $as_dummy
23502 do
23503 IFS=$as_save_IFS
23504 test -z "$as_dir" && as_dir=.
23505 for ac_exec_ext in '' $ac_executable_extensions; do
23506 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
23507 ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
23508 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
23509 break 2
23510 fi
23511 done
23512 done
23513 IFS=$as_save_IFS
23514
23515 test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="no"
23516 ;;
23517 esac
23518 fi
23519 PKGCONFIG=$ac_cv_path_PKGCONFIG
23520 if test -n "$PKGCONFIG"; then
23521 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
23522 $as_echo "$PKGCONFIG" >&6; }
23523 else
23524 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
23525 $as_echo "no" >&6; }
23526 fi
23527
23528
23529 fi
23530
23531 if test x$PKGCONFIG != xno; then
23532 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libidn options with pkg-config" >&5
23533 $as_echo_n "checking for libidn options with pkg-config... " >&6; }
23534 itexists=`
23535 if test -n "$IDN_PCDIR"; then
23536 PKG_CONFIG_LIBDIR="$IDN_PCDIR"
23537 export PKG_CONFIG_LIBDIR
23538 fi
23539 $PKGCONFIG --exists libidn >/dev/null 2>&1 && echo 1`
23540
23541 if test -z "$itexists"; then
23542 PKGCONFIG="no"
23543 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
23544 $as_echo "no" >&6; }
23545 else
23546 { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
23547 $as_echo "found" >&6; }
23548 fi
23549 fi
23550
23551 if test "$PKGCONFIG" != "no"; then
23552 IDN_LIBS=`
23553 if test -n "$IDN_PCDIR"; then
23554 PKG_CONFIG_LIBDIR="$IDN_PCDIR"
23555 export PKG_CONFIG_LIBDIR
23556 fi
23557 $PKGCONFIG --libs-only-l libidn 2>/dev/null`
23558 IDN_LDFLAGS=`
23559 if test -n "$IDN_PCDIR"; then
23560 PKG_CONFIG_LIBDIR="$IDN_PCDIR"
23561 export PKG_CONFIG_LIBDIR
23562 fi
23563 $PKGCONFIG --libs-only-L libidn 2>/dev/null`
23564 IDN_CPPFLAGS=`
23565 if test -n "$IDN_PCDIR"; then
23566 PKG_CONFIG_LIBDIR="$IDN_PCDIR"
23567 export PKG_CONFIG_LIBDIR
23568 fi
23569 $PKGCONFIG --cflags-only-I libidn 2>/dev/null`
23570 IDN_DIR=`echo $IDN_LDFLAGS | $SED -e 's/-L//'`
23571 else
23572 IDN_LIBS="-lidn"
23573 IDN_LDFLAGS="-L$want_idn_path/lib$libsuff"
23574 IDN_CPPFLAGS="-I$want_idn_path/include"
23575 IDN_DIR="$want_idn_path/lib$libsuff"
23576 fi
23577 else
23578
23579
23580 PKGCONFIG="no"
23581
23582 if test x$cross_compiling = xyes; then
23583 # Extract the first word of "${host}-pkg-config", so it can be a program name with args.
23584 set dummy ${host}-pkg-config; ac_word=$2
23585 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
23586 $as_echo_n "checking for $ac_word... " >&6; }
23587 if test "${ac_cv_path_PKGCONFIG+set}" = set; then :
23588 $as_echo_n "(cached) " >&6
23589 else
23590 case $PKGCONFIG in
23591 [\\/]* | ?:[\\/]*)
23592 ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
23593 ;;
23594 *)
23595 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
23596 as_dummy="$PATH:/usr/bin:/usr/local/bin"
23597 for as_dir in $as_dummy
23598 do
23599 IFS=$as_save_IFS
23600 test -z "$as_dir" && as_dir=.
23601 for ac_exec_ext in '' $ac_executable_extensions; do
23602 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
23603 ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
23604 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
23605 break 2
23606 fi
23607 done
23608 done
23609 IFS=$as_save_IFS
23610
23611 test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="no"
23612 ;;
23613 esac
23614 fi
23615 PKGCONFIG=$ac_cv_path_PKGCONFIG
23616 if test -n "$PKGCONFIG"; then
23617 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
23618 $as_echo "$PKGCONFIG" >&6; }
23619 else
23620 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
23621 $as_echo "no" >&6; }
23622 fi
23623
23624
23625 fi
23626
23627 if test x$PKGCONFIG = xno; then
23628 # Extract the first word of "pkg-config", so it can be a program name with args.
23629 set dummy pkg-config; ac_word=$2
23630 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
23631 $as_echo_n "checking for $ac_word... " >&6; }
23632 if test "${ac_cv_path_PKGCONFIG+set}" = set; then :
23633 $as_echo_n "(cached) " >&6
23634 else
23635 case $PKGCONFIG in
23636 [\\/]* | ?:[\\/]*)
23637 ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
23638 ;;
23639 *)
23640 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
23641 as_dummy="$PATH:/usr/bin:/usr/local/bin"
23642 for as_dir in $as_dummy
23643 do
23644 IFS=$as_save_IFS
23645 test -z "$as_dir" && as_dir=.
23646 for ac_exec_ext in '' $ac_executable_extensions; do
23647 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
23648 ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
23649 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
23650 break 2
23651 fi
23652 done
23653 done
23654 IFS=$as_save_IFS
23655
23656 test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="no"
23657 ;;
23658 esac
23659 fi
23660 PKGCONFIG=$ac_cv_path_PKGCONFIG
23661 if test -n "$PKGCONFIG"; then
23662 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
23663 $as_echo "$PKGCONFIG" >&6; }
23664 else
23665 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
23666 $as_echo "no" >&6; }
23667 fi
23668
23669
23670 fi
23671
23672 if test x$PKGCONFIG != xno; then
23673 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libidn options with pkg-config" >&5
23674 $as_echo_n "checking for libidn options with pkg-config... " >&6; }
23675 itexists=`
23676 if test -n ""; then
23677 PKG_CONFIG_LIBDIR=""
23678 export PKG_CONFIG_LIBDIR
23679 fi
23680 $PKGCONFIG --exists libidn >/dev/null 2>&1 && echo 1`
23681
23682 if test -z "$itexists"; then
23683 PKGCONFIG="no"
23684 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
23685 $as_echo "no" >&6; }
23686 else
23687 { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
23688 $as_echo "found" >&6; }
23689 fi
23690 fi
23691
23692 if test "$PKGCONFIG" != "no"; then
23693 IDN_LIBS=`$PKGCONFIG --libs-only-l libidn 2>/dev/null`
23694 IDN_LDFLAGS=`$PKGCONFIG --libs-only-L libidn 2>/dev/null`
23695 IDN_CPPFLAGS=`$PKGCONFIG --cflags-only-I libidn 2>/dev/null`
23696 IDN_DIR=`echo $IDN_LDFLAGS | $SED -e 's/-L//'`
23697 else
23698 IDN_LIBS="-lidn"
23699 fi
23700 fi
23701 #
23702 if test "$PKGCONFIG" != "no"; then
23703 { $as_echo "$as_me:${as_lineno-$LINENO}: pkg-config: IDN_LIBS: \"$IDN_LIBS\"" >&5
23704 $as_echo "$as_me: pkg-config: IDN_LIBS: \"$IDN_LIBS\"" >&6;}
23705 { $as_echo "$as_me:${as_lineno-$LINENO}: pkg-config: IDN_LDFLAGS: \"$IDN_LDFLAGS\"" >&5
23706 $as_echo "$as_me: pkg-config: IDN_LDFLAGS: \"$IDN_LDFLAGS\"" >&6;}
23707 { $as_echo "$as_me:${as_lineno-$LINENO}: pkg-config: IDN_CPPFLAGS: \"$IDN_CPPFLAGS\"" >&5
23708 $as_echo "$as_me: pkg-config: IDN_CPPFLAGS: \"$IDN_CPPFLAGS\"" >&6;}
23709 { $as_echo "$as_me:${as_lineno-$LINENO}: pkg-config: IDN_DIR: \"$IDN_DIR\"" >&5
23710 $as_echo "$as_me: pkg-config: IDN_DIR: \"$IDN_DIR\"" >&6;}
23711 else
23712 { $as_echo "$as_me:${as_lineno-$LINENO}: IDN_LIBS: \"$IDN_LIBS\"" >&5
23713 $as_echo "$as_me: IDN_LIBS: \"$IDN_LIBS\"" >&6;}
23714 { $as_echo "$as_me:${as_lineno-$LINENO}: IDN_LDFLAGS: \"$IDN_LDFLAGS\"" >&5
23715 $as_echo "$as_me: IDN_LDFLAGS: \"$IDN_LDFLAGS\"" >&6;}
23716 { $as_echo "$as_me:${as_lineno-$LINENO}: IDN_CPPFLAGS: \"$IDN_CPPFLAGS\"" >&5
23717 $as_echo "$as_me: IDN_CPPFLAGS: \"$IDN_CPPFLAGS\"" >&6;}
23718 { $as_echo "$as_me:${as_lineno-$LINENO}: IDN_DIR: \"$IDN_DIR\"" >&5
23719 $as_echo "$as_me: IDN_DIR: \"$IDN_DIR\"" >&6;}
23720 fi
23721 #
23722 CPPFLAGS="$IDN_CPPFLAGS $CPPFLAGS"
23723 LDFLAGS="$IDN_LDFLAGS $LDFLAGS"
23724 LIBS="$IDN_LIBS $LIBS"
23725 #
23726 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if idna_to_ascii_4i can be linked" >&5
23727 $as_echo_n "checking if idna_to_ascii_4i can be linked... " >&6; }
23728 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
23729 /* end confdefs.h. */
23730
23731
23732 #define idna_to_ascii_4i innocuous_idna_to_ascii_4i
23733 #ifdef __STDC__
23734 # include <limits.h>
23735 #else
23736 # include <assert.h>
23737 #endif
23738 #undef idna_to_ascii_4i
2322423739 #ifdef __cplusplus
2322523740 extern "C"
2322623741 #endif
2322723742 char idna_to_ascii_4i ();
23743 #if defined __stub_idna_to_ascii_4i || defined __stub___idna_to_ascii_4i
23744 choke me
23745 #endif
23746
2322823747 int main (void)
2322923748 {
2323023749 return idna_to_ascii_4i ();
2323123750 ;
2323223751 return 0;
2323323752 }
23753
2323423754 _ACEOF
2323523755 if ac_fn_c_try_link "$LINENO"; then :
23236 ac_cv_lib_idn_idna_to_ascii_4i=yes
23237 else
23238 ac_cv_lib_idn_idna_to_ascii_4i=no
23756
23757 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
23758 $as_echo "yes" >&6; }
23759 tst_links_libidn="yes"
23760
23761 else
23762
23763 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
23764 $as_echo "no" >&6; }
23765 tst_links_libidn="no"
23766
2323923767 fi
2324023768 rm -f core conftest.err conftest.$ac_objext \
2324123769 conftest$ac_exeext conftest.$ac_ext
23242 LIBS=$ac_check_lib_save_LIBS
23243 fi
23244 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_idn_idna_to_ascii_4i" >&5
23245 $as_echo "$ac_cv_lib_idn_idna_to_ascii_4i" >&6; }
23246 if test "x$ac_cv_lib_idn_idna_to_ascii_4i" = x""yes; then :
23247 cat >>confdefs.h <<_ACEOF
23248 #define HAVE_LIBIDN 1
23249 _ACEOF
23250
23251 LIBS="-lidn $LIBS"
23252
23253 else
23254 idn=""
23255 LDFLAGS=$oldLDFLAGS
23256 CPPFLAGS=$oldCPPFLAGS
23257 fi
23258
23259 fi
23260 fi
23261
23262 if test "x$idn" != "xyes"; then
23263 idn="yes"
23264 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for idna_to_ascii_lz in -lidn" >&5
23265 $as_echo_n "checking for idna_to_ascii_lz in -lidn... " >&6; }
23266 if test "${ac_cv_lib_idn_idna_to_ascii_lz+set}" = set; then :
23267 $as_echo_n "(cached) " >&6
23268 else
23269 ac_check_lib_save_LIBS=$LIBS
23270 LIBS="-lidn $LIBS"
23271 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
23272 /* end confdefs.h. */
23273
23274
23770 if test "$tst_links_libidn" = "no"; then
23771 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if idna_to_ascii_lz can be linked" >&5
23772 $as_echo_n "checking if idna_to_ascii_lz can be linked... " >&6; }
23773 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
23774 /* end confdefs.h. */
23775
23776
23777 #define idna_to_ascii_lz innocuous_idna_to_ascii_lz
23778 #ifdef __STDC__
23779 # include <limits.h>
23780 #else
23781 # include <assert.h>
23782 #endif
23783 #undef idna_to_ascii_lz
2327523784 #ifdef __cplusplus
2327623785 extern "C"
2327723786 #endif
2327823787 char idna_to_ascii_lz ();
23788 #if defined __stub_idna_to_ascii_lz || defined __stub___idna_to_ascii_lz
23789 choke me
23790 #endif
23791
2327923792 int main (void)
2328023793 {
2328123794 return idna_to_ascii_lz ();
2328223795 ;
2328323796 return 0;
2328423797 }
23798
2328523799 _ACEOF
2328623800 if ac_fn_c_try_link "$LINENO"; then :
23287 ac_cv_lib_idn_idna_to_ascii_lz=yes
23288 else
23289 ac_cv_lib_idn_idna_to_ascii_lz=no
23801
23802 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
23803 $as_echo "yes" >&6; }
23804 tst_links_libidn="yes"
23805
23806 else
23807
23808 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
23809 $as_echo "no" >&6; }
23810 tst_links_libidn="no"
23811
2329023812 fi
2329123813 rm -f core conftest.err conftest.$ac_objext \
2329223814 conftest$ac_exeext conftest.$ac_ext
23293 LIBS=$ac_check_lib_save_LIBS
23294 fi
23295 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_idn_idna_to_ascii_lz" >&5
23296 $as_echo "$ac_cv_lib_idn_idna_to_ascii_lz" >&6; }
23297 if test "x$ac_cv_lib_idn_idna_to_ascii_lz" = x""yes; then :
23298 cat >>confdefs.h <<_ACEOF
23299 #define HAVE_LIBIDN 1
23300 _ACEOF
23301
23302 LIBS="-lidn $LIBS"
23303
23304 else
23305 idn=""
23306 fi
23307
23308 fi
23309
23310 if test "x$idn" = "xyes"; then
23311 curl_idn_msg="enabled"
23312 IDN_ENABLED=1
23313
23314 for ac_func in idn_free idna_strerror tld_strerror
23815 fi
23816 #
23817 if test "$tst_links_libidn" = "yes"; then
23818
23819 $as_echo "#define HAVE_LIBIDN 1" >>confdefs.h
23820
23821 for ac_func in idn_free idna_strerror tld_strerror
2331523822 do :
2331623823 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
2331723824 ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
2332423831 fi
2332523832 done
2332623833
23327 for ac_header in idn-free.h tld.h
23834 for ac_header in idn-free.h tld.h
2332823835 do :
2332923836 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
2333023837 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
2333823845
2333923846 done
2334023847
23341 fi
23342
23343 ;;
23344 esac
23848 if test "x$ac_cv_header_tld_h" = "xyes"; then
23849 IDN_ENABLED=1
23850
23851 curl_idn_msg="enabled"
23852 if test -n "$IDN_DIR"; then
23853 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$IDN_DIR"
23854 export LD_LIBRARY_PATH
23855 { $as_echo "$as_me:${as_lineno-$LINENO}: Added $IDN_DIR to LD_LIBRARY_PATH" >&5
23856 $as_echo "$as_me: Added $IDN_DIR to LD_LIBRARY_PATH" >&6;}
23857 fi
23858 else
23859 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libraries for IDN support too old: IDN disabled" >&5
23860 $as_echo "$as_me: WARNING: Libraries for IDN support too old: IDN disabled" >&2;}
23861 CPPFLAGS="$clean_CPPFLAGS"
23862 LDFLAGS="$clean_LDFLAGS"
23863 LIBS="$clean_LIBS"
23864 fi
23865 else
23866 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Cannot find libraries for IDN support: IDN disabled" >&5
23867 $as_echo "$as_me: WARNING: Cannot find libraries for IDN support: IDN disabled" >&2;}
23868 CPPFLAGS="$clean_CPPFLAGS"
23869 LDFLAGS="$clean_LDFLAGS"
23870 LIBS="$clean_LIBS"
23871 fi
23872 fi
2334523873
2334623874
2334723875
3726437792 ac_configure_args="$ac_configure_args --enable-curldebug"
3726537793 fi
3726637794
37267 ac_config_files="$ac_config_files Makefile docs/Makefile docs/examples/Makefile docs/libcurl/Makefile include/Makefile include/curl/Makefile src/Makefile lib/Makefile tests/Makefile tests/data/Makefile tests/server/Makefile tests/libtest/Makefile tests/unit/Makefile packages/Makefile packages/Win32/Makefile packages/Win32/cygwin/Makefile packages/Linux/Makefile packages/Linux/RPM/Makefile packages/Linux/RPM/curl.spec packages/Linux/RPM/curl-ssl.spec packages/Solaris/Makefile packages/EPM/curl.list packages/EPM/Makefile packages/vms/Makefile packages/AIX/Makefile packages/AIX/RPM/Makefile packages/AIX/RPM/curl.spec curl-config libcurl.pc"
37795 ac_config_files="$ac_config_files Makefile docs/Makefile docs/examples/Makefile docs/libcurl/Makefile include/Makefile include/curl/Makefile src/Makefile lib/Makefile lib/libcurl.vers tests/Makefile tests/data/Makefile tests/server/Makefile tests/libtest/Makefile tests/unit/Makefile packages/Makefile packages/Win32/Makefile packages/Win32/cygwin/Makefile packages/Linux/Makefile packages/Linux/RPM/Makefile packages/Linux/RPM/curl.spec packages/Linux/RPM/curl-ssl.spec packages/Solaris/Makefile packages/EPM/curl.list packages/EPM/Makefile packages/vms/Makefile packages/AIX/Makefile packages/AIX/RPM/Makefile packages/AIX/RPM/curl.spec curl-config libcurl.pc"
3726837796
3726937797 cat >confcache <<\_ACEOF
3727037798 # This file is a shell script that caches the results of configure
3740137929 fi
3740237930 if test -z "${HAVE_LIBZ_TRUE}" && test -z "${HAVE_LIBZ_FALSE}"; then
3740337931 as_fn_error "conditional \"HAVE_LIBZ\" was never defined.
37932 Usually this means the macro was only invoked conditionally." "$LINENO" 5
37933 fi
37934 if test -z "${VERSIONED_SYMBOLS_TRUE}" && test -z "${VERSIONED_SYMBOLS_FALSE}"; then
37935 as_fn_error "conditional \"VERSIONED_SYMBOLS\" was never defined.
3740437936 Usually this means the macro was only invoked conditionally." "$LINENO" 5
3740537937 fi
3740637938 if test -z "${USE_MANUAL_TRUE}" && test -z "${USE_MANUAL_FALSE}"; then
3829938831 "include/curl/Makefile") CONFIG_FILES="$CONFIG_FILES include/curl/Makefile" ;;
3830038832 "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
3830138833 "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;;
38834 "lib/libcurl.vers") CONFIG_FILES="$CONFIG_FILES lib/libcurl.vers" ;;
3830238835 "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;;
3830338836 "tests/data/Makefile") CONFIG_FILES="$CONFIG_FILES tests/data/Makefile" ;;
3830438837 "tests/server/Makefile") CONFIG_FILES="$CONFIG_FILES tests/server/Makefile" ;;
2525 dnl We don't know the version number "statically" so we use a dash here
2626 AC_INIT([curl], [-], [a suitable curl mailing list: http://curl.haxx.se/mail/])
2727
28 XC_OVR_ZZ50
2829 CURL_OVERRIDE_AUTOCONF
2930
3031 dnl configure script copyright
15131514 RAND_egd \
15141515 ENGINE_cleanup \
15151516 CRYPTO_cleanup_all_ex_data \
1516 SSL_get_shutdown )
1517 SSL_get_shutdown \
1518 SSLv2_client_method )
15171519
15181520 dnl Make an attempt to detect if this is actually yassl's headers and
15191521 dnl OpenSSL emulation layer. We still leave everything else believing
17981800 fi dnl OPENSSL != 1
17991801
18001802 dnl ---
1801 dnl If GnuTLS is enabled, we MUST verify that it uses libgcrypt since
1802 dnl curl code relies on that but recent GnuTLS versions can in fact build
1803 dnl with different crypto libraries which curl right now cannot handle
1803 dnl Check which crypto backend GnuTLS uses
18041804 dnl ---
18051805
18061806 if test "$GNUTLS_ENABLED" = "1"; then
1807 AC_CHECK_LIB(gcrypt,
1808 gcry_control, ,
1809 [
1810 AC_MSG_ERROR([need GnuTLS built with gcrypt to function with GnuTLS])
1811 ])
1807 USE_GNUTLS_NETTLE=
1808 # First check if we can detect either crypto library via transitive linking
1809 AC_CHECK_LIB(gnutls, nettle_MD5Init, [ USE_GNUTLS_NETTLE=1 ])
1810 if test "$USE_GNUTLS_NETTLE" = ""; then
1811 AC_CHECK_LIB(gnutls, gcry_control, [ USE_GNUTLS_NETTLE=0 ])
1812 fi
1813 # If not, try linking directly to both of them to see if they are available
1814 if test "$USE_GNUTLS_NETTLE" = ""; then
1815 AC_CHECK_LIB(nettle, nettle_MD5Init, [ USE_GNUTLS_NETTLE=1 ])
1816 fi
1817 if test "$USE_GNUTLS_NETTLE" = ""; then
1818 AC_CHECK_LIB(gcrypt, gcry_control, [ USE_GNUTLS_NETTLE=0 ])
1819 fi
1820 if test "$USE_GNUTLS_NETTLE" = ""; then
1821 AC_MSG_ERROR([GnuTLS found, but neither gcrypt nor nettle found])
1822 fi
1823 if test "$USE_GNUTLS_NETTLE" = "1"; then
1824 AC_DEFINE(USE_GNUTLS_NETTLE, 1, [if GnuTLS uses nettle as crypto backend])
1825 AC_SUBST(USE_GNUTLS_NETTLE, [1])
1826 fi
18121827 fi
18131828
18141829 dnl ---
23312346 fi
23322347
23332348 dnl **********************************************************************
2349 dnl Check for linker switch for versioned symbols
2350 dnl **********************************************************************
2351
2352 AC_MSG_CHECKING([if libraries can be versioned])
2353 GLD=`$LD --help < /dev/null 2>/dev/null | grep version-script`
2354 if test -z "$GLD"; then
2355 versioned_symbols_flavour=
2356 AC_MSG_RESULT(no)
2357 AC_MSG_WARN(***
2358 *** You need an ld version supporting the --version-script option.
2359 )
2360 else
2361 AC_MSG_RESULT(yes)
2362
2363 AC_MSG_CHECKING([whether versioned symbols are wanted])
2364 versioned_symbols_flavour=
2365
2366 AC_ARG_ENABLE(versioned-symbols,
2367 AC_HELP_STRING([--enable-versioned-symbols], [Enable versioned symbols in shared library])
2368 AC_HELP_STRING([--disable-versioned-symbols], [Disable versioned symbols in shared library]),
2369 [ case "$enableval" in
2370 yes) AC_MSG_RESULT(yes)
2371 if test "x$OPENSSL_ENABLED" = "x1"; then
2372 versioned_symbols_flavour="OPENSSL_"
2373 elif test "x$GNUTLS_ENABLED" == "x1"; then
2374 versioned_symbols_flavour="GNUTLS_"
2375 elif test "x$NSS_ENABLED" == "x1"; then
2376 versioned_symbols_flavour="NSS_"
2377 elif test "x$POLARSSL_ENABLED" == "x1"; then
2378 versioned_symbols_flavour="POLARSSL_"
2379 elif test "x$CYASSL_ENABLED" == "x1"; then
2380 versioned_symbols_flavour="CYASSL_"
2381 elif test "x$AXTLS_ENABLED" == "x1"; then
2382 versioned_symbols_flavour="AXTLS_"
2383 else
2384 versioned_symbols_flavour=""
2385 fi
2386 versioned_symbols="yes"
2387 ;;
2388
2389 *) AC_MSG_RESULT(no)
2390 ;;
2391 esac
2392 ], [
2393 AC_MSG_RESULT(no)
2394 ]
2395 )
2396 fi
2397
2398 AC_SUBST(VERSIONED_FLAVOUR, ["$versioned_symbols_flavour"])
2399 AM_CONDITIONAL(VERSIONED_SYMBOLS, test "x$versioned_symbols" = "xyes")
2400
2401
2402 dnl **********************************************************************
23342403 dnl Check for the presence of IDN libraries and headers
23352404 dnl **********************************************************************
23362405
23372406 AC_MSG_CHECKING([whether to build with libidn])
2407 OPT_IDN="default"
23382408 AC_ARG_WITH(libidn,
23392409 AC_HELP_STRING([--with-libidn=PATH],[Enable libidn usage])
23402410 AC_HELP_STRING([--without-libidn],[Disable libidn usage]),
2341 [LIBIDN="$withval"])
2342
2343 case "$LIBIDN" in
2411 [OPT_IDN=$withval])
2412 case "$OPT_IDN" in
23442413 no)
2345 AC_MSG_RESULT(no)
2346 ;;
2347 *) AC_MSG_RESULT(yes)
2348
2349 idn=""
2350 dnl if there is a given path, check that FIRST
2351 if test -n "$LIBIDN"; then
2352 if test "x$LIBIDN" != "xyes"; then
2353 oldLDFLAGS=$LDFLAGS
2354 oldCPPFLAGS=$CPPFLAGS
2355 LDFLAGS="$LDFLAGS -L$LIBIDN/lib"
2356 CPPFLAGS="$CPPFLAGS -I$LIBIDN/include"
2357 idn="yes"
2358 AC_CHECK_LIB(idn, idna_to_ascii_4i, ,
2359 idn=""
2360 LDFLAGS=$oldLDFLAGS
2361 CPPFLAGS=$oldCPPFLAGS)
2362 fi
2363 fi
2364
2365 if test "x$idn" != "xyes"; then
2366 dnl check with default paths
2367 idn="yes"
2368 AC_CHECK_LIB(idn, idna_to_ascii_lz, ,
2369 idn="")
2370 fi
2371
2372 if test "x$idn" = "xyes"; then
2373 curl_idn_msg="enabled"
2374 AC_SUBST(IDN_ENABLED, [1])
2375 dnl different versions of libidn have different setups of these:
2376 AC_CHECK_FUNCS( idn_free idna_strerror tld_strerror)
2377 AC_CHECK_HEADERS( idn-free.h tld.h )
2378 fi
2379
2380 ;;
2414 dnl --without-libidn option used
2415 want_idn="no"
2416 AC_MSG_RESULT([no])
2417 ;;
2418 default)
2419 dnl configure option not specified
2420 want_idn="yes"
2421 want_idn_path="default"
2422 AC_MSG_RESULT([(assumed) yes])
2423 ;;
2424 yes)
2425 dnl --with-libidn option used without path
2426 want_idn="yes"
2427 want_idn_path="default"
2428 AC_MSG_RESULT([yes])
2429 ;;
2430 *)
2431 dnl --with-libidn option used with path
2432 want_idn="yes"
2433 want_idn_path="$withval"
2434 AC_MSG_RESULT([yes ($withval)])
2435 ;;
23812436 esac
2437
2438 if test "$want_idn" = "yes"; then
2439 dnl idn library support has been requested
2440 clean_CPPFLAGS="$CPPFLAGS"
2441 clean_LDFLAGS="$LDFLAGS"
2442 clean_LIBS="$LIBS"
2443 PKGCONFIG="no"
2444 #
2445 if test "$want_idn_path" != "default"; then
2446 dnl path has been specified
2447 IDN_PCDIR="$want_idn_path/lib$libsuff/pkgconfig"
2448 CURL_CHECK_PKGCONFIG(libidn, [$IDN_PCDIR])
2449 if test "$PKGCONFIG" != "no"; then
2450 IDN_LIBS=`CURL_EXPORT_PCDIR([$IDN_PCDIR]) dnl
2451 $PKGCONFIG --libs-only-l libidn 2>/dev/null`
2452 IDN_LDFLAGS=`CURL_EXPORT_PCDIR([$IDN_PCDIR]) dnl
2453 $PKGCONFIG --libs-only-L libidn 2>/dev/null`
2454 IDN_CPPFLAGS=`CURL_EXPORT_PCDIR([$IDN_PCDIR]) dnl
2455 $PKGCONFIG --cflags-only-I libidn 2>/dev/null`
2456 IDN_DIR=`echo $IDN_LDFLAGS | $SED -e 's/-L//'`
2457 else
2458 dnl pkg-config not available or provides no info
2459 IDN_LIBS="-lidn"
2460 IDN_LDFLAGS="-L$want_idn_path/lib$libsuff"
2461 IDN_CPPFLAGS="-I$want_idn_path/include"
2462 IDN_DIR="$want_idn_path/lib$libsuff"
2463 fi
2464 else
2465 dnl path not specified
2466 CURL_CHECK_PKGCONFIG(libidn)
2467 if test "$PKGCONFIG" != "no"; then
2468 IDN_LIBS=`$PKGCONFIG --libs-only-l libidn 2>/dev/null`
2469 IDN_LDFLAGS=`$PKGCONFIG --libs-only-L libidn 2>/dev/null`
2470 IDN_CPPFLAGS=`$PKGCONFIG --cflags-only-I libidn 2>/dev/null`
2471 IDN_DIR=`echo $IDN_LDFLAGS | $SED -e 's/-L//'`
2472 else
2473 dnl pkg-config not available or provides no info
2474 IDN_LIBS="-lidn"
2475 fi
2476 fi
2477 #
2478 if test "$PKGCONFIG" != "no"; then
2479 AC_MSG_NOTICE([pkg-config: IDN_LIBS: "$IDN_LIBS"])
2480 AC_MSG_NOTICE([pkg-config: IDN_LDFLAGS: "$IDN_LDFLAGS"])
2481 AC_MSG_NOTICE([pkg-config: IDN_CPPFLAGS: "$IDN_CPPFLAGS"])
2482 AC_MSG_NOTICE([pkg-config: IDN_DIR: "$IDN_DIR"])
2483 else
2484 AC_MSG_NOTICE([IDN_LIBS: "$IDN_LIBS"])
2485 AC_MSG_NOTICE([IDN_LDFLAGS: "$IDN_LDFLAGS"])
2486 AC_MSG_NOTICE([IDN_CPPFLAGS: "$IDN_CPPFLAGS"])
2487 AC_MSG_NOTICE([IDN_DIR: "$IDN_DIR"])
2488 fi
2489 #
2490 CPPFLAGS="$IDN_CPPFLAGS $CPPFLAGS"
2491 LDFLAGS="$IDN_LDFLAGS $LDFLAGS"
2492 LIBS="$IDN_LIBS $LIBS"
2493 #
2494 AC_MSG_CHECKING([if idna_to_ascii_4i can be linked])
2495 AC_LINK_IFELSE([
2496 AC_LANG_FUNC_LINK_TRY([idna_to_ascii_4i])
2497 ],[
2498 AC_MSG_RESULT([yes])
2499 tst_links_libidn="yes"
2500 ],[
2501 AC_MSG_RESULT([no])
2502 tst_links_libidn="no"
2503 ])
2504 if test "$tst_links_libidn" = "no"; then
2505 AC_MSG_CHECKING([if idna_to_ascii_lz can be linked])
2506 AC_LINK_IFELSE([
2507 AC_LANG_FUNC_LINK_TRY([idna_to_ascii_lz])
2508 ],[
2509 AC_MSG_RESULT([yes])
2510 tst_links_libidn="yes"
2511 ],[
2512 AC_MSG_RESULT([no])
2513 tst_links_libidn="no"
2514 ])
2515 fi
2516 #
2517 if test "$tst_links_libidn" = "yes"; then
2518 AC_DEFINE(HAVE_LIBIDN, 1, [Define to 1 if you have the `idn' library (-lidn).])
2519 dnl different versions of libidn have different setups of these:
2520 AC_CHECK_FUNCS( idn_free idna_strerror tld_strerror )
2521 AC_CHECK_HEADERS( idn-free.h tld.h )
2522 if test "x$ac_cv_header_tld_h" = "xyes"; then
2523 AC_SUBST([IDN_ENABLED], [1])
2524 curl_idn_msg="enabled"
2525 if test -n "$IDN_DIR"; then
2526 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$IDN_DIR"
2527 export LD_LIBRARY_PATH
2528 AC_MSG_NOTICE([Added $IDN_DIR to LD_LIBRARY_PATH])
2529 fi
2530 else
2531 AC_MSG_WARN([Libraries for IDN support too old: IDN disabled])
2532 CPPFLAGS="$clean_CPPFLAGS"
2533 LDFLAGS="$clean_LDFLAGS"
2534 LIBS="$clean_LIBS"
2535 fi
2536 else
2537 AC_MSG_WARN([Cannot find libraries for IDN support: IDN disabled])
2538 CPPFLAGS="$clean_CPPFLAGS"
2539 LDFLAGS="$clean_LDFLAGS"
2540 LIBS="$clean_LIBS"
2541 fi
2542 fi
23822543
23832544
23842545 dnl Let's hope this split URL remains working:
31073268 include/curl/Makefile \
31083269 src/Makefile \
31093270 lib/Makefile \
3271 lib/libcurl.vers \
31103272 tests/Makefile \
31113273 tests/data/Makefile \
31123274 tests/server/Makefile \
0 Updated: March 8, 2011 (http://curl.haxx.se/docs/faq.html)
0 Updated: December 7, 2011 (http://curl.haxx.se/docs/faq.html)
11 _ _ ____ _
22 ___| | | | _ \| |
33 / __| | | | |_) | |
725725
726726 curl --header "Host: www.example.com" http://127.0.0.1/
727727
728 You can also opt to add faked host name entries to curl with the --resolve
729 option. That has the added benefit that things like redirects will also work
730 properly. The above operation would instead be done as:
731
732 curl --resolve www.example.com:80:127.0.0.1 http://www.example.com/
733
728734 3.20 How to SFTP from my user's home directory?
729735
730736 Contrary to how FTP works, SFTP and SCP URLs specify the exact directory to
391391
392392 set BCCDIR=c:\Borland\BCC55
393393
394 In order to build a plain vanilla version of curl and libcurl run the
394 In order to build a plain vanilla version of curl and libcurl run the
395395 following command from curl's root directory:
396396
397397 make borland
6767 GNU Autoconf 2.57
6868 GNU Automake 1.7 (we currently avoid 1.10 due to Solaris-related bugs)
6969 GNU M4 1.4
70 perl 4
70 perl 5.004
7171 roffit 0.5
7272 groff ? (any version that supports "groff -Tps -man [in] [out]")
7373 ps2pdf (gs) ?
11 join in and help us correct one or more of these! Also be sure to check the
22 changelog of the current development status, as one or more of these problems
33 may have been fixed since this was written!
4
5 78. curl and libcurl don't always signal the client properly when "sending"
6 zero bytes files - it makes for example the command line client not creating
7 any file at all. Like when using FTP.
8 http://curl.haxx.se/bug/view.cgi?id=3438362
9
10 77. CURLOPT_FORBID_REUSE on a handle prevents NTLM from working since it
11 "absuses" the underlying connection re-use system and if connections are
12 forced to close they break the NTLM support.
413
514 76. The SOCKET type in Win64 is 64 bits large (and thus so is curl_socket_t on
615 that platform), and long is only 32 bits. It makes it impossible for
327327 If the content-type is not specified, curl will try to guess from the file
328328 extension (it only knows a few), or use the previously specified type (from
329329 an earlier file if several files are specified in a list) or else it will
330 using the default type 'text/plain'.
330 use the default type 'application/octet-stream'.
331331
332332 Emulate a fill-in form with -F. Let's say you fill in three fields in a
333333 form. One field is a file name which to post, one field is your name and one
6969 $(top_srcdir)/m4/curl-system.m4 $(top_srcdir)/m4/libtool.m4 \
7070 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
7171 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
72 $(top_srcdir)/m4/xc-translit.m4 $(top_srcdir)/acinclude.m4 \
72 $(top_srcdir)/m4/xc-translit.m4 \
73 $(top_srcdir)/m4/zz50-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \
7374 $(top_srcdir)/configure.ac
7475 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
7576 $(ACLOCAL_M4)
227228 USE_EMBEDDED_ARES_FALSE = @USE_EMBEDDED_ARES_FALSE@
228229 USE_EMBEDDED_ARES_TRUE = @USE_EMBEDDED_ARES_TRUE@
229230 USE_GNUTLS = @USE_GNUTLS@
231 USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
230232 USE_LIBRTMP = @USE_LIBRTMP@
231233 USE_LIBSSH2 = @USE_LIBSSH2@
232234 USE_MANUAL_FALSE = @USE_MANUAL_FALSE@
237239 USE_SSLEAY = @USE_SSLEAY@
238240 USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
239241 VERSION = @VERSION@
242 VERSIONED_FLAVOUR = @VERSIONED_FLAVOUR@
243 VERSIONED_SYMBOLS_FALSE = @VERSIONED_SYMBOLS_FALSE@
244 VERSIONED_SYMBOLS_TRUE = @VERSIONED_SYMBOLS_TRUE@
240245 VERSIONNUM = @VERSIONNUM@
241246 ac_ct_AR = @ac_ct_AR@
242247 ac_ct_CC = @ac_ct_CC@
537537 Marcus Sundberg
538538 Marcus Webster
539539 Mario Schroeder
540 Mark Brand
540541 Mark Butler
541542 Mark Davies
542543 Mark Eichin
1616 1.4 signal-based resolver timeouts
1717 1.5 get rid of PATH_MAX
1818 1.6 progress callback without doubles
19 1.7 Happy Eyeball dual stack connect
1920
2021 2. libcurl - multi interface
2122 2.1 More non-blocking
146147 have both co-exist for a forseeable time until we can remove the double-using
147148 one.
148149
150 1.7 Happy Eyeball dual stack connect
151
152 In order to make alternative technologies not suffer when transitioning, like
153 when introducing IPv6 as an alternative to IPv4 and there are more than one
154 option existing simultaneously there are reasons to reconsider internal
155 choices.
156
157 To make libcurl do blazing fast IPv6 in a dual-stack configuration, this needs
158 to be addressed:
159
160 http://tools.ietf.org/html/draft-ietf-v6ops-happy-eyeballs-07
161
162
149163 2. libcurl - multi interface
150164
151165 2.1 More non-blocking
155169
156170 - Name resolves on non-windows unless c-ares is used
157171 - NSS SSL connections
158 - Active FTP connections
159172 - HTTP proxy CONNECT operations
160173 - SOCKS proxy handshakes
161174 - file:// transfers
Binary diff not shown
44 .\" * | (__| |_| | _ <| |___
55 .\" * \___|\___/|_| \_\_____|
66 .\" *
7 .\" * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
7 .\" * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
88 .\" *
99 .\" * This software is licensed as described in the file COPYING, which
1010 .\" * you should have received as part of this distribution. The terms
433433 If this option is used several times, the last one will be used.
434434 .IP "--capath <CA certificate directory>"
435435 (SSL) Tells curl to use the specified certificate directory to verify the
436 peer. The certificates must be in PEM format, and if curl is built against
437 OpenSSL, the directory must have been processed using the c_rehash utility
438 supplied with OpenSSL. Using \fI--capath\fP can allow OpenSSL-powered curl to
439 make SSL-connections much more efficiently than using \fI--cacert\fP if the
440 \fI--cacert\fP file contains many CA certificates.
441
442 If this option is used several times, the last one will be used.
436 peer. Multiple paths can be provided by separating them with ":" (e.g.
437 \&"path1:path2:path3"). The certificates must be in PEM format, and if curl is
438 built against OpenSSL, the directory must have been processed using the
439 c_rehash utility supplied with OpenSSL. Using \fI--capath\fP can allow
440 OpenSSL-powered curl to make SSL-connections much more efficiently than using
441 \fI--cacert\fP if the \fI--cacert\fP file contains many CA certificates.
442
443 If this option is set, the default capath value will be ignored, and if it is
444 used several times, the last one will be used.
443445 .IP "-f, --fail"
444446 (HTTP) Fail silently (no output at all) on server errors. This is mostly done
445447 to better enable scripts etc to better deal with failed attempts. In
13211323 unprotected exchange of the protection mode negotiation. (Added in 7.19.4).
13221324 .IP "--stderr <file>"
13231325 Redirect all writes to stderr to the specified file instead. If the file name
1324 is a plain '-', it is instead written to stdout. This option has no point when
1325 you're using a shell with decent redirecting capabilities.
1326 is a plain '-', it is instead written to stdout.
13261327
13271328 If this option is used several times, the last one will be used.
13281329 .IP "-t, --telnet-option <OPT=val>"
200200 <p class="level1">If curl is built against the NSS SSL library then this option tells curl the nickname of the CA certificate to use within the NSS database defined by the environment variable SSL_DIR (or by default /etc/pki/nssdb). If the NSS PEM PKCS#11 module (libnsspem.so) is available then PEM files may be loaded.
201201 <p class="level1">If this option is used several times, the last one will be used.
202202 <p class="level0"><a name="--capath"></a><span class="nroffip">--capath &lt;CA certificate directory&gt;</span>
203 <p class="level1">(SSL) Tells curl to use the specified certificate directory to verify the peer. The certificates must be in PEM format, and if curl is built against OpenSSL, the directory must have been processed using the c_rehash utility supplied with OpenSSL. Using <a class="emphasis" href="#--capath">--capath</a> can allow OpenSSL-powered curl to make SSL-connections much more efficiently than using <a class="emphasis" href="#--cacert">--cacert</a> if the <a class="emphasis" href="#--cacert">--cacert</a> file contains many CA certificates.
204 <p class="level1">If this option is used several times, the last one will be used.
203 <p class="level1">(SSL) Tells curl to use the specified certificate directory to verify the peer. Multiple paths can be provided by separating them with ":" (e.g. "path1:path2:path3"). The certificates must be in PEM format, and if curl is built against OpenSSL, the directory must have been processed using the c_rehash utility supplied with OpenSSL. Using <a class="emphasis" href="#--capath">--capath</a> can allow OpenSSL-powered curl to make SSL-connections much more efficiently than using <a class="emphasis" href="#--cacert">--cacert</a> if the <a class="emphasis" href="#--cacert">--cacert</a> file contains many CA certificates.
204 <p class="level1">If this option is set, the default capath value will be ignored, and if it is used several times, the last one will be used.
205205 <p class="level0"><a name="-f"></a><span class="nroffip">-f, --fail</span>
206206 <p class="level1">(HTTP) Fail silently (no output at all) on server errors. This is mostly done to better enable scripts etc to better deal with failed attempts. In normal cases when a HTTP server fails to deliver a document, it returns an HTML document stating so (which often also describes why and more). This flag will prevent curl from outputting that and return error 22.
207207 <p class="level1">This method is not fail-safe and there are occasions where non-successful response codes will slip through, especially when authentication is involved (response codes 401 and 407).
552552 <p class="level0"><a name="--socks5-gssapi-nec"></a><span class="nroffip">--socks5-gssapi-nec</span>
553553 <p class="level1">As part of the gssapi negotiation a protection mode is negotiated. <a href="http://www.ietf.org/rfc/rfc1961.txt">RFC 1961</a> says in section 4.3/4.4 it should be protected, but the NEC reference implementation does not. The option <a class="emphasis" href="#--socks5-gssapi-nec">--socks5-gssapi-nec</a> allows the unprotected exchange of the protection mode negotiation. (Added in 7.19.4).
554554 <p class="level0"><a name="--stderr"></a><span class="nroffip">--stderr &lt;file&gt;</span>
555 <p class="level1">Redirect all writes to stderr to the specified file instead. If the file name is a plain '-', it is instead written to stdout. This option has no point when you're using a shell with decent redirecting capabilities.
555 <p class="level1">Redirect all writes to stderr to the specified file instead. If the file name is a plain '-', it is instead written to stdout.
556556 <p class="level1">If this option is used several times, the last one will be used.
557557 <p class="level0"><a name="-t"></a><span class="nroffip">-t, --telnet-option &lt;OPT=val&gt;</span>
558558 <p class="level1">Pass options to the telnet protocol. Supported options are:
Binary diff not shown
7272 chkspeed$(EXEEXT) ftpgetinfo$(EXEEXT) ftp-wildcard$(EXEEXT) \
7373 smtp-multi$(EXEEXT) simplesmtp$(EXEEXT) smtp-tls$(EXEEXT) \
7474 rtsp$(EXEEXT) externalsocket$(EXEEXT) resolve$(EXEEXT) \
75 progressfunc$(EXEEXT)
75 progressfunc$(EXEEXT) pop3s$(EXEEXT) pop3slist$(EXEEXT) \
76 imap$(EXEEXT) url2file$(EXEEXT)
7677 subdir = docs/examples
7778 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
7879 am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
8485 $(top_srcdir)/m4/curl-system.m4 $(top_srcdir)/m4/libtool.m4 \
8586 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
8687 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
87 $(top_srcdir)/m4/xc-translit.m4 $(top_srcdir)/acinclude.m4 \
88 $(top_srcdir)/m4/xc-translit.m4 \
89 $(top_srcdir)/m4/zz50-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \
8890 $(top_srcdir)/configure.ac
8991 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
9092 $(ACLOCAL_M4)
173175 https_OBJECTS = https.$(OBJEXT)
174176 https_LDADD = $(LDADD)
175177 https_DEPENDENCIES = $(LIBDIR)/libcurl.la
178 imap_SOURCES = imap.c
179 imap_OBJECTS = imap.$(OBJEXT)
180 imap_LDADD = $(LDADD)
181 imap_DEPENDENCIES = $(LIBDIR)/libcurl.la
176182 multi_app_SOURCES = multi-app.c
177183 multi_app_OBJECTS = multi-app.$(OBJEXT)
178184 multi_app_LDADD = $(LDADD)
197203 persistant_OBJECTS = persistant.$(OBJEXT)
198204 persistant_LDADD = $(LDADD)
199205 persistant_DEPENDENCIES = $(LIBDIR)/libcurl.la
206 pop3s_SOURCES = pop3s.c
207 pop3s_OBJECTS = pop3s.$(OBJEXT)
208 pop3s_LDADD = $(LDADD)
209 pop3s_DEPENDENCIES = $(LIBDIR)/libcurl.la
210 pop3slist_SOURCES = pop3slist.c
211 pop3slist_OBJECTS = pop3slist.$(OBJEXT)
212 pop3slist_LDADD = $(LDADD)
213 pop3slist_DEPENDENCIES = $(LIBDIR)/libcurl.la
200214 post_callback_SOURCES = post-callback.c
201215 post_callback_OBJECTS = post-callback.$(OBJEXT)
202216 post_callback_LDADD = $(LDADD)
249263 smtp_tls_OBJECTS = smtp-tls.$(OBJEXT)
250264 smtp_tls_LDADD = $(LDADD)
251265 smtp_tls_DEPENDENCIES = $(LIBDIR)/libcurl.la
266 url2file_SOURCES = url2file.c
267 url2file_OBJECTS = url2file.$(OBJEXT)
268 url2file_LDADD = $(LDADD)
269 url2file_DEPENDENCIES = $(LIBDIR)/libcurl.la
252270 DEFAULT_INCLUDES =
253271 depcomp = $(SHELL) $(top_srcdir)/depcomp
254272 am__depfiles_maybe = depfiles
264282 cookie_interface.c debug.c externalsocket.c fileupload.c \
265283 fopen.c ftp-wildcard.c ftpget.c ftpgetinfo.c ftpgetresp.c \
266284 ftpupload.c getinfo.c getinmemory.c http-post.c \
267 httpcustomheader.c httpput.c https.c multi-app.c \
285 httpcustomheader.c httpput.c https.c imap.c multi-app.c \
268286 multi-debugcallback.c multi-double.c multi-post.c \
269 multi-single.c persistant.c post-callback.c postit2.c \
270 progressfunc.c resolve.c rtsp.c sendrecv.c sepheaders.c \
271 simple.c simplepost.c simplesmtp.c simplessl.c smtp-multi.c \
272 smtp-tls.c
287 multi-single.c persistant.c pop3s.c pop3slist.c \
288 post-callback.c postit2.c progressfunc.c resolve.c rtsp.c \
289 sendrecv.c sepheaders.c simple.c simplepost.c simplesmtp.c \
290 simplessl.c smtp-multi.c smtp-tls.c url2file.c
273291 DIST_SOURCES = 10-at-a-time.c anyauthput.c certinfo.c chkspeed.c \
274292 cookie_interface.c debug.c externalsocket.c fileupload.c \
275293 fopen.c ftp-wildcard.c ftpget.c ftpgetinfo.c ftpgetresp.c \
276294 ftpupload.c getinfo.c getinmemory.c http-post.c \
277 httpcustomheader.c httpput.c https.c multi-app.c \
295 httpcustomheader.c httpput.c https.c imap.c multi-app.c \
278296 multi-debugcallback.c multi-double.c multi-post.c \
279 multi-single.c persistant.c post-callback.c postit2.c \
280 progressfunc.c resolve.c rtsp.c sendrecv.c sepheaders.c \
281 simple.c simplepost.c simplesmtp.c simplessl.c smtp-multi.c \
282 smtp-tls.c
297 multi-single.c persistant.c pop3s.c pop3slist.c \
298 post-callback.c postit2.c progressfunc.c resolve.c rtsp.c \
299 sendrecv.c sepheaders.c simple.c simplepost.c simplesmtp.c \
300 simplessl.c smtp-multi.c smtp-tls.c url2file.c
283301 ETAGS = etags
284302 CTAGS = ctags
285303 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
415433 USE_EMBEDDED_ARES_FALSE = @USE_EMBEDDED_ARES_FALSE@
416434 USE_EMBEDDED_ARES_TRUE = @USE_EMBEDDED_ARES_TRUE@
417435 USE_GNUTLS = @USE_GNUTLS@
436 USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
418437 USE_LIBRTMP = @USE_LIBRTMP@
419438 USE_LIBSSH2 = @USE_LIBSSH2@
420439 USE_MANUAL_FALSE = @USE_MANUAL_FALSE@
425444 USE_SSLEAY = @USE_SSLEAY@
426445 USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
427446 VERSION = @VERSION@
447 VERSIONED_FLAVOUR = @VERSIONED_FLAVOUR@
448 VERSIONED_SYMBOLS_FALSE = @VERSIONED_SYMBOLS_FALSE@
449 VERSIONED_SYMBOLS_TRUE = @VERSIONED_SYMBOLS_TRUE@
428450 VERSIONNUM = @VERSIONNUM@
429451 ac_ct_AR = @ac_ct_AR@
430452 ac_ct_CC = @ac_ct_CC@
605627 https$(EXEEXT): $(https_OBJECTS) $(https_DEPENDENCIES)
606628 @rm -f https$(EXEEXT)
607629 $(LINK) $(https_LDFLAGS) $(https_OBJECTS) $(https_LDADD) $(LIBS)
630 imap$(EXEEXT): $(imap_OBJECTS) $(imap_DEPENDENCIES)
631 @rm -f imap$(EXEEXT)
632 $(LINK) $(imap_LDFLAGS) $(imap_OBJECTS) $(imap_LDADD) $(LIBS)
608633 multi-app$(EXEEXT): $(multi_app_OBJECTS) $(multi_app_DEPENDENCIES)
609634 @rm -f multi-app$(EXEEXT)
610635 $(LINK) $(multi_app_LDFLAGS) $(multi_app_OBJECTS) $(multi_app_LDADD) $(LIBS)
623648 persistant$(EXEEXT): $(persistant_OBJECTS) $(persistant_DEPENDENCIES)
624649 @rm -f persistant$(EXEEXT)
625650 $(LINK) $(persistant_LDFLAGS) $(persistant_OBJECTS) $(persistant_LDADD) $(LIBS)
651 pop3s$(EXEEXT): $(pop3s_OBJECTS) $(pop3s_DEPENDENCIES)
652 @rm -f pop3s$(EXEEXT)
653 $(LINK) $(pop3s_LDFLAGS) $(pop3s_OBJECTS) $(pop3s_LDADD) $(LIBS)
654 pop3slist$(EXEEXT): $(pop3slist_OBJECTS) $(pop3slist_DEPENDENCIES)
655 @rm -f pop3slist$(EXEEXT)
656 $(LINK) $(pop3slist_LDFLAGS) $(pop3slist_OBJECTS) $(pop3slist_LDADD) $(LIBS)
626657 post-callback$(EXEEXT): $(post_callback_OBJECTS) $(post_callback_DEPENDENCIES)
627658 @rm -f post-callback$(EXEEXT)
628659 $(LINK) $(post_callback_LDFLAGS) $(post_callback_OBJECTS) $(post_callback_LDADD) $(LIBS)
662693 smtp-tls$(EXEEXT): $(smtp_tls_OBJECTS) $(smtp_tls_DEPENDENCIES)
663694 @rm -f smtp-tls$(EXEEXT)
664695 $(LINK) $(smtp_tls_LDFLAGS) $(smtp_tls_OBJECTS) $(smtp_tls_LDADD) $(LIBS)
696 url2file$(EXEEXT): $(url2file_OBJECTS) $(url2file_DEPENDENCIES)
697 @rm -f url2file$(EXEEXT)
698 $(LINK) $(url2file_LDFLAGS) $(url2file_OBJECTS) $(url2file_LDADD) $(LIBS)
665699
666700 mostlyclean-compile:
667701 -rm -f *.$(OBJEXT)
689723 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/httpcustomheader.Po@am__quote@
690724 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/httpput.Po@am__quote@
691725 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/https.Po@am__quote@
726 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imap.Po@am__quote@
692727 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multi-app.Po@am__quote@
693728 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multi-debugcallback.Po@am__quote@
694729 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multi-double.Po@am__quote@
695730 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multi-post.Po@am__quote@
696731 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multi-single.Po@am__quote@
697732 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/persistant.Po@am__quote@
733 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pop3s.Po@am__quote@
734 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pop3slist.Po@am__quote@
698735 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/post-callback.Po@am__quote@
699736 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/postit2.Po@am__quote@
700737 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/progressfunc.Po@am__quote@
708745 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simplessl.Po@am__quote@
709746 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smtp-multi.Po@am__quote@
710747 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smtp-tls.Po@am__quote@
748 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/url2file.Po@am__quote@
711749
712750 .c.o:
713751 @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
44 persistant post-callback postit2 sepheaders simple simplepost simplessl \
55 sendrecv httpcustomheader certinfo chkspeed ftpgetinfo ftp-wildcard \
66 smtp-multi simplesmtp smtp-tls rtsp externalsocket resolve \
7 progressfunc
7 progressfunc pop3s pop3slist imap url2file
88
99 # These examples require external dependencies that may not be commonly
1010 # available on POSIX systems, so don't bother attempting to compile them here.
5757 ifndef LIBIDN_PATH
5858 LIBIDN_PATH = ../../../libidn-1.18
5959 endif
60 # Edit the path below to point to the base of your MS idndlpackage.
60 # Edit the path below to point to the base of your MS IDN package.
6161 # Microsoft Internationalized Domain Names (IDN) Mitigation APIs 1.1
6262 # http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ad6158d7-ddba-416a-9109-07607425a815
6363 ifndef WINIDN_PATH
5454 http-post.c - HTTP POST
5555 httpput.c - HTTP PUT a local file
5656 https.c - simple HTTPS transfer
57 imap.c - simple IMAP transfer
5758 multi-app.c - a multi-interface app
5859 multi-debugcallback.c - a multi-interface app using the debug callback
5960 multi-double.c - a multi-interface app doing two simultaneous transfers
6263 multithread.c - an example using multi-treading transferring multiple files
6364 opensslthreadlock.c - show how to do locking when using OpenSSL multi-threaded
6465 persistant.c - request two URLs with a persistent connection
66 pop3s.c - POP3S transfer
67 pop3slist.c - POP3S LIST
6568 post-callback.c - send a HTTP POST using a callback
6669 postit2.c - send a HTTP multipart formpost
6770 sampleconv.c - showing how a program on a non-ASCII platform would invoke
7275 simplepost.c - HTTP POST
7376 simplessl.c - HTTPS example with certificates many options set
7477 synctime.c - Sync local time by extracting date from remote HTTP servers
78 url2file.c - download a document and store it in a file
7579 10-at-a-time.c - Download many files simultaneously, 10 at a time.
2626 # ifdef __VMS
2727 typedef int intptr_t;
2828 # endif
29 # include <stdint.h>
2930 # include <unistd.h>
3031 #endif
3132 #include <sys/types.h>
238238 SSL_CTX_set_cipher_list(ctx,"RC4-MD5");
239239 SSL_CTX_set_mode(ctx, SSL_MODE_AUTO_RETRY);
240240
241 X509_STORE_add_cert(ctx->cert_store,sk_X509_value(p->ca,
242 sk_X509_num(p->ca)-1));
241 X509_STORE_add_cert(SSL_CTX_get_cert_store(ctx), sk_X509_value(p->ca, sk_X509_num(p->ca)-1));
243242
244243 SSL_CTX_set_verify_depth(ctx,2);
245244
3535 #else
3636 #include <sys/types.h> /* socket types */
3737 #include <sys/socket.h> /* socket definitions */
38 #include <netinet/in.h>
3839 #include <arpa/inet.h> /* inet (3) funtions */
3940 #include <unistd.h> /* misc. UNIX functions */
4041 #endif
0 /***************************************************************************
1 * _ _ ____ _
2 * Project ___| | | | _ \| |
3 * / __| | | | |_) | |
4 * | (__| |_| | _ <| |___
5 * \___|\___/|_| \_\_____|
6 *
7 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
8 *
9 * This software is licensed as described in the file COPYING, which
10 * you should have received as part of this distribution. The terms
11 * are also available at http://curl.haxx.se/docs/copyright.html.
12 *
13 * You may opt to use, copy, modify, merge, publish, distribute and/or sell
14 * copies of the Software, and permit persons to whom the Software is
15 * furnished to do so, under the terms of the COPYING file.
16 *
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
19 *
20 ***************************************************************************/
21 #include <stdio.h>
22 #include <curl/curl.h>
23
24 int main(void)
25 {
26 CURL *curl;
27 CURLcode res;
28
29 curl = curl_easy_init();
30 if(curl) {
31 /* Set username and password */
32 curl_easy_setopt(curl, CURLOPT_USERPWD, "user:password");
33
34 /* This will fetch the mailbox named "foobar" */
35 curl_easy_setopt(curl, CURLOPT_URL, "imap://imap.example.com/foobar");
36
37 res = curl_easy_perform(curl);
38
39 /* always cleanup */
40 curl_easy_cleanup(curl);
41 }
42 return (int)res;
43 }
0 /***************************************************************************
1 * _ _ ____ _
2 * Project ___| | | | _ \| |
3 * / __| | | | |_) | |
4 * | (__| |_| | _ <| |___
5 * \___|\___/|_| \_\_____|
6 *
7 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
8 *
9 * This software is licensed as described in the file COPYING, which
10 * you should have received as part of this distribution. The terms
11 * are also available at http://curl.haxx.se/docs/copyright.html.
12 *
13 * You may opt to use, copy, modify, merge, publish, distribute and/or sell
14 * copies of the Software, and permit persons to whom the Software is
15 * furnished to do so, under the terms of the COPYING file.
16 *
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
19 *
20 ***************************************************************************/
21 #include <stdio.h>
22 #include <curl/curl.h>
23
24 int main(void)
25 {
26 CURL *curl;
27 CURLcode res;
28
29 curl = curl_easy_init();
30 if(curl) {
31 /* Set username and password */
32 curl_easy_setopt(curl, CURLOPT_USERPWD, "user:password");
33
34 /* This will only fetch the message with ID "1" of the given mailbox */
35 curl_easy_setopt(curl, CURLOPT_URL, "pop3s://user@pop.example.com/1");
36
37 #ifdef SKIP_PEER_VERIFICATION
38 /*
39 * If you want to connect to a site who isn't using a certificate that is
40 * signed by one of the certs in the CA bundle you have, you can skip the
41 * verification of the server's certificate. This makes the connection
42 * A LOT LESS SECURE.
43 *
44 * If you have a CA cert for the server stored someplace else than in the
45 * default bundle, then the CURLOPT_CAPATH option might come handy for
46 * you.
47 */
48 curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
49 #endif
50
51 #ifdef SKIP_HOSTNAME_VERFICATION
52 /*
53 * If the site you're connecting to uses a different host name that what
54 * they have mentioned in their server certificate's commonName (or
55 * subjectAltName) fields, libcurl will refuse to connect. You can skip
56 * this check, but this will make the connection less secure.
57 */
58 curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
59 #endif
60
61 res = curl_easy_perform(curl);
62
63 /* always cleanup */
64 curl_easy_cleanup(curl);
65 }
66 return 0;
67 }
0 /***************************************************************************
1 * _ _ ____ _
2 * Project ___| | | | _ \| |
3 * / __| | | | |_) | |
4 * | (__| |_| | _ <| |___
5 * \___|\___/|_| \_\_____|
6 *
7 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
8 *
9 * This software is licensed as described in the file COPYING, which
10 * you should have received as part of this distribution. The terms
11 * are also available at http://curl.haxx.se/docs/copyright.html.
12 *
13 * You may opt to use, copy, modify, merge, publish, distribute and/or sell
14 * copies of the Software, and permit persons to whom the Software is
15 * furnished to do so, under the terms of the COPYING file.
16 *
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
19 *
20 ***************************************************************************/
21 #include <stdio.h>
22 #include <curl/curl.h>
23
24 int main(void)
25 {
26 CURL *curl;
27 CURLcode res;
28
29 curl = curl_easy_init();
30 if(curl) {
31 /* Set username and password */
32 curl_easy_setopt(curl, CURLOPT_USERPWD, "user:password");
33
34 /* This will list every message of the given mailbox */
35 curl_easy_setopt(curl, CURLOPT_URL, "pop3s://user@pop.example.com/");
36
37 #ifdef SKIP_PEER_VERIFICATION
38 /*
39 * If you want to connect to a site who isn't using a certificate that is
40 * signed by one of the certs in the CA bundle you have, you can skip the
41 * verification of the server's certificate. This makes the connection
42 * A LOT LESS SECURE.
43 *
44 * If you have a CA cert for the server stored someplace else than in the
45 * default bundle, then the CURLOPT_CAPATH option might come handy for
46 * you.
47 */
48 curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
49 #endif
50
51 #ifdef SKIP_HOSTNAME_VERFICATION
52 /*
53 * If the site you're connecting to uses a different host name that what
54 * they have mentioned in their server certificate's commonName (or
55 * subjectAltName) fields, libcurl will refuse to connect. You can skip
56 * this check, but this will make the connection less secure.
57 */
58 curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
59 #endif
60
61 res = curl_easy_perform(curl);
62
63 /* always cleanup */
64 curl_easy_cleanup(curl);
65 }
66 return 0;
67 }
2121 #include <stdio.h>
2222 #include <curl/curl.h>
2323
24 #define STOP_DOWNLOAD_AFTER_THIS_MANY_BYTES 6000
24 #define STOP_DOWNLOAD_AFTER_THIS_MANY_BYTES 6000
25 #define MINIMAL_PROGRESS_FUNCTIONALITY_INTERVAL 3
26
27 struct myprogress {
28 double lastruntime;
29 CURL *curl;
30 };
2531
2632 static int progress(void *p,
2733 double dltotal, double dlnow,
2834 double ultotal, double ulnow)
2935 {
36 struct myprogress *myp = (struct myprogress *)p;
37 CURL *curl = myp->curl;
38 double curtime = 0;
39
40 curl_easy_getinfo(curl, CURLINFO_TOTAL_TIME, &curtime);
41
42 /* under certain circumstances it may be desirable for certain functionality
43 to only run every N seconds, in order to do this the transaction time can
44 be used */
45 if((curtime - myp->lastruntime) >= MINIMAL_PROGRESS_FUNCTIONALITY_INTERVAL) {
46 myp->lastruntime = curtime;
47 fprintf(stderr, "TOTAL TIME: %f \r\n", curtime);
48 }
49
3050 fprintf(stderr, "UP: %g of %g DOWN: %g of %g\r\n",
3151 ulnow, ultotal, dlnow, dltotal);
3252
3959 {
4060 CURL *curl;
4161 CURLcode res=0;
62 struct myprogress prog;
4263
4364 curl = curl_easy_init();
4465 if(curl) {
66 prog.lastruntime = 0;
67 prog.curl = curl;
68
4569 curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/");
4670 curl_easy_setopt(curl, CURLOPT_PROGRESSFUNCTION, progress);
71 /* pass the struct pointer into the progress function */
72 curl_easy_setopt(curl, CURLOPT_PROGRESSDATA, &prog);
4773 curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 0L);
4874 res = curl_easy_perform(curl);
4975
0 /***************************************************************************
1 * _ _ ____ _
2 * Project ___| | | | _ \| |
3 * / __| | | | |_) | |
4 * | (__| |_| | _ <| |___
5 * \___|\___/|_| \_\_____|
6 *
7 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
8 *
9 * This software is licensed as described in the file COPYING, which
10 * you should have received as part of this distribution. The terms
11 * are also available at http://curl.haxx.se/docs/copyright.html.
12 *
13 * You may opt to use, copy, modify, merge, publish, distribute and/or sell
14 * copies of the Software, and permit persons to whom the Software is
15 * furnished to do so, under the terms of the COPYING file.
16 *
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
19 *
20 ***************************************************************************/
21 #include <stdio.h>
22 #include <stdlib.h>
23 #include <unistd.h>
24
25 #include <curl/curl.h>
26
27 static size_t write_data(void *ptr, size_t size, size_t nmemb, void *stream)
28 {
29 size_t written = fwrite(ptr, size, nmemb, (FILE *)stream);
30 return written;
31 }
32
33 int main(int argc, char *argv[])
34 {
35 CURL *curl_handle;
36 static const char *pagefilename = "page.out";
37 FILE *pagefile;
38
39 if(argc < 2 ) {
40 printf("Usage: %s <URL>\n", argv[0]);
41 return 1;
42 }
43
44 curl_global_init(CURL_GLOBAL_ALL);
45
46 /* init the curl session */
47 curl_handle = curl_easy_init();
48
49 /* set URL to get here */
50 curl_easy_setopt(curl_handle, CURLOPT_URL, argv[1]);
51
52 /* Switch on full protocol/debug output while testing */
53 curl_easy_setopt(curl_handle, CURLOPT_VERBOSE, 1L);
54
55 /* disable progress meter, set to 0L to enable and disable debug output */
56 curl_easy_setopt(curl_handle, CURLOPT_NOPROGRESS, 1L);
57
58 /* send all data to this function */
59 curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, write_data);
60
61 /* open the file */
62 pagefile = fopen(pagefilename, "wb");
63 if (pagefile) {
64
65 /* write the page body to this file handle. CURLOPT_FILE is also known as
66 CURLOPT_WRITEDATA*/
67 curl_easy_setopt(curl_handle, CURLOPT_FILE, pagefile);
68
69 /* get it! */
70 curl_easy_perform(curl_handle);
71
72 /* close the header file */
73 fclose(pagefile);
74 }
75
76 /* cleanup curl stuff */
77 curl_easy_cleanup(curl_handle);
78
79 return 0;
80 }
8989 # the most recent symbol
9090 my $newsym = $recent[0];
9191 # the most recent version
92 my $newver = $doc{$newsym};
92 my $newver = $doc{$newsym};
9393
9494 print "The scanned source uses these symbols introduced in $newver:\n";
9595
8181 CLEANFILES = $(HTMLPAGES) $(PDFPAGES)
8282
8383 EXTRA_DIST = $(man_MANS) $(HTMLPAGES) index.html $(PDFPAGES) libcurl.m4 ABI \
84 symbols-in-versions
84 symbols-in-versions symbols.pl
8585 MAN2HTML= roffit --mandir=. < $< >$@
8686
8787 SUFFIXES = .3 .html
6868 $(top_srcdir)/m4/curl-system.m4 $(top_srcdir)/m4/libtool.m4 \
6969 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
7070 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
71 $(top_srcdir)/m4/xc-translit.m4 $(top_srcdir)/acinclude.m4 \
71 $(top_srcdir)/m4/xc-translit.m4 \
72 $(top_srcdir)/m4/zz50-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \
7273 $(top_srcdir)/configure.ac
7374 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
7475 $(ACLOCAL_M4)
217218 USE_EMBEDDED_ARES_FALSE = @USE_EMBEDDED_ARES_FALSE@
218219 USE_EMBEDDED_ARES_TRUE = @USE_EMBEDDED_ARES_TRUE@
219220 USE_GNUTLS = @USE_GNUTLS@
221 USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
220222 USE_LIBRTMP = @USE_LIBRTMP@
221223 USE_LIBSSH2 = @USE_LIBSSH2@
222224 USE_MANUAL_FALSE = @USE_MANUAL_FALSE@
227229 USE_SSLEAY = @USE_SSLEAY@
228230 USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
229231 VERSION = @VERSION@
232 VERSIONED_FLAVOUR = @VERSIONED_FLAVOUR@
233 VERSIONED_SYMBOLS_FALSE = @VERSIONED_SYMBOLS_FALSE@
234 VERSIONED_SYMBOLS_TRUE = @VERSIONED_SYMBOLS_TRUE@
230235 VERSIONNUM = @VERSIONNUM@
231236 ac_ct_AR = @ac_ct_AR@
232237 ac_ct_CC = @ac_ct_CC@
335340
336341 CLEANFILES = $(HTMLPAGES) $(PDFPAGES)
337342 EXTRA_DIST = $(man_MANS) $(HTMLPAGES) index.html $(PDFPAGES) libcurl.m4 ABI \
338 symbols-in-versions
343 symbols-in-versions symbols.pl
339344
340345 MAN2HTML = roffit --mandir=. < $< >$@
341346 SUFFIXES = .3 .html
44 .\" * | (__| |_| | _ <| |___
55 .\" * \___|\___/|_| \_\_____|
66 .\" *
7 .\" * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
7 .\" * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
88 .\" *
99 .\" * This software is licensed as described in the file COPYING, which
1010 .\" * you should have received as part of this distribution. The terms
293293 Function pointer that should match the \fIcurl_opensocket_callback\fP
294294 prototype found in \fI<curl/curl.h>\fP. This function gets called by libcurl
295295 instead of the \fIsocket(2)\fP call. The callback's \fIpurpose\fP argument
296 identifies the exact purpose for this particular socket, and currently only
297 one value is supported: \fICURLSOCKTYPE_IPCXN\fP for the primary connection
298 (meaning the control connection in the FTP case). Future versions of libcurl
299 may support more purposes. It passes the resolved peer address as a
296 identifies the exact purpose for this particular socket:
297 \fICURLSOCKTYPE_IPCXN\fP is for IP based connections. Future versions of
298 libcurl may support more purposes. It passes the resolved peer address as a
300299 \fIaddress\fP argument so the callback can modify the address or refuse to
301300 connect at all. The callback function should return the socket or
302301 \fICURL_SOCKET_BAD\fP in case no connection should be established or any error
594593
595594 scheme://host:port/path
596595
597 For a greater explanation of the format please see RFC 2396
598 (http://curl.haxx.se/rfc/rfc2396.txt).
596 For a greater explanation of the format please see RFC 3986
597 (http://curl.haxx.se/rfc/rfc3986.txt).
599598
600599 If the given URL lacks the scheme, or protocol, part ("http://" or "ftp://"
601600 etc), libcurl will attempt to resolve which protocol to use based on the
843842 Pass a char * as parameter. This sets the interface name to use as outgoing
844843 network interface. The name can be an interface name, an IP address, or a host
845844 name.
845
846 Starting with 7.24.0: If the parameter starts with "if!" then it is treated as
847 only as interface name and no attempt will ever be named to do treat it as an
848 IP address or to do name resolution on it. If the parameter starts with
849 \&"host!" it is treated as either an IP address or a hostname. Hostnames are
850 resolved synchronously. Using the if! format is highly recommended when using
851 the multi interfaces to avoid allowing the code to block. If "if!" is
852 specified but the parameter does not match an existing interface,
853 CURLE_INTERFACE_FAILED is returned.
846854 .IP CURLOPT_LOCALPORT
847855 Pass a long. This sets the local port number of the socket used for
848856 connection. This can be used in combination with \fICURLOPT_INTERFACE\fP and
13361344 multiple cookies in one string like this: "name1=content1; name2=content2;"
13371345 etc.
13381346
1339 This option sets the cookie header explictly in the outgoing request(s). If
1347 This option sets the cookie header explicitly in the outgoing request(s). If
13401348 multiple requests are done due to authentication, followed redirections or
13411349 similar, they will all get this cookie passed on.
13421350
14841492 strings. Use \fIcurl_slist_append(3)\fP to append strings (commands) to the
14851493 list, and clear the entire list afterwards with
14861494 \fIcurl_slist_free_all(3)\fP. Disable this operation again by setting a NULL
1487 to this option. When speaking to a FTP server, prefix the command with an
1488 asterisk (*) to make libcurl continue even if the command fails as by default
1489 libcurl will stop at first failure.
1495 to this option. When speaking to a FTP (or SFTP since 7.24.0) server, prefix
1496 the command with an asterisk (*) to make libcurl continue even if the command
1497 fails as by default libcurl will stop at first failure.
14901498
14911499 The set of valid FTP commands depends on the server (see RFC959 for a list of
14921500 mandatory commands).
18411849 For uploading using SCP, this option or \fICURLOPT_INFILESIZE_LARGE\fP is
18421850 mandatory.
18431851
1852 When sending emails using SMTP, this command can be used to specify the
1853 optional SIZE parameter for the MAIL FROM command. (Added in 7.23.0)
1854
18441855 This option does not limit how much data libcurl will actually send, as that
18451856 is controlled entirely by what the read callback returns.
18461857 .IP CURLOPT_INFILESIZE_LARGE
19701981 .IP CURLOPT_CONNECTTIMEOUT
19711982 Pass a long. It should contain the maximum time in seconds that you allow the
19721983 connection to the server to take. This only limits the connection phase, once
1973 it has connected, this option is of no more use. Set to zero to disable
1974 connection timeout (it will then only timeout on the system's internal
1975 timeouts). See also the \fICURLOPT_TIMEOUT\fP option.
1984 it has connected, this option is of no more use. Set to zero to switch to the
1985 default built-in connection timeout - 300 seconds. See also the
1986 \fICURLOPT_TIMEOUT\fP option.
19761987
19771988 In unix-like systems, this might cause signals to be used unless
19781989 \fICURLOPT_NOSIGNAL\fP is set.
20442055 and port number must exactly match what was already added previously.
20452056
20462057 (Added in 7.21.3)
2058 .IP CURLOPT_DNS_SERVERS
2059 Set the list of DNS servers to be used instead of the system default.
2060 The format of the dns servers option is:
2061
2062 host[:port][,host[:port]]...
2063
2064 For example:
2065
2066 192.168.1.100,192.168.1.101,3.4.5.6
2067
2068 This option requires that libcurl was built with a resolver backend that
2069 supports this operation. The c-ares backend is the only such one.
2070
2071 (Added in 7.24.0)
2072 .IP CURLOPT_ACCEPTTIMEOUT_MS
2073 Pass a long telling libcurl the maximum number of milliseconds to wait for a
2074 server to connect back to libcurl when an active FTP connection is used. If no
2075 timeout is set, the internal default of 60000 will be used. (Added in 7.24.0)
20472076 .SH SSL and SECURITY OPTIONS
20482077 .IP CURLOPT_SSLCERT
20492078 Pass a pointer to a zero terminated string as parameter. The string should be
133133 <p class="level0"><a name="CURLOPTSOCKOPTDATA"></a><span class="nroffip">CURLOPT_SOCKOPTDATA</span>
134134 <p class="level1">Pass a pointer that will be untouched by libcurl and passed as the first argument in the sockopt callback set with <a class="emphasis" href="#CURLOPTSOCKOPTFUNCTION">CURLOPT_SOCKOPTFUNCTION</a>. (Option added in 7.15.6.)
135135 <p class="level0"><a name="CURLOPTOPENSOCKETFUNCTION"></a><span class="nroffip">CURLOPT_OPENSOCKETFUNCTION</span>
136 <p class="level1">Function pointer that should match the <span Class="emphasis">curl_opensocket_callback</span> prototype found in <span Class="emphasis">&lt;curl/curl.h&gt;</span>. This function gets called by libcurl instead of the <span Class="emphasis">socket(2)</span> call. The callback's <span Class="emphasis">purpose</span> argument identifies the exact purpose for this particular socket, and currently only one value is supported: <span Class="emphasis">CURLSOCKTYPE_IPCXN</span> for the primary connection (meaning the control connection in the FTP case). Future versions of libcurl may support more purposes. It passes the resolved peer address as a <span Class="emphasis">address</span> argument so the callback can modify the address or refuse to connect at all. The callback function should return the socket or <span Class="emphasis">CURL_SOCKET_BAD</span> in case no connection should be established or any error detected. Any additional <span Class="emphasis">setsockopt(2)</span> calls can be done on the socket at the user's discretion. <span Class="emphasis">CURL_SOCKET_BAD</span> return value from the callback function will signal an unrecoverable error to the library and it will return <span Class="emphasis">CURLE_COULDNT_CONNECT</span>. This return code can be used for IP address blacklisting. The default behavior is:
136 <p class="level1">Function pointer that should match the <span Class="emphasis">curl_opensocket_callback</span> prototype found in <span Class="emphasis">&lt;curl/curl.h&gt;</span>. This function gets called by libcurl instead of the <span Class="emphasis">socket(2)</span> call. The callback's <span Class="emphasis">purpose</span> argument identifies the exact purpose for this particular socket: <span Class="emphasis">CURLSOCKTYPE_IPCXN</span> is for IP based connections. Future versions of libcurl may support more purposes. It passes the resolved peer address as a <span Class="emphasis">address</span> argument so the callback can modify the address or refuse to connect at all. The callback function should return the socket or <span Class="emphasis">CURL_SOCKET_BAD</span> in case no connection should be established or any error detected. Any additional <span Class="emphasis">setsockopt(2)</span> calls can be done on the socket at the user's discretion. <span Class="emphasis">CURL_SOCKET_BAD</span> return value from the callback function will signal an unrecoverable error to the library and it will return <span Class="emphasis">CURLE_COULDNT_CONNECT</span>. This return code can be used for IP address blacklisting. The default behavior is:
137137 <p class="level1">&nbsp; return socket(addr-&gt;family, addr-&gt;socktype, addr-&gt;protocol);
138138 <p class="level1">(Option added in 7.17.1.)
139139 <p class="level0"><a name="CURLOPTOPENSOCKETDATA"></a><span class="nroffip">CURLOPT_OPENSOCKETDATA</span>
233233 <p class="level0"><a name="CURLOPTURL"></a><span class="nroffip">CURLOPT_URL</span>
234234 <p class="level1">The actual URL to deal with. The parameter should be a char * to a zero terminated string which must be URL-encoded in the following format:
235235 <p class="level1">scheme://host:port/path
236 <p class="level1">For a greater explanation of the format please see <a href="http://www.ietf.org/rfc/rfc2396.txt">RFC 2396</a> (<a href="http://curl.haxx.se/rfc/rfc2396.txt">http://curl.haxx.se/rfc/rfc2396.txt</a>).
236 <p class="level1">For a greater explanation of the format please see <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a> (<a href="http://curl.haxx.se/rfc/rfc3986.txt">http://curl.haxx.se/rfc/rfc3986.txt</a>).
237237 <p class="level1">If the given URL lacks the scheme, or protocol, part ("http://" or "ftp://" etc), libcurl will attempt to resolve which protocol to use based on the given host mame. If the protocol is not supported, libcurl will return (<span Class="emphasis">CURLE_UNSUPPORTED_PROTOCOL</span>) when you call <a class="emphasis" href="./curl_easy_perform.html">curl_easy_perform(3)</a> or <a class="emphasis" href="./curl_multi_perform.html">curl_multi_perform(3)</a>. Use <a class="emphasis" href="./curl_version_info.html">curl_version_info(3)</a> for detailed information on which protocols are supported.
238238 <p class="level1">The host part of the URL contains the address of the server that you want to connect to. This can be the fully qualified domain name of the server, the local network name of the machine on your network or the IP address of the server or machine represented by either an IPv4 or IPv6 address. For example:
239239 <p class="level1"><a href="http://www.example.com/">http://www.example.com/</a>
305305 <p class="level1">Pass a long set to 1 to enable or 0 to disable. As part of the gssapi negotiation a protection mode is negotiated. The rfc1961 says in section 4.3/4.4 it should be protected, but the NEC reference implementation does not. If enabled, this option allows the unprotected exchange of the protection mode negotiation. (Added in 7.19.4).
306306 <p class="level0"><a name="CURLOPTINTERFACE"></a><span class="nroffip">CURLOPT_INTERFACE</span>
307307 <p class="level1">Pass a char * as parameter. This sets the interface name to use as outgoing network interface. The name can be an interface name, an IP address, or a host name.
308 <p class="level1">Starting with 7.24.0: If the parameter starts with "if!" then it is treated as only as interface name and no attempt will ever be named to do treat it as an IP address or to do name resolution on it. If the parameter starts with "host!" it is treated as either an IP address or a hostname. Hostnames are resolved synchronously. Using the if! format is highly recommended when using the multi interfaces to avoid allowing the code to block. If "if!" is specified but the parameter does not match an existing interface, CURLE_INTERFACE_FAILED is returned.
308309 <p class="level0"><a name="CURLOPTLOCALPORT"></a><span class="nroffip">CURLOPT_LOCALPORT</span>
309310 <p class="level1">Pass a long. This sets the local port number of the socket used for connection. This can be used in combination with <a class="emphasis" href="#CURLOPTINTERFACE">CURLOPT_INTERFACE</a> and you are recommended to use <a class="emphasis" href="#CURLOPTLOCALPORTRANGE">CURLOPT_LOCALPORTRANGE</a> as well when this is set. Valid port numbers are 1 - 65535. (Added in 7.15.2)
310311 <p class="level0"><a name="CURLOPTLOCALPORTRANGE"></a><span class="nroffip">CURLOPT_LOCALPORTRANGE</span>
470471 <p class="level0"><a name="CURLOPTCOOKIE"></a><span class="nroffip">CURLOPT_COOKIE</span>
471472 <p class="level1">Pass a pointer to a zero terminated string as parameter. It will be used to set a cookie in the http request. The format of the string should be NAME=CONTENTS, where NAME is the cookie name and CONTENTS is what the cookie should contain.
472473 <p class="level1">If you need to set multiple cookies, you need to set them all using a single option and thus you need to concatenate them all in one single string. Set multiple cookies in one string like this: "name1=content1; name2=content2;" etc.
473 <p class="level1">This option sets the cookie header explictly in the outgoing request(s). If multiple requests are done due to authentication, followed redirections or similar, they will all get this cookie passed on.
474 <p class="level1">This option sets the cookie header explicitly in the outgoing request(s). If multiple requests are done due to authentication, followed redirections or similar, they will all get this cookie passed on.
474475 <p class="level1">Using this option multiple times will only make the latest string override the previous ones.
475476 <p class="level0"><a name="CURLOPTCOOKIEFILE"></a><span class="nroffip">CURLOPT_COOKIEFILE</span>
476477 <p class="level1">Pass a pointer to a zero terminated string as parameter. It should contain the name of your file holding cookie data to read. The cookie data may be in Netscape / Mozilla cookie data format or just regular HTTP-style headers dumped to a file.
524525 <p class="level1">
525526 <p class="level1">You disable PORT again and go back to using the passive version by setting this option to NULL.
526527 <p class="level0"><a name="CURLOPTQUOTE"></a><span class="nroffip">CURLOPT_QUOTE</span>
527 <p class="level1">Pass a pointer to a linked list of FTP or SFTP commands to pass to the server prior to your FTP request. This will be done before any other commands are issued (even before the CWD command for FTP). The linked list should be a fully valid list of 'struct curl_slist' structs properly filled in with text strings. Use <a class="emphasis" href="./curl_slist_append.html">curl_slist_append(3)</a> to append strings (commands) to the list, and clear the entire list afterwards with <a class="emphasis" href="./curl_slist_free_all.html">curl_slist_free_all(3)</a>. Disable this operation again by setting a NULL to this option. When speaking to a FTP server, prefix the command with an asterisk (*) to make libcurl continue even if the command fails as by default libcurl will stop at first failure.
528 <p class="level1">Pass a pointer to a linked list of FTP or SFTP commands to pass to the server prior to your FTP request. This will be done before any other commands are issued (even before the CWD command for FTP). The linked list should be a fully valid list of 'struct curl_slist' structs properly filled in with text strings. Use <a class="emphasis" href="./curl_slist_append.html">curl_slist_append(3)</a> to append strings (commands) to the list, and clear the entire list afterwards with <a class="emphasis" href="./curl_slist_free_all.html">curl_slist_free_all(3)</a>. Disable this operation again by setting a NULL to this option. When speaking to a FTP (or SFTP since 7.24.0) server, prefix the command with an asterisk (*) to make libcurl continue even if the command fails as by default libcurl will stop at first failure.
528529 <p class="level1">The set of valid FTP commands depends on the server (see <a href="http://www.ietf.org/rfc/rfc959.txt">RFC 959</a> for a list of mandatory commands).
529530 <p class="level1">The valid SFTP commands are: chgrp, chmod, chown, ln, mkdir, pwd, rename, rm, rmdir, symlink (see <span Class="manpage">curl (1))</span> (SFTP support added in 7.16.3)
530531 <p class="level0"><a name="CURLOPTPOSTQUOTE"></a><span class="nroffip">CURLOPT_POSTQUOTE</span>
663664 <p class="level0"><a name="CURLOPTINFILESIZE"></a><span class="nroffip">CURLOPT_INFILESIZE</span>
664665 <p class="level1">When uploading a file to a remote site, this option should be used to tell libcurl what the expected size of the infile is. This value should be passed as a long. See also <a class="emphasis" href="#CURLOPTINFILESIZELARGE">CURLOPT_INFILESIZE_LARGE</a>.
665666 <p class="level1">For uploading using SCP, this option or <a class="emphasis" href="#CURLOPTINFILESIZELARGE">CURLOPT_INFILESIZE_LARGE</a> is mandatory.
667 <p class="level1">When sending emails using SMTP, this command can be used to specify the optional SIZE parameter for the MAIL FROM command. (Added in 7.23.0)
666668 <p class="level1">This option does not limit how much data libcurl will actually send, as that is controlled entirely by what the read callback returns.
667669 <p class="level0"><a name="CURLOPTINFILESIZELARGE"></a><span class="nroffip">CURLOPT_INFILESIZE_LARGE</span>
668670 <p class="level1">When uploading a file to a remote site, this option should be used to tell libcurl what the expected size of the infile is. This value should be passed as a curl_off_t. (Added in 7.11.0)
709711 <p class="level0"><a name="CURLOPTFORBIDREUSE"></a><span class="nroffip">CURLOPT_FORBID_REUSE</span>
710712 <p class="level1">Pass a long. Set to 1 to make the next transfer explicitly close the connection when done. Normally, libcurl keeps all connections alive when done with one transfer in case a succeeding one follows that can re-use them. This option should be used with caution and only if you understand what it does. Set to 0 to have libcurl keep the connection open for possible later re-use (default behavior).
711713 <p class="level0"><a name="CURLOPTCONNECTTIMEOUT"></a><span class="nroffip">CURLOPT_CONNECTTIMEOUT</span>
712 <p class="level1">Pass a long. It should contain the maximum time in seconds that you allow the connection to the server to take. This only limits the connection phase, once it has connected, this option is of no more use. Set to zero to disable connection timeout (it will then only timeout on the system's internal timeouts). See also the <a class="emphasis" href="#CURLOPTTIMEOUT">CURLOPT_TIMEOUT</a> option.
714 <p class="level1">Pass a long. It should contain the maximum time in seconds that you allow the connection to the server to take. This only limits the connection phase, once it has connected, this option is of no more use. Set to zero to switch to the default built-in connection timeout - 300 seconds. See also the <a class="emphasis" href="#CURLOPTTIMEOUT">CURLOPT_TIMEOUT</a> option.
713715 <p class="level1">In unix-like systems, this might cause signals to be used unless <a class="emphasis" href="#CURLOPTNOSIGNAL">CURLOPT_NOSIGNAL</a> is set.
714716 <p class="level0"><a name="CURLOPTCONNECTTIMEOUTMS"></a><span class="nroffip">CURLOPT_CONNECTTIMEOUT_MS</span>
715717 <p class="level1">Like <a class="emphasis" href="#CURLOPTCONNECTTIMEOUT">CURLOPT_CONNECTTIMEOUT</a> but takes the number of milliseconds instead. If libcurl is built to use the standard system name resolver, that portion of the connect will still use full-second resolution for timeouts with a minimum timeout allowed of one second. (Added in 7.16.2)
745747 <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.
746748 <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.
747749 <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.
748 <p class="level1">(Added in 7.21.3) <a name="SSL"></a><h2 class="nroffsh">SSL and SECURITY OPTIONS</h2>
750 <p class="level1">(Added in 7.21.3)
751 <p class="level0"><a name="CURLOPTDNSSERVERS"></a><span class="nroffip">CURLOPT_DNS_SERVERS</span>
752 <p class="level1">Set the list of DNS servers to be used instead of the system default. The format of the dns servers option is:
753 <p class="level1">host[:port][,host[:port]]...
754 <p class="level1">For example:
755 <p class="level1">192.168.1.100,192.168.1.101,3.4.5.6
756 <p class="level1">This option requires that libcurl was built with a resolver backend that supports this operation. The c-ares backend is the only such one.
757 <p class="level1">(Added in 7.24.0)
758 <p class="level0"><a name="CURLOPTACCEPTTIMEOUTMS"></a><span class="nroffip">CURLOPT_ACCEPTTIMEOUT_MS</span>
759 <p class="level1">Pass a long telling libcurl the maximum number of milliseconds to wait for a server to connect back to libcurl when an active FTP connection is used. If no timeout is set, the internal default of 60000 will be used. (Added in 7.24.0) <a name="SSL"></a><h2 class="nroffsh">SSL and SECURITY OPTIONS</h2>
749760 <p class="level0">
750761 <p class="level0"><a name="CURLOPTSSLCERT"></a><span class="nroffip">CURLOPT_SSLCERT</span>
751762 <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>.
44 .\" * | (__| |_| | _ <| |___
55 .\" * \___|\___/|_| \_\_____|
66 .\" *
7 .\" * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
7 .\" * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
88 .\" *
99 .\" * This software is licensed as described in the file COPYING, which
1010 .\" * you should have received as part of this distribution. The terms
2222 .SH NAME
2323 curl_easy_strerror - return string describing error code
2424 .SH SYNOPSIS
25 .nf
26 .B #include <curl/curl.h>
27 .BI "const char *curl_easy_strerror(CURLcode " errornum ");"
25 #include <curl/curl.h>
26
27 const char *curl_easy_strerror(CURLcode errornum);
2828 .SH DESCRIPTION
2929 The curl_easy_strerror() function returns a string describing the CURLcode
3030 error code passed in the argument \fIerrornum\fP.
4646
4747 <p class="level0"><a name="NAME"></a><h2 class="nroffsh">NAME</h2>
4848 <p class="level0">curl_easy_strerror - return string describing error code <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
49 <p class="level0">
50 <p class="level0"><span Class="bold">#include &lt;curl/curl.h&gt;</span> <span Class="bold">const char *curl_easy_strerror(CURLcode errornum );</span> <a name="DESCRIPTION"></a><h2 class="nroffsh">DESCRIPTION</h2>
49 <p class="level0">#include &lt;curl/curl.h&gt;
50 <p class="level0">const char *curl_easy_strerror(CURLcode errornum); <a name="DESCRIPTION"></a><h2 class="nroffsh">DESCRIPTION</h2>
5151 <p class="level0">The curl_easy_strerror() function returns a string describing the CURLcode error code passed in the argument <span Class="emphasis">errornum</span>. <a name="AVAILABILITY"></a><h2 class="nroffsh">AVAILABILITY</h2>
5252 <p class="level0">This function was added in libcurl 7.12.0 <a name="RETURN"></a><h2 class="nroffsh">RETURN VALUE</h2>
5353 <p class="level0">A pointer to a zero terminated string. <a name="SEE"></a><h2 class="nroffsh">SEE ALSO</h2>
7373 <?adobe-xap-filters esc="CRLF"?>
7474 <x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
7575 <rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
76 <rdf:Description rdf:about='fd82969f-47dc-11ec-0000-d1a62c85fb4' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.04'/>
77 <rdf:Description rdf:about='fd82969f-47dc-11ec-0000-d1a62c85fb4' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2011-11-15T20:31:40+01:00</xmp:ModifyDate>
78 <xmp:CreateDate>2011-11-15T20:31:40+01:00</xmp:CreateDate>
76 <rdf:Description rdf:about='4e22f4e3-7e86-11ec-0000-d1a62c85fb4' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.04'/>
77 <rdf:Description rdf:about='4e22f4e3-7e86-11ec-0000-d1a62c85fb4' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2012-01-24T09:59:43+01:00</xmp:ModifyDate>
78 <xmp:CreateDate>2012-01-24T09:59:43+01:00</xmp:CreateDate>
7979 <xmp:CreatorTool>groff version 1.21</xmp:CreatorTool></rdf:Description>
80 <rdf:Description rdf:about='fd82969f-47dc-11ec-0000-d1a62c85fb4' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:fd82969f-47dc-11ec-0000-d1a62c85fb42011-11-15T20:31:40+01:00'/>
81 <rdf:Description rdf:about='fd82969f-47dc-11ec-0000-d1a62c85fb4' 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>
80 <rdf:Description rdf:about='4e22f4e3-7e86-11ec-0000-d1a62c85fb4' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:4e22f4e3-7e86-11ec-0000-d1a62c85fb42012-01-24T09:59:43+01:00'/>
81 <rdf:Description rdf:about='4e22f4e3-7e86-11ec-0000-d1a62c85fb4' 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>
8282 </rdf:RDF>
8383 </x:xmpmeta>
8484
8888 endobj
8989 2 0 obj
9090 <</Producer(GPL Ghostscript 9.04)
91 /CreationDate(D:20111115203140+01'00')
92 /ModDate(D:20111115203140+01'00')
91 /CreationDate(D:20120124095943+01'00')
92 /ModDate(D:20120124095943+01'00')
9393 /Creator(groff version 1.21)>>endobj
9494 xref
9595 0 15
110110 0000001739 00000 n
111111 trailer
112112 << /Size 15 /Root 1 0 R /Info 2 0 R
113 /ID [<4541E84672E2310914D13C9807DF9F78><4541E84672E2310914D13C9807DF9F78>]
113 /ID [<BE273B6295A678AED34F25D6A23E9794><BE273B6295A678AED34F25D6A23E9794>]
114114 >>
115115 startxref
116116 3312
Binary diff not shown
7676 <?adobe-xap-filters esc="CRLF"?>
7777 <x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
7878 <rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
79 <rdf:Description rdf:about='04110e1f-47dd-11ec-0000-cb573b64c62' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.04'/>
80 <rdf:Description rdf:about='04110e1f-47dd-11ec-0000-cb573b64c62' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2011-11-15T20:31:51+01:00</xmp:ModifyDate>
81 <xmp:CreateDate>2011-11-15T20:31:51+01:00</xmp:CreateDate>
79 <rdf:Description rdf:about='5418d5e3-7e86-11ec-0000-cb573b64c62' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.04'/>
80 <rdf:Description rdf:about='5418d5e3-7e86-11ec-0000-cb573b64c62' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2012-01-24T09:59:53+01:00</xmp:ModifyDate>
81 <xmp:CreateDate>2012-01-24T09:59:53+01:00</xmp:CreateDate>
8282 <xmp:CreatorTool>groff version 1.21</xmp:CreatorTool></rdf:Description>
83 <rdf:Description rdf:about='04110e1f-47dd-11ec-0000-cb573b64c62' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:04110e1f-47dd-11ec-0000-cb573b64c622011-11-15T20:31:51+01:00'/>
84 <rdf:Description rdf:about='04110e1f-47dd-11ec-0000-cb573b64c62' 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>
83 <rdf:Description rdf:about='5418d5e3-7e86-11ec-0000-cb573b64c62' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:5418d5e3-7e86-11ec-0000-cb573b64c622012-01-24T09:59:53+01:00'/>
84 <rdf:Description rdf:about='5418d5e3-7e86-11ec-0000-cb573b64c62' 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>
8585 </rdf:RDF>
8686 </x:xmpmeta>
8787
9191 endobj
9292 2 0 obj
9393 <</Producer(GPL Ghostscript 9.04)
94 /CreationDate(D:20111115203151+01'00')
95 /ModDate(D:20111115203151+01'00')
94 /CreationDate(D:20120124095953+01'00')
95 /ModDate(D:20120124095953+01'00')
9696 /Creator(groff version 1.21)>>endobj
9797 xref
9898 0 15
113113 0000002565 00000 n
114114 trailer
115115 << /Size 15 /Root 1 0 R /Info 2 0 R
116 /ID [<6A88134D3F04061311BD653778F1016F><6A88134D3F04061311BD653778F1016F>]
116 /ID [<FD404807172D713E29EEB8BC70F383C8><FD404807172D713E29EEB8BC70F383C8>]
117117 >>
118118 startxref
119119 4138
6565 <?adobe-xap-filters esc="CRLF"?>
6666 <x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
6767 <rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
68 <rdf:Description rdf:about='fe1b2d1f-47dc-11ec-0000-0d90648fa89' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.04'/>
69 <rdf:Description rdf:about='fe1b2d1f-47dc-11ec-0000-0d90648fa89' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2011-11-15T20:31:41+01:00</xmp:ModifyDate>
70 <xmp:CreateDate>2011-11-15T20:31:41+01:00</xmp:CreateDate>
68 <rdf:Description rdf:about='4ebb8b63-7e86-11ec-0000-0d90648fa89' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.04'/>
69 <rdf:Description rdf:about='4ebb8b63-7e86-11ec-0000-0d90648fa89' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2012-01-24T09:59:44+01:00</xmp:ModifyDate>
70 <xmp:CreateDate>2012-01-24T09:59:44+01:00</xmp:CreateDate>
7171 <xmp:CreatorTool>groff version 1.21</xmp:CreatorTool></rdf:Description>
72 <rdf:Description rdf:about='fe1b2d1f-47dc-11ec-0000-0d90648fa89' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:fe1b2d1f-47dc-11ec-0000-0d90648fa892011-11-15T20:31:41+01:00'/>
73 <rdf:Description rdf:about='fe1b2d1f-47dc-11ec-0000-0d90648fa89' 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>
72 <rdf:Description rdf:about='4ebb8b63-7e86-11ec-0000-0d90648fa89' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:4ebb8b63-7e86-11ec-0000-0d90648fa892012-01-24T09:59:44+01:00'/>
73 <rdf:Description rdf:about='4ebb8b63-7e86-11ec-0000-0d90648fa89' 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>
7474 </rdf:RDF>
7575 </x:xmpmeta>
7676
8080 endobj
8181 2 0 obj
8282 <</Producer(GPL Ghostscript 9.04)
83 /CreationDate(D:20111115203141+01'00')
84 /ModDate(D:20111115203141+01'00')
83 /CreationDate(D:20120124095944+01'00')
84 /ModDate(D:20120124095944+01'00')
8585 /Creator(groff version 1.21)>>endobj
8686 xref
8787 0 14
101101 0000001255 00000 n
102102 trailer
103103 << /Size 14 /Root 1 0 R /Info 2 0 R
104 /ID [<FECC46CF2DEF7DF132907F2F90B4B2E3><FECC46CF2DEF7DF132907F2F90B4B2E3>]
104 /ID [<CC442931B54393DF0524946753FE0DF7><CC442931B54393DF0524946753FE0DF7>]
105105 >>
106106 startxref
107107 2828
6565 .IP "CURLE_REMOTE_ACCESS_DENIED (9)"
6666 We were denied access to the resource given in the URL. For FTP, this occurs
6767 while trying to change to the remote directory.
68 .IP "CURLE_FTP_ACCEPT_FAILED (10)"
69 While waiting for the server to connect back when an active FTP session is
70 used, an error code was sent over the control connection or similar.
6871 .IP "CURLE_FTP_WEIRD_PASS_REPLY (11)"
6972 After having sent the FTP password to the server, libcurl expects a proper
7073 reply. This error code indicates that an unexpected code was returned.
74 .IP "CURLE_FTP_ACCEPT_TIMEOUT (12)"
75 During an active FTP session while waiting for the server to connect, the
76 \fICURLOPT_ACCEPTTIMOUT_MS\fP (or the internal default) timeout expired.
7177 .IP "CURLE_FTP_WEIRD_PASV_REPLY (13)"
7278 libcurl failed to get a sensible result back from the server as a response to
7379 either a PASV or a EPSV command. The server is flawed.
6969 <p class="level1">After connecting to a FTP server, libcurl expects to get a certain reply back. This error code implies that it got a strange or bad reply. The given remote server is probably not an OK FTP server.
7070 <p class="level0"><a name="CURLEREMOTEACCESSDENIED"></a><span class="nroffip">CURLE_REMOTE_ACCESS_DENIED (9)</span>
7171 <p class="level1">We were denied access to the resource given in the URL. For FTP, this occurs while trying to change to the remote directory.
72 <p class="level0"><a name="CURLEFTPACCEPTFAILED"></a><span class="nroffip">CURLE_FTP_ACCEPT_FAILED (10)</span>
73 <p class="level1">While waiting for the server to connect back when an active FTP session is used, an error code was sent over the control connection or similar.
7274 <p class="level0"><a name="CURLEFTPWEIRDPASSREPLY"></a><span class="nroffip">CURLE_FTP_WEIRD_PASS_REPLY (11)</span>
7375 <p class="level1">After having sent the FTP password to the server, libcurl expects a proper reply. This error code indicates that an unexpected code was returned.
76 <p class="level0"><a name="CURLEFTPACCEPTTIMEOUT"></a><span class="nroffip">CURLE_FTP_ACCEPT_TIMEOUT (12)</span>
77 <p class="level1">During an active FTP session while waiting for the server to connect, the <span Class="emphasis">CURLOPT_ACCEPTTIMOUT_MS</span> (or the internal default) timeout expired.
7478 <p class="level0"><a name="CURLEFTPWEIRDPASVREPLY"></a><span class="nroffip">CURLE_FTP_WEIRD_PASV_REPLY (13)</span>
7579 <p class="level1">libcurl failed to get a sensible result back from the server as a response to either a PASV or a EPSV command. The server is flawed.
7680 <p class="level0"><a name="CURLEFTPWEIRD227FORMAT"></a><span class="nroffip">CURLE_FTP_WEIRD_227_FORMAT (14)</span>
143143 .nf
144144 - Name resolves unless the c-ares or threaded-resolver backends are used
145145 - NSS SSL connections
146 - Active FTP connections
147146 - HTTP proxy CONNECT operations
148147 - SOCKS proxy handshakes
149148 - file:// transfers
7171 <p class="level0">The CURLMOPT_TIMERFUNCTION callback is called to set a timeout. When that timeout expires, your application should call the <a class="emphasis" href="./curl_multi_socket_action.html">curl_multi_socket_action(3)</a> function saying it was due to a timeout. <a name="BLOCKING"></a><h2 class="nroffsh">BLOCKING</h2>
7272 <p class="level0">A few areas in the code are still using blocking code, even when used from the multi interface. While we certainly want and intend for these to get fixed in the future, you should be aware of the following current restrictions:
7373 <p class="level0">
74 <p class="level0">&nbsp;- Name resolves unless the c-ares or threaded-resolver backends are used &nbsp;- NSS SSL connections &nbsp;- Active FTP connections &nbsp;- HTTP proxy CONNECT operations &nbsp;- SOCKS proxy handshakes &nbsp;- file:// transfers &nbsp;- TELNET transfers
74 <p class="level0">&nbsp;- Name resolves unless the c-ares or threaded-resolver backends are used &nbsp;- NSS SSL connections &nbsp;- HTTP proxy CONNECT operations &nbsp;- SOCKS proxy handshakes &nbsp;- file:// transfers &nbsp;- TELNET transfers
7575 <p class="level0"><p class="roffit">
7676 This HTML page was made with <a href="http://daniel.haxx.se/projects/roffit/">roffit</a>.
7777 </body></html>
816816 the name of the server we want to talk to. This includes the port number if
817817 anything but default.
818818
819 .IP "Pragma"
820 \&"no-cache". Tells a possible proxy to not grab a copy from the cache but to
821 fetch a fresh one.
822
823819 .IP "Accept"
824820 \&"*/*".
825821
13021298
13031299 \fIcurl_multi_perform(3)\fP is asynchronous. It will only execute as little as
13041300 possible and then return back control to your program. It is designed to never
1305 block. If it returns CURLM_CALL_MULTI_PERFORM you better call it again soon,
1306 as that is a signal that it still has local data to send or remote data to
1307 receive.
1301 block.
13081302
13091303 The best usage of this interface is when you do a select() on all possible
13101304 file descriptors or sockets to know when to call libcurl again. This also
13401334 [ seeding, passwords, keys, certificates, ENGINE, ca certs ]
13411335
13421336 .SH "Sharing Data Between Easy Handles"
1343
1344 [ fill in ]
1345
1337 You can share some data between easy handles when the easy interface is used,
1338 and some data is share automatically when you use the multi interface.
1339
1340 When you add easy handles to a multi handle, these easy handles will
1341 automatically share a lot of the data that otherwise would be kept on a
1342 per-easy handle basis when the easy interface is used.
1343
1344 The DNS cache is shared between handles within a multi handle, making
1345 subsequent name resolvings faster and the connection pool that is kept to
1346 better allow persistent connections and connection re-use is shared. If you're
1347 using the easy interface, you can still share these between specific easy
1348 handles by using the share interface, see \fIlibcurl-share(3)\fP.
1349
1350 Some things are never shared automatically, not within multi handles, like for
1351 example cookies so the only way to share that is with the share interface.
13461352 .SH "Footnotes"
13471353
13481354 .IP "[1]"
297297 <p class="level0"><a name="Host"></a><span class="nroffip">Host</span>
298298 <p class="level1">This header is required by HTTP 1.1 and even many 1.0 servers and should be the name of the server we want to talk to. This includes the port number if anything but default.
299299 <p class="level1">
300 <p class="level0"><a name="Pragma"></a><span class="nroffip">Pragma</span>
301 <p class="level1">"no-cache". Tells a possible proxy to not grab a copy from the cache but to fetch a fresh one.
302 <p class="level1">
303300 <p class="level0"><a name="Accept"></a><span class="nroffip">Accept</span>
304301 <p class="level1">"*/*".
305302 <p class="level1">
458455 <p class="level0">To use this interface, you are better off if you first understand the basics of how to use the easy interface. The multi interface is simply a way to make multiple transfers at the same time by adding up multiple easy handles into a "multi stack".
459456 <p class="level0">You create the easy handles you want and you set all the options just like you have been told above, and then you create a multi handle with <a class="emphasis" href="./curl_multi_init.html">curl_multi_init(3)</a> and add all those easy handles to that multi handle with <a class="emphasis" href="./curl_multi_add_handle.html">curl_multi_add_handle(3)</a>.
460457 <p class="level0">When you've added the handles you have for the moment (you can still add new ones at any time), you start the transfers by calling <a class="emphasis" href="./curl_multi_perform.html">curl_multi_perform(3)</a>.
461 <p class="level0"><a class="emphasis" href="./curl_multi_perform.html">curl_multi_perform(3)</a> is asynchronous. It will only execute as little as possible and then return back control to your program. It is designed to never block. If it returns CURLM_CALL_MULTI_PERFORM you better call it again soon, as that is a signal that it still has local data to send or remote data to receive.
458 <p class="level0"><a class="emphasis" href="./curl_multi_perform.html">curl_multi_perform(3)</a> is asynchronous. It will only execute as little as possible and then return back control to your program. It is designed to never block.
462459 <p class="level0">The best usage of this interface is when you do a select() on all possible file descriptors or sockets to know when to call libcurl again. This also makes it easy for you to wait and respond to actions on your own application's sockets/handles. You figure out what to select() for by using <a class="emphasis" href="./curl_multi_fdset.html">curl_multi_fdset(3)</a>, that fills in a set of fd_set variables for you with the particular file descriptors libcurl uses for the moment.
463460 <p class="level0">When you then call select(), it'll return when one of the file handles signal action and you then call <a class="emphasis" href="./curl_multi_perform.html">curl_multi_perform(3)</a> to allow libcurl to do what it wants to do. Take note that libcurl does also feature some time-out code so we advise you to never use very long timeouts on select() before you call <a class="emphasis" href="./curl_multi_perform.html">curl_multi_perform(3)</a>, which thus should be called unconditionally every now and then even if none of its file descriptors have signaled ready. Another precaution you should use: always call <a class="emphasis" href="./curl_multi_fdset.html">curl_multi_fdset(3)</a> immediately before the select() call since the current set of file descriptors may change when calling a curl function.
464461 <p class="level0">If you want to stop the transfer of one of the easy handles in the stack, you can use <a class="emphasis" href="./curl_multi_remove_handle.html">curl_multi_remove_handle(3)</a> to remove individual easy handles. Remember that easy handles should be <a class="emphasis" href="./curl_easy_cleanup.html">curl_easy_cleanup(3)</a>ed.
468465 <p class="level0">
469466 <p class="level0">&nbsp;[ seeding, passwords, keys, certificates, ENGINE, ca certs ]
470467 <p class="level0"><a name="Sharing"></a><h2 class="nroffsh">Sharing Data Between Easy Handles</h2>
471 <p class="level0">
472 <p class="level0">&nbsp;[ fill in ]
473 <p class="level0"><a name="Footnotes"></a><h2 class="nroffsh">Footnotes</h2>
468 <p class="level0">You can share some data between easy handles when the easy interface is used, and some data is share automatically when you use the multi interface.
469 <p class="level0">When you add easy handles to a multi handle, these easy handles will automatically share a lot of the data that otherwise would be kept on a per-easy handle basis when the easy interface is used.
470 <p class="level0">The DNS cache is shared between handles within a multi handle, making subsequent name resolvings faster and the connection pool that is kept to better allow persistent connections and connection re-use is shared. If you're using the easy interface, you can still share these between specific easy handles by using the share interface, see <span Class="emphasis">libcurl-share(3)</span>.
471 <p class="level0">Some things are never shared automatically, not within multi handles, like for example cookies so the only way to share that is with the share interface. <a name="Footnotes"></a><h2 class="nroffsh">Footnotes</h2>
474472 <p class="level0">
475473 <p class="level0">
476474 <p class="level0"><a name="1"></a><span class="nroffip">[1]</span>
145145 _libcurl_save_libs=$LIBS
146146 LIBS="$LIBCURL $LIBS"
147147
148 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <curl/curl.h>],[
148 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <curl/curl.h>]],[[
149149 /* Try and use a few common options to force a failure if we are
150150 missing symbols or can't link. */
151151 int x;
157157 x=CURLOPT_STDERR;
158158 x=CURLOPT_VERBOSE;
159159 if (x) ;
160 ])],libcurl_cv_lib_curl_usable=yes,libcurl_cv_lib_curl_usable=no)
160 ]])],libcurl_cv_lib_curl_usable=yes,libcurl_cv_lib_curl_usable=no)
161161
162162 CPPFLAGS=$_libcurl_save_cppflags
163163 LIBS=$_libcurl_save_libs
Binary diff not shown
4444 CURLE_FAILED_INIT 7.1
4545 CURLE_FILESIZE_EXCEEDED 7.10.8
4646 CURLE_FILE_COULDNT_READ_FILE 7.1
47 CURLE_FTP_ACCEPT_FAILED 7.24.0
48 CURLE_FTP_ACCEPT_TIMEOUT 7.24.0
4749 CURLE_FTP_ACCESS_DENIED 7.1
4850 CURLE_FTP_BAD_DOWNLOAD_RESUME 7.1 7.1
4951 CURLE_FTP_BAD_FILE_LIST 7.21.0
285287 CURLOPTTYPE_LONG 7.1
286288 CURLOPTTYPE_OBJECTPOINT 7.1
287289 CURLOPTTYPE_OFF_T 7.11.0
290 CURLOPT_ACCEPTTIMEOUT_MS 7.24.0
288291 CURLOPT_ACCEPT_ENCODING 7.21.6
289292 CURLOPT_ADDRESS_SCOPE 7.19.0
290293 CURLOPT_APPEND 7.17.0
319322 CURLOPT_DEBUGFUNCTION 7.9.6
320323 CURLOPT_DIRLISTONLY 7.17.0
321324 CURLOPT_DNS_CACHE_TIMEOUT 7.9.3
325 CURLOPT_DNS_SERVERS 7.24.0
322326 CURLOPT_DNS_USE_GLOBAL_CACHE 7.9.3 7.11.1
323327 CURLOPT_EGDSOCKET 7.7
324328 CURLOPT_ENCODING 7.10
0 #!/usr/bin/perl
1 #***************************************************************************
2 # _ _ ____ _
3 # Project ___| | | | _ \| |
4 # / __| | | | |_) | |
5 # | (__| |_| | _ <| |___
6 # \___|\___/|_| \_\_____|
7 #
8 # Copyright (C) 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
9 #
10 # This software is licensed as described in the file COPYING, which
11 # you should have received as part of this distribution. The terms
12 # are also available at http://curl.haxx.se/docs/copyright.html.
13 #
14 # You may opt to use, copy, modify, merge, publish, distribute and/or sell
15 # copies of the Software, and permit persons to whom the Software is
16 # furnished to do so, under the terms of the COPYING file.
17 #
18 # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
19 # KIND, either express or implied.
20 #
21 ###########################################################################
22 #
23 # Experience has shown that the symbols-in-versions file is very useful to
24 # applications that want to build with a wide range of libcurl versions.
25 # It is however easy to get it wrong and the source gets a bit messy with all
26 # the fixed numerical comparisions.
27 #
28 # The point of this script is to provide an easy-to-use macro for libcurl-
29 # using applications to do preprocessor checks for specific libcurl defines,
30 # and yet make the code clearly show what the macro is used for.
31 #
32 # Run this script and generate libcurl-symbols.h and then use that header in
33 # a fashion similar to:
34 #
35 # #include "libcurl-symbols.h"
36 #
37 # #if LIBCURL_HAS(CURLOPT_MUTE)
38 # has mute
39 # #else
40 # no mute
41 # #endif
42 #
43 #
44 open F, "<symbols-in-versions";
45
46 sub str2num {
47 my ($str)=@_;
48 if($str =~ /([0-9]*)\.([0-9]*)\.*([0-9]*)/) {
49 return sprintf("0x%06x", $1<<16 | $2 << 8 | $3);
50 }
51 }
52
53 print <<EOS
54
55 #include <curl/curl.h>
56
57 #define LIBCURL_HAS(x) \\
58 (defined(x ## _FIRST) && (x ## _FIRST <= LIBCURL_VERSION_NUM) && \\
59 (!defined(x ## _LAST) || ( x ## _LAST >= LIBCURL_VERSION_NUM)))
60
61 EOS
62 ;
63
64 while(<F>) {
65 if(/^(CURL[^ ]*)[ \t]*(.*)/) {
66 my ($sym, $vers)=($1, $2);
67
68 my $intr;
69 my $rm;
70 my $dep;
71
72 # is there removed info?
73 if($vers =~ /([\d.]+)[ \t-]+([\d.]+)[ \t]+([\d.]+)/) {
74 ($intr, $dep, $rm)=($1, $2, $3);
75 }
76 # is it a dep-only line?
77 elsif($vers =~ /([\d.]+)[ \t-]+([\d.]+)/) {
78 ($intr, $dep)=($1, $2);
79 }
80 else {
81 $intr = $vers;
82 }
83
84 my $inum = str2num($intr);
85
86 print <<EOS
87 #define ${sym}_FIRST $inum /* Added in $intr */
88 EOS
89 ;
90 my $irm = str2num($rm);
91 if($rm) {
92 print <<EOS
93 #define ${sym}_LAST $irm /* Last featured in $rm */
94 EOS
95 ;
96 }
97
98 }
99 }
4646 $(top_srcdir)/m4/curl-system.m4 $(top_srcdir)/m4/libtool.m4 \
4747 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
4848 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
49 $(top_srcdir)/m4/xc-translit.m4 $(top_srcdir)/acinclude.m4 \
49 $(top_srcdir)/m4/xc-translit.m4 \
50 $(top_srcdir)/m4/zz50-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \
5051 $(top_srcdir)/configure.ac
5152 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
5253 $(ACLOCAL_M4)
201202 USE_EMBEDDED_ARES_FALSE = @USE_EMBEDDED_ARES_FALSE@
202203 USE_EMBEDDED_ARES_TRUE = @USE_EMBEDDED_ARES_TRUE@
203204 USE_GNUTLS = @USE_GNUTLS@
205 USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
204206 USE_LIBRTMP = @USE_LIBRTMP@
205207 USE_LIBSSH2 = @USE_LIBSSH2@
206208 USE_MANUAL_FALSE = @USE_MANUAL_FALSE@
211213 USE_SSLEAY = @USE_SSLEAY@
212214 USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
213215 VERSION = @VERSION@
216 VERSIONED_FLAVOUR = @VERSIONED_FLAVOUR@
217 VERSIONED_SYMBOLS_FALSE = @VERSIONED_SYMBOLS_FALSE@
218 VERSIONED_SYMBOLS_TRUE = @VERSIONED_SYMBOLS_TRUE@
214219 VERSIONNUM = @VERSIONNUM@
215220 ac_ct_AR = @ac_ct_AR@
216221 ac_ct_CC = @ac_ct_CC@
4747 $(top_srcdir)/m4/curl-system.m4 $(top_srcdir)/m4/libtool.m4 \
4848 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
4949 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
50 $(top_srcdir)/m4/xc-translit.m4 $(top_srcdir)/acinclude.m4 \
50 $(top_srcdir)/m4/xc-translit.m4 \
51 $(top_srcdir)/m4/zz50-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \
5152 $(top_srcdir)/configure.ac
5253 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
5354 $(ACLOCAL_M4)
202203 USE_EMBEDDED_ARES_FALSE = @USE_EMBEDDED_ARES_FALSE@
203204 USE_EMBEDDED_ARES_TRUE = @USE_EMBEDDED_ARES_TRUE@
204205 USE_GNUTLS = @USE_GNUTLS@
206 USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
205207 USE_LIBRTMP = @USE_LIBRTMP@
206208 USE_LIBSSH2 = @USE_LIBSSH2@
207209 USE_MANUAL_FALSE = @USE_MANUAL_FALSE@
212214 USE_SSLEAY = @USE_SSLEAY@
213215 USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
214216 VERSION = @VERSION@
217 VERSIONED_FLAVOUR = @VERSIONED_FLAVOUR@
218 VERSIONED_SYMBOLS_FALSE = @VERSIONED_SYMBOLS_FALSE@
219 VERSIONED_SYMBOLS_TRUE = @VERSIONED_SYMBOLS_TRUE@
215220 VERSIONNUM = @VERSIONNUM@
216221 ac_ct_AR = @ac_ct_AR@
217222 ac_ct_CC = @ac_ct_CC@
66 * | (__| |_| | _ <| |___
77 * \___|\___/|_| \_\_____|
88 *
9 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
9 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
1010 *
1111 * This software is licensed as described in the file COPYING, which
1212 * you should have received as part of this distribution. The terms
6868 require it! */
6969 #if defined(_AIX) || defined(__NOVELL_LIBC__) || defined(__NetBSD__) || \
7070 defined(__minix) || defined(__SYMBIAN32__) || defined(__INTEGRITY) || \
71 defined(ANDROID) || \
71 defined(ANDROID) || defined(__ANDROID__) || \
7272 (defined(__FreeBSD_version) && (__FreeBSD_version < 800000))
7373 #include <sys/select.h>
7474 #endif
410410 CURLE_REMOTE_ACCESS_DENIED, /* 9 a service was denied by the server
411411 due to lack of access - when login fails
412412 this is not returned. */
413 CURLE_OBSOLETE10, /* 10 - NOT USED */
413 CURLE_FTP_ACCEPT_FAILED, /* 10 - [was obsoleted in April 2006 for
414 7.15.4, reused in Dec 2011 for 7.24.0]*/
414415 CURLE_FTP_WEIRD_PASS_REPLY, /* 11 */
415 CURLE_OBSOLETE12, /* 12 - NOT USED */
416 CURLE_FTP_ACCEPT_TIMEOUT, /* 12 - timeout occurred accepting server
417 [was obsoleted in August 2007 for 7.17.0,
418 reused in Dec 2011 for 7.24.0]*/
416419 CURLE_FTP_WEIRD_PASV_REPLY, /* 13 */
417420 CURLE_FTP_WEIRD_227_FORMAT, /* 14 */
418421 CURLE_FTP_CANT_GET_HOST, /* 15 */
510513 CURLE_RTSP_SESSION_ERROR, /* 86 - mismatch of RTSP Session Ids */
511514 CURLE_FTP_BAD_FILE_LIST, /* 87 - unable to parse FTP file list */
512515 CURLE_CHUNK_FAILED, /* 88 - chunk callback reported error */
513
514516 CURL_LAST /* never use! */
515517 } CURLcode;
516518
517519 #ifndef CURL_NO_OLDIES /* define this to test if your app builds with all
518520 the obsolete stuff removed! */
521
522 /* Previously obsoletes error codes re-used in 7.24.0 */
523 #define CURLE_OBSOLETE10 CURLE_FTP_ACCEPT_FAILED
524 #define CURLE_OBSOLETE12 CURLE_FTP_ACCEPT_TIMEOUT
519525
520526 /* compatibility with older names */
521527 #define CURLOPT_ENCODING CURLOPT_ACCEPT_ENCODING
14841490
14851491 /* allow GSSAPI credential delegation */
14861492 CINIT(GSSAPI_DELEGATION, LONG, 210),
1493
1494 /* Set the name servers to use for DNS resolution */
1495 CINIT(DNS_SERVERS, OBJECTPOINT, 211),
1496
1497 /* Time-out accept operations (currently for FTP only) after this amount
1498 of miliseconds. */
1499 CINIT(ACCEPTTIMEOUT_MS, LONG, 212),
14871500
14881501 CURLOPT_LASTENTRY /* the last unused */
14891502 } CURLoption;
2929
3030 /* This is the version number of the libcurl package from which this header
3131 file origins: */
32 #define LIBCURL_VERSION "7.23.1"
32 #define LIBCURL_VERSION "7.24.0"
3333
3434 /* The numeric version number is also available "in parts" by using these
3535 defines: */
3636 #define LIBCURL_VERSION_MAJOR 7
37 #define LIBCURL_VERSION_MINOR 23
38 #define LIBCURL_VERSION_PATCH 1
37 #define LIBCURL_VERSION_MINOR 24
38 #define LIBCURL_VERSION_PATCH 0
3939
4040 /* This is the numeric version of the libcurl version number, meant for easier
4141 parsing and comparions by programs. The LIBCURL_VERSION_NUM define will
5252 and it is always a greater number in a more recent release. It makes
5353 comparisons with greater than and less than work.
5454 */
55 #define LIBCURL_VERSION_NUM 0x071701
55 #define LIBCURL_VERSION_NUM 0x071800
5656
5757 /*
5858 * This is the date and time when the full source package was created. The
6363 *
6464 * "Mon Feb 12 11:35:33 UTC 2007"
6565 */
66 #define LIBCURL_TIMESTAMP "Thu Nov 17 17:17:45 UTC 2011"
66 #define LIBCURL_TIMESTAMP "Tue Jan 24 08:58:51 UTC 2012"
6767
6868 #endif /* __CURL_CURLVER_H */
115115 MIMPURE = -mimpure-text
116116 endif
117117
118 libcurl_la_LDFLAGS = $(UNDEF) $(VERSIONINFO) $(MIMPURE) $(LIBCURL_LIBS)
118 if VERSIONED_SYMBOLS
119 VERSIONED_SYMBOLS = -Wl,--version-script=libcurl.vers
120 endif
121
122 libcurl_la_LDFLAGS = $(UNDEF) $(VERSIONINFO) $(MIMPURE) $(VERSIONED_SYMBOLS) $(LIBCURL_LIBS)
119123
120124 # unit testing static library built only along with unit tests
121125 if BUILD_UNITTESTS
4545 build_triplet = @build@
4646 host_triplet = @host@
4747 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
48 $(srcdir)/Makefile.inc $(srcdir)/curl_config.h.in
48 $(srcdir)/Makefile.inc $(srcdir)/curl_config.h.in \
49 $(srcdir)/libcurl.vers.in
4950 subdir = lib
5051 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
5152 am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
5758 $(top_srcdir)/m4/curl-system.m4 $(top_srcdir)/m4/libtool.m4 \
5859 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
5960 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
60 $(top_srcdir)/m4/xc-translit.m4 $(top_srcdir)/acinclude.m4 \
61 $(top_srcdir)/m4/xc-translit.m4 \
62 $(top_srcdir)/m4/zz50-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \
6163 $(top_srcdir)/configure.ac
6264 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
6365 $(ACLOCAL_M4)
6466 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
6567 CONFIG_HEADER = curl_config.h $(top_builddir)/src/curl_config.h \
6668 $(top_builddir)/include/curl/curlbuild.h
67 CONFIG_CLEAN_FILES =
69 CONFIG_CLEAN_FILES = libcurl.vers
6870 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
6971 am__vpath_adj = case $$p in \
7072 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
300302 USE_EMBEDDED_ARES_FALSE = @USE_EMBEDDED_ARES_FALSE@
301303 USE_EMBEDDED_ARES_TRUE = @USE_EMBEDDED_ARES_TRUE@
302304 USE_GNUTLS = @USE_GNUTLS@
305 USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
303306 USE_LIBRTMP = @USE_LIBRTMP@
304307 USE_LIBSSH2 = @USE_LIBSSH2@
305308 USE_MANUAL_FALSE = @USE_MANUAL_FALSE@
310313 USE_SSLEAY = @USE_SSLEAY@
311314 USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
312315 VERSION = @VERSION@
316 VERSIONED_FLAVOUR = @VERSIONED_FLAVOUR@
317 VERSIONED_SYMBOLS_FALSE = @VERSIONED_SYMBOLS_FALSE@
318 VERSIONED_SYMBOLS_TRUE = @VERSIONED_SYMBOLS_TRUE@
313319 VERSIONNUM = @VERSIONNUM@
314320 ac_ct_AR = @ac_ct_AR@
315321 ac_ct_CC = @ac_ct_CC@
459465 # This is for gcc on Solaris (8+ ?) to avoid "relocations remain against
460466 # allocatable but non-writable sections" problems.
461467 @MIMPURE_TRUE@MIMPURE = -mimpure-text
462 libcurl_la_LDFLAGS = $(UNDEF) $(VERSIONINFO) $(MIMPURE) $(LIBCURL_LIBS)
468 @VERSIONED_SYMBOLS_TRUE@VERSIONED_SYMBOLS = -Wl,--version-script=libcurl.vers
469 libcurl_la_LDFLAGS = $(UNDEF) $(VERSIONINFO) $(MIMPURE) $(VERSIONED_SYMBOLS) $(LIBCURL_LIBS)
463470 @BUILD_UNITTESTS_FALSE@noinst_LTLIBRARIES =
464471
465472 # unit testing static library built only along with unit tests
559566
560567 distclean-hdr:
561568 -rm -f curl_config.h stamp-h1
569 libcurl.vers: $(top_builddir)/config.status $(srcdir)/libcurl.vers.in
570 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
562571 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
563572 @$(NORMAL_INSTALL)
564573 test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)"
4040 ifndef LIBIDN_PATH
4141 LIBIDN_PATH = ../../libidn-1.18
4242 endif
43 # Edit the path below to point to the base of your MS idndlpackage.
43 # Edit the path below to point to the base of your MS IDN package.
4444 # Microsoft Internationalized Domain Names (IDN) Mitigation APIs 1.1
4545 # http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ad6158d7-ddba-416a-9109-07607425a815
4646 ifndef WINIDN_PATH
66 * | (__| |_| | _ <| |___
77 * \___|\___/|_| \_\_____|
88 *
9 * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
9 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
1010 *
1111 * This software is licensed as described in the file COPYING, which
1212 * you should have received as part of this distribution. The terms
2525 * Telnet option defines. Add more here if in need.
2626 */
2727 #define CURL_TELOPT_BINARY 0 /* binary 8bit data */
28 #define CURL_TELOPT_ECHO 1 /* just echo! */
2829 #define CURL_TELOPT_SGA 3 /* Suppress Go Ahead */
2930 #define CURL_TELOPT_EXOPL 255 /* EXtended OPtions List */
3031 #define CURL_TELOPT_TTYPE 24 /* Terminal TYPE */
32 #define CURL_TELOPT_NAWS 31 /* Negotiate About Window Size */
3133 #define CURL_TELOPT_XDISPLOC 35 /* X DISPlay LOCation */
3234
3335 #define CURL_TELOPT_NEW_ENVIRON 39 /* NEW ENVIRONment variables */
226226 struct timeval maxtime;
227227 struct timeval timebuf;
228228 struct timeval *timeout;
229 long milli;
229230 int max = ares_getsock((ares_channel)conn->data->state.resolver,
230231 (ares_socket_t *)socks, numsocks);
231232
232
233233 maxtime.tv_sec = CURL_TIMEOUT_RESOLVE;
234234 maxtime.tv_usec = 0;
235235
236236 timeout = ares_timeout((ares_channel)conn->data->state.resolver, &maxtime,
237237 &timebuf);
238
239 Curl_expire(conn->data,
240 (timeout->tv_sec * 1000) + (timeout->tv_usec/1000));
238 milli = (timeout->tv_sec * 1000) + (timeout->tv_usec/1000);
239 if(milli == 0)
240 milli += 10;
241 Curl_expire(conn->data, milli);
241242
242243 return max;
243244 }
329330 res->temp_ai = NULL;
330331 destroy_async_data(&conn->async);
331332 if(!conn->async.dns) {
332 failf(data, "Could not resolve host: %s (%s)", conn->host.dispname,
333 failf(data, "Could not resolve %s: %s (%s)",
334 conn->bits.proxy?"proxy":"host",
335 conn->host.dispname,
333336 ares_strerror(conn->async.status));
334 return CURLE_COULDNT_RESOLVE_HOST;
337 return conn->bits.proxy?CURLE_COULDNT_RESOLVE_PROXY:
338 CURLE_COULDNT_RESOLVE_HOST;
335339 }
336340 *dns = conn->async.dns;
337341 }
417421 if(!conn->async.dns) {
418422 /* a name was not resolved */
419423 if((timeout < 0) || (conn->async.status == ARES_ETIMEOUT)) {
420 if(conn->bits.httpproxy) {
424 if(conn->bits.proxy) {
421425 failf(data, "Resolving proxy timed out: %s", conn->proxy.dispname);
422426 rc = CURLE_COULDNT_RESOLVE_PROXY;
423427 }
427431 }
428432 }
429433 else if(conn->async.done) {
430 if(conn->bits.httpproxy) {
434 if(conn->bits.proxy) {
431435 failf(data, "Could not resolve proxy: %s (%s)", conn->proxy.dispname,
432436 ares_strerror(conn->async.status));
433437 rc = CURLE_COULDNT_RESOLVE_PROXY;
599603 }
600604 return NULL; /* no struct yet */
601605 }
606
607 CURLcode Curl_set_dns_servers(struct SessionHandle *data,
608 char *servers)
609 {
610 CURLcode result = CURLE_NOT_BUILT_IN;
611 #if (ARES_VERSION >= 0x010704)
612 int ares_result = ares_set_servers_csv(data->state.resolver, servers);
613 switch(ares_result) {
614 case ARES_SUCCESS:
615 result = CURLE_OK;
616 break;
617 case ARES_ENOMEM:
618 result = CURLE_OUT_OF_MEMORY;
619 break;
620 case ARES_ENOTINITIALIZED:
621 case ARES_ENODATA:
622 case ARES_EBADSTR:
623 default:
624 result = CURLE_BAD_FUNCTION_ARGUMENT;
625 break;
626 }
627 #else /* too old c-ares version! */
628 (void)data;
629 (void)servers;
630 #endif
631 return result;
632 }
602633 #endif /* CURLRES_ARES */
44 * | (__| |_| | _ <| |___
55 * \___|\___/|_| \_\_____|
66 *
7 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
7 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
88 *
99 * This software is licensed as described in the file COPYING, which
1010 * you should have received as part of this distribution. The terms
174174
175175 struct thread_data {
176176 curl_thread_t thread_hnd;
177 curl_socket_t dummy_sock;
178177 unsigned int poll_interval;
179178 int interval_end;
180179 struct thread_sync_data tsd;
328327 if(async->os_specific) {
329328 struct thread_data *td = (struct thread_data*) async->os_specific;
330329
331 if(td->dummy_sock != CURL_SOCKET_BAD)
332 sclose(td->dummy_sock);
333
334330 if(td->thread_hnd != curl_thread_t_null)
335331 Curl_thread_join(&td->thread_hnd);
336332
363359 conn->async.done = FALSE;
364360 conn->async.status = 0;
365361 conn->async.dns = NULL;
366 td->dummy_sock = CURL_SOCKET_BAD;
367362 td->thread_hnd = curl_thread_t_null;
368363
369364 if(!init_thread_sync_data(&td->tsd, hostname, port, hints))
373368 conn->async.hostname = strdup(hostname);
374369 if(!conn->async.hostname)
375370 goto err_exit;
376
377 #ifdef WIN32
378 /* This socket is only to keep Curl_resolver_fdset() and select() happy;
379 * should never become signalled for read since it's unbound but
380 * Windows needs at least 1 socket in select().
381 */
382 td->dummy_sock = socket(AF_INET, SOCK_DGRAM, 0);
383 if(td->dummy_sock == CURL_SOCKET_BAD)
384 goto err_exit;
385 #endif
386371
387372 #ifdef HAVE_GETADDRINFO
388373 td->thread_hnd = Curl_thread_create(getaddrinfo_thread, &td->tsd);
573558 curl_socket_t *socks,
574559 int numsocks)
575560 {
576 const struct thread_data *td =
577 (const struct thread_data *) conn->async.os_specific;
578
579 if(td && td->dummy_sock != CURL_SOCKET_BAD) {
580 if(numsocks) {
581 /* return one socket waiting for readable, even though this is just
582 a dummy */
583 socks[0] = td->dummy_sock;
584 return GETSOCK_READSOCK(0);
585 }
586 }
561 (void)conn;
562 (void)socks;
563 (void)numsocks;
587564 return 0;
588565 }
589566
695672
696673 #endif /* !HAVE_GETADDRINFO */
697674
675 CURLcode Curl_set_dns_servers(struct SessionHandle *data,
676 char *servers)
677 {
678 (void)data;
679 (void)servers;
680 return CURLE_NOT_BUILT_IN;
681
682 }
683
698684 #endif /* CURLRES_THREADED */
44 * | (__| |_| | _ <| |___
55 * \___|\___/|_| \_\_____|
66 *
7 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
7 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
88 *
99 * This software is licensed as described in the file COPYING, which
1010 * you should have received as part of this distribution. The terms
8787 /* This isn't actually supported under Symbian OS */
8888 #undef SO_NOSIGPIPE
8989 #endif
90
91 struct Curl_sockaddr_ex {
92 int family;
93 int socktype;
94 int protocol;
95 unsigned int addrlen;
96 union {
97 struct sockaddr addr;
98 struct Curl_sockaddr_storage buff;
99 } _sa_ex_u;
100 };
101 #define sa_addr _sa_ex_u.addr
10290
10391 static bool verifyconnect(curl_socket_t sockfd, int *error);
10492
251239 int error;
252240 char myhost[256] = "";
253241 int done = 0; /* -1 for error, 1 for address found */
242 bool is_interface = FALSE;
243 bool is_host = FALSE;
244 static const char *if_prefix = "if!";
245 static const char *host_prefix = "host!";
254246
255247 /*************************************************************
256248 * Select device to bind socket to
262254 memset(&sa, 0, sizeof(struct Curl_sockaddr_storage));
263255
264256 if(dev && (strlen(dev)<255) ) {
257 if(strncmp(if_prefix, dev, strlen(if_prefix)) == 0) {
258 dev += strlen(if_prefix);
259 is_interface = TRUE;
260 }
261 else if(strncmp(host_prefix, dev, strlen(host_prefix)) == 0) {
262 dev += strlen(host_prefix);
263 is_host = TRUE;
264 }
265265
266266 /* interface */
267 if(Curl_if2ip(af, dev, myhost, sizeof(myhost))) {
267 if(!is_host && (is_interface || Curl_if_is_interface_name(dev))) {
268 if(Curl_if2ip(af, dev, myhost, sizeof(myhost)) == NULL)
269 return CURLE_INTERFACE_FAILED;
270
268271 /*
269272 * We now have the numerical IP address in the 'myhost' buffer
270273 */
840843 struct SessionHandle *data = conn->data;
841844 curl_socket_t sockfd;
842845 CURLcode res = CURLE_OK;
843 #if defined(ENABLE_IPV6) && defined(HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID)
844 struct sockaddr_in6 * const sa6 = (void *)&addr.sa_addr;
845 #endif
846846
847847 *sockp = CURL_SOCKET_BAD;
848
849 /*
850 * The Curl_sockaddr_ex structure is basically libcurl's external API
851 * curl_sockaddr structure with enough space available to directly hold
852 * any protocol-specific address structures. The variable declared here
853 * will be used to pass / receive data to/from the fopensocket callback
854 * if this has been set, before that, it is initialized from parameters.
855 */
856
857 addr.family = ai->ai_family;
858 addr.socktype = conn->socktype;
859 addr.protocol = conn->socktype==SOCK_DGRAM?IPPROTO_UDP:ai->ai_protocol;
860 addr.addrlen = ai->ai_addrlen;
861
862 if(addr.addrlen > sizeof(struct Curl_sockaddr_storage))
863 addr.addrlen = sizeof(struct Curl_sockaddr_storage);
864 memcpy(&addr.sa_addr, ai->ai_addr, addr.addrlen);
865
866848 *connected = FALSE; /* default is not connected */
867849
868 if(data->set.fopensocket)
869 /*
870 * If the opensocket callback is set, all the destination address
871 * information is passed to the callback. Depending on this information the
872 * callback may opt to abort the connection, this is indicated returning
873 * CURL_SOCKET_BAD; otherwise it will return a not-connected socket. When
874 * the callback returns a valid socket the destination address information
875 * might have been changed and this 'new' address will actually be used
876 * here to connect.
877 */
878 sockfd = data->set.fopensocket(data->set.opensocket_client,
879 CURLSOCKTYPE_IPCXN,
880 (struct curl_sockaddr *)&addr);
881 else
882 /* opensocket callback not set, so simply create the socket now */
883 sockfd = socket(addr.family, addr.socktype, addr.protocol);
884
885 if(sockfd == CURL_SOCKET_BAD)
886 /* no socket, no connection */
887 return CURLE_OK;
888
889 #if defined(ENABLE_IPV6) && defined(HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID)
890 if(conn->scope && (addr.family == AF_INET6))
891 sa6->sin6_scope_id = conn->scope;
892 #endif
850 res = Curl_socket(conn, ai, &addr, &sockfd);
851 if(res)
852 return res;
893853
894854 /* store remote address and port used in this connection attempt */
895855 if(!getaddressinfo((struct sockaddr*)&addr.sa_addr,
902862 return CURLE_OK;
903863 }
904864 memcpy(conn->ip_addr_str, conn->primary_ip, MAX_IPADR_LEN);
905 infof(data, " Trying %s... ", conn->ip_addr_str);
865 infof(data, " Trying %s...\n", conn->ip_addr_str);
906866
907867 Curl_persistconninfo(conn);
908868
11641124 int Curl_closesocket(struct connectdata *conn,
11651125 curl_socket_t sock)
11661126 {
1167 if(conn && conn->fclosesocket)
1168 return conn->fclosesocket(conn->closesocket_client, sock);
1127 if(conn && conn->fclosesocket) {
1128 if((sock == conn->sock[SECONDARYSOCKET]) &&
1129 conn->sock_accepted[SECONDARYSOCKET])
1130 /* if this socket matches the second socket, and that was created with
1131 accept, then we MUST NOT call the callback but clear the accepted
1132 status */
1133 conn->sock_accepted[SECONDARYSOCKET] = FALSE;
1134 else
1135 return conn->fclosesocket(conn->closesocket_client, sock);
1136 }
1137 return sclose(sock);
1138 }
1139
1140 /*
1141 * Create a socket based on info from 'conn' and 'ai'.
1142 *
1143 * 'addr' should be a pointer to the correct struct to get data back, or NULL.
1144 * 'sockfd' must be a pointer to a socket descriptor.
1145 *
1146 * If the open socket callback is set, used that!
1147 *
1148 */
1149 CURLcode Curl_socket(struct connectdata *conn,
1150 const Curl_addrinfo *ai,
1151 struct Curl_sockaddr_ex *addr,
1152 curl_socket_t *sockfd)
1153 {
1154 struct SessionHandle *data = conn->data;
1155 struct Curl_sockaddr_ex dummy;
1156
1157 if(!addr)
1158 /* if the caller doesn't want info back, use a local temp copy */
1159 addr = &dummy;
1160
1161 /*
1162 * The Curl_sockaddr_ex structure is basically libcurl's external API
1163 * curl_sockaddr structure with enough space available to directly hold
1164 * any protocol-specific address structures. The variable declared here
1165 * will be used to pass / receive data to/from the fopensocket callback
1166 * if this has been set, before that, it is initialized from parameters.
1167 */
1168
1169 addr->family = ai->ai_family;
1170 addr->socktype = conn->socktype;
1171 addr->protocol = conn->socktype==SOCK_DGRAM?IPPROTO_UDP:ai->ai_protocol;
1172 addr->addrlen = ai->ai_addrlen;
1173
1174 if(addr->addrlen > sizeof(struct Curl_sockaddr_storage))
1175 addr->addrlen = sizeof(struct Curl_sockaddr_storage);
1176 memcpy(&addr->sa_addr, ai->ai_addr, addr->addrlen);
1177
1178 if(data->set.fopensocket)
1179 /*
1180 * If the opensocket callback is set, all the destination address
1181 * information is passed to the callback. Depending on this information the
1182 * callback may opt to abort the connection, this is indicated returning
1183 * CURL_SOCKET_BAD; otherwise it will return a not-connected socket. When
1184 * the callback returns a valid socket the destination address information
1185 * might have been changed and this 'new' address will actually be used
1186 * here to connect.
1187 */
1188 *sockfd = data->set.fopensocket(data->set.opensocket_client,
1189 CURLSOCKTYPE_IPCXN,
1190 (struct curl_sockaddr *)addr);
11691191 else
1170 return sclose(sock);
1171 }
1192 /* opensocket callback not set, so simply create the socket now */
1193 *sockfd = socket(addr->family, addr->socktype, addr->protocol);
1194
1195 if(*sockfd == CURL_SOCKET_BAD)
1196 /* no socket, no connection */
1197 return CURLE_FAILED_INIT;
1198
1199 #if defined(ENABLE_IPV6) && defined(HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID)
1200 if(conn->scope && (addr->family == AF_INET6)) {
1201 struct sockaddr_in6 * const sa6 = (void *)&addr->sa_addr;
1202 sa6->sin6_scope_id = conn->scope;
1203 }
1204 #endif
1205
1206 return CURLE_OK;
1207
1208 }
2323 #include "setup.h"
2424
2525 #include "nonblock.h" /* for curlx_nonblock(), formerly Curl_nonblock() */
26 #include "sockaddr.h"
2627
2728 CURLcode Curl_is_connected(struct connectdata *conn,
2829 int sockindex,
7172 void Curl_persistconninfo(struct connectdata *conn);
7273 int Curl_closesocket(struct connectdata *conn, curl_socket_t sock);
7374
75 /*
76 * The Curl_sockaddr_ex structure is basically libcurl's external API
77 * curl_sockaddr structure with enough space available to directly hold any
78 * protocol-specific address structures. The variable declared here will be
79 * used to pass / receive data to/from the fopensocket callback if this has
80 * been set, before that, it is initialized from parameters.
81 */
82 struct Curl_sockaddr_ex {
83 int family;
84 int socktype;
85 int protocol;
86 unsigned int addrlen;
87 union {
88 struct sockaddr addr;
89 struct Curl_sockaddr_storage buff;
90 } _sa_ex_u;
91 };
92 #define sa_addr _sa_ex_u.addr
93
94 /*
95 * Create a socket based on info from 'conn' and 'ai'.
96 *
97 * Fill in 'addr' and 'sockfd' accordingly if OK is returned. If the open
98 * socket callback is set, used that!
99 *
100 */
101 CURLcode Curl_socket(struct connectdata *conn,
102 const Curl_addrinfo *ai,
103 struct Curl_sockaddr_ex *addr,
104 curl_socket_t *sockfd);
105
74106 #endif /* HEADER_CURL_CONNECT_H */
381381 /* Define to 1 if you have the `ldap_url_parse' function. */
382382 #undef HAVE_LDAP_URL_PARSE
383383
384 /* Define to 1 if you have the `gcrypt' library (-lgcrypt). */
385 #undef HAVE_LIBGCRYPT
386
387384 /* Define to 1 if you have the <libgen.h> header file. */
388385 #undef HAVE_LIBGEN_H
389386
610607 /* if you have the function SRP_Calc_client_key */
611608 #undef HAVE_SSLEAY_SRP
612609
610 /* Define to 1 if you have the `SSLv2_client_method' function. */
611 #undef HAVE_SSLV2_CLIENT_METHOD
612
613613 /* Define to 1 if you have the `SSL_get_shutdown' function. */
614614 #undef HAVE_SSL_GET_SHUTDOWN
615615
979979
980980 /* if GnuTLS is enabled */
981981 #undef USE_GNUTLS
982
983 /* if GnuTLS uses nettle as crypto backend */
984 #undef USE_GNUTLS_NETTLE
982985
983986 /* if librtmp is in use */
984987 #undef USE_LIBRTMP
6262 # define DESKEY(x) &x
6363 # endif
6464
65 #elif defined(USE_GNUTLS_NETTLE)
66
67 # include <nettle/des.h>
68 # include <nettle/md4.h>
69
6570 #elif defined(USE_GNUTLS)
6671
6772 # include <gcrypt.h>
132137 key[7] = (unsigned char) ((key_56[6] << 1) & 0xFF);
133138 }
134139
135 #if defined(USE_GNUTLS)
140 #if defined(USE_GNUTLS_NETTLE)
141
142 static void setup_des_key(const unsigned char *key_56,
143 struct des_ctx *des)
144 {
145 char key[8];
146 extend_key_56_to_64(key_56, key);
147 des_set_key(des, key);
148 }
149
150 #elif defined(USE_GNUTLS)
136151
137152 /*
138153 * Turns a 56 bit key into the 64 bit, odd parity key and sets the key.
232247 setup_des_key(keys + 14, DESKEY(ks));
233248 DES_ecb_encrypt((DES_cblock*) plaintext, (DES_cblock*) (results + 16),
234249 DESKEY(ks), DES_ENCRYPT);
250 #elif defined(USE_GNUTLS_NETTLE)
251 struct des_ctx des;
252 setup_des_key(keys, &des);
253 des_encrypt(&des, 8, results, plaintext);
254 setup_des_key(keys + 7, &des);
255 des_encrypt(&des, 8, results + 8, plaintext);
256 setup_des_key(keys + 14, &des);
257 des_encrypt(&des, 8, results + 16, plaintext);
235258 #elif defined(USE_GNUTLS)
236259 gcry_cipher_hd_t des;
237260
294317 setup_des_key(pw + 7, DESKEY(ks));
295318 DES_ecb_encrypt((DES_cblock *)magic, (DES_cblock *)(lmbuffer + 8),
296319 DESKEY(ks), DES_ENCRYPT);
320 #elif defined(USE_GNUTLS_NETTLE)
321 struct des_ctx des;
322 setup_des_key(pw, &des);
323 des_encrypt(&des, 8, lmbuffer, magic);
324 setup_des_key(pw + 7, &des);
325 des_encrypt(&des, 8, lmbuffer + 8, magic);
297326 #elif defined(USE_GNUTLS)
298327 gcry_cipher_hd_t des;
299328
356385 MD4_Init(&MD4pw);
357386 MD4_Update(&MD4pw, pw, 2 * len);
358387 MD4_Final(ntbuffer, &MD4pw);
388 #elif defined(USE_GNUTLS_NETTLE)
389 struct md4_ctx MD4pw;
390 md4_init(&MD4pw);
391 md4_update(&MD4pw, 2 * len, pw);
392 md4_digest(&MD4pw, MD4_DIGEST_SIZE, ntbuffer);
359393 #elif defined(USE_GNUTLS)
360394 gcry_md_hd_t MD4pw;
361395 gcry_md_open(&MD4pw, GCRY_MD_MD4, 0);
44 * | (__| |_| | _ <| |___
55 * \___|\___/|_| \_\_____|
66 *
7 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
7 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
88 *
99 * This software is licensed as described in the file COPYING, which
1010 * you should have received as part of this distribution. The terms
5252 # include <rand.h>
5353 # endif
5454 # include "ssluse.h"
55
56 #elif defined(USE_GNUTLS_NETTLE)
57
58 # include <nettle/md5.h>
59 # include <gnutls/gnutls.h>
60 # include <gnutls/crypto.h>
61 # define MD5_DIGEST_LENGTH 16
5562
5663 #elif defined(USE_GNUTLS)
5764
687694 /* Get the machine's un-qualified host name as NTLM doesn't like the fully
688695 qualified domain name */
689696 if(Curl_gethostname(host, sizeof(host))) {
690 infof(data, "gethostname() failed, continuing without!");
697 infof(data, "gethostname() failed, continuing without!\n");
691698 hostlen = 0;
692699 }
693700 else {
713720 MD5_CTX MD5pw;
714721 Curl_ossl_seed(data); /* Initiate the seed if not already done */
715722 RAND_bytes(entropy, 8);
723 #elif defined(USE_GNUTLS_NETTLE)
724 struct md5_ctx MD5pw;
725 gnutls_rnd(GNUTLS_RND_RANDOM, entropy, 8);
716726 #elif defined(USE_GNUTLS)
717727 gcry_md_hd_t MD5pw;
718728 Curl_gtls_seed(data); /* Initiate the seed if not already done */
738748 MD5_Init(&MD5pw);
739749 MD5_Update(&MD5pw, tmp, 16);
740750 MD5_Final(md5sum, &MD5pw);
751 #elif defined(USE_GNUTLS_NETTLE)
752 md5_init(&MD5pw);
753 md5_update(&MD5pw, 16, tmp);
754 md5_digest(&MD5pw, 16, md5sum);
741755 #elif defined(USE_GNUTLS)
742756 gcry_md_open(&MD5pw, GCRY_MD_MD5, 0);
743757 gcry_md_write(MD5pw, tmp, MD5_DIGEST_LENGTH);
44 * | (__| |_| | _ <| |___
55 * \___|\___/|_| \_\_____|
66 *
7 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
7 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
88 *
99 * This software is licensed as described in the file COPYING, which
1010 * you should have received as part of this distribution. The terms
257257 }
258258
259259 conssl->connecting_state = ssl_connect_3;
260 infof(data, "SSL connected");
260 infof(data, "SSL connected\n");
261261
262262 return CURLE_OK;
263263 }
403403
404404 int Curl_cyassl_init(void)
405405 {
406 #if (LIBCYASSL_VERSION_HEX >= 0x02000000)
407 if(SSL_library_init() != SSL_SUCCESS)
408 return 0;
409 #else
406410 InitCyaSSL();
411 #endif
407412
408413 return 1;
409414 }
44 * | (__| |_| | _ <| |___
55 * \___|\___/|_| \_\_____|
66 *
7 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
7 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
88 *
99 * This software is licensed as described in the file COPYING, which
1010 * you should have received as part of this distribution. The terms
9797 ZERO_NULL, /* readwrite */
9898 PORT_DICT, /* defport */
9999 CURLPROTO_DICT, /* protocol */
100 PROTOPT_NONE /* flags */
100 PROTOPT_NONE | PROTOPT_NOURLQUERY /* flags */
101101 };
102102
103103 static char *unescape_word(struct SessionHandle *data, const char *inputbuff)
177177 }
178178
179179 if((word == NULL) || (*word == (char)0)) {
180 infof(data, "lookup word is missing");
180 infof(data, "lookup word is missing\n");
181181 word=(char *)"default";
182182 }
183183 if((database == NULL) || (*database == (char)0)) {
231231 }
232232
233233 if((word == NULL) || (*word == (char)0)) {
234 infof(data, "lookup word is missing");
234 infof(data, "lookup word is missing\n");
235235 word=(char *)"default";
236236 }
237237 if((database == NULL) || (*database == (char)0)) {
3030 #include "urldata.h"
3131 #include "warnless.h"
3232 #include "non-ascii.h"
33 #include "escape.h"
3334
3435 #define _MPRINTF_REPLACE /* use our functions only */
3536 #include <curl/mprintf.h>
8384 char *testing_ptr = NULL;
8485 unsigned char in; /* we need to treat the characters unsigned */
8586 size_t newlen = alloc;
86 int strindex=0;
87 size_t strindex=0;
8788 size_t length;
8889 CURLcode res;
8990
131132 }
132133
133134 /*
134 * Unescapes the given URL escaped string of given length. Returns a
135 * pointer to a malloced string with length given in *olen.
136 * If length == 0, the length is assumed to be strlen(string).
137 * If olen == NULL, no output length is stored.
135 * Curl_urldecode() URL decodes the given string.
136 *
137 * Optionally detects control characters (byte codes lower than 32) in the
138 * data and rejects such data.
139 *
140 * Returns a pointer to a malloced string in *ostring with length given in
141 * *olen. If length == 0, the length is assumed to be strlen(string).
142 *
138143 */
139 char *curl_easy_unescape(CURL *handle, const char *string, int length,
140 int *olen)
141 {
142 int alloc = (length?length:(int)strlen(string))+1;
144 CURLcode Curl_urldecode(struct SessionHandle *data,
145 const char *string, size_t length,
146 char **ostring, size_t *olen,
147 bool reject_ctrl)
148 {
149 size_t alloc = (length?length:strlen(string))+1;
143150 char *ns = malloc(alloc);
144151 unsigned char in;
145 int strindex=0;
152 size_t strindex=0;
146153 unsigned long hex;
147154 CURLcode res;
148155
149156 if(!ns)
150 return NULL;
157 return CURLE_OUT_OF_MEMORY;
151158
152159 while(--alloc > 0) {
153160 in = *string;
163170
164171 in = curlx_ultouc(hex); /* this long is never bigger than 255 anyway */
165172
166 res = Curl_convert_from_network(handle, &in, 1);
173 res = Curl_convert_from_network(data, &in, 1);
167174 if(res) {
168175 /* Curl_convert_from_network calls failf if unsuccessful */
169176 free(ns);
170 return NULL;
177 return res;
171178 }
172179
173180 string+=2;
174181 alloc-=2;
182 }
183 if(reject_ctrl && (in < 0x20)) {
184 free(ns);
185 return CURLE_URL_MALFORMAT;
175186 }
176187
177188 ns[strindex++] = in;
182193 if(olen)
183194 /* store output size */
184195 *olen = strindex;
185 return ns;
196
197 if(ostring)
198 /* store output string */
199 *ostring = ns;
200
201 return CURLE_OK;
202 }
203
204 /*
205 * Unescapes the given URL escaped string of given length. Returns a
206 * pointer to a malloced string with length given in *olen.
207 * If length == 0, the length is assumed to be strlen(string).
208 * If olen == NULL, no output length is stored.
209 */
210 char *curl_easy_unescape(CURL *handle, const char *string, int length,
211 int *olen)
212 {
213 char *str = NULL;
214 size_t inputlen = length;
215 size_t outputlen;
216 CURLcode res = Curl_urldecode(handle, string, inputlen, &str, &outputlen,
217 FALSE);
218 if(res)
219 return NULL;
220 if(olen)
221 *olen = curlx_uztosi(outputlen);
222 return str;
186223 }
187224
188225 /* For operating systems/environments that use different malloc/free
0 #ifndef __ESCAPE_H
1 #define __ESCAPE_H
0 #ifndef HEADER_CURL_ESCAPE_H
1 #define HEADER_CURL_ESCAPE_H
22
33 /***************************************************************************
44 * _ _ ____ _
77 * | (__| |_| | _ <| |___
88 * \___|\___/|_| \_\_____|
99 *
10 * Copyright (C) 1998 - 2006, Daniel Stenberg, <daniel@haxx.se>, et al.
10 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
1111 *
1212 * This software is licensed as described in the file COPYING, which
1313 * you should have received as part of this distribution. The terms
2424 /* Escape and unescape URL encoding in strings. The functions return a new
2525 * allocated string or NULL if an error occurred. */
2626
27 CURLcode Curl_urldecode(struct SessionHandle *data,
28 const char *string, size_t length,
29 char **ostring, size_t *olen,
30 bool reject_crlf);
2731
2832 #endif
118118 ZERO_NULL, /* readwrite */
119119 0, /* defport */
120120 CURLPROTO_FILE, /* protocol */
121 PROTOPT_NONETWORK /* flags */
121 PROTOPT_NONETWORK | PROTOPT_NOURLQUERY /* flags */
122122 };
123123
124124
155155 /* then move the original 'more' to point to ourselves */
156156 parent_form_info->more = form_info;
157157 }
158 else
159 return NULL;
160158
161159 return form_info;
162160 }
457455 if(current_form->value) {
458456 if(current_form->flags & HTTPPOST_FILENAME) {
459457 if(filename) {
460 if((current_form = AddFormInfo(strdup(filename),
461 NULL, current_form)) == NULL)
458 char *fname = strdup(filename);
459 if(!fname)
462460 return_value = CURL_FORMADD_MEMORY;
461 else {
462 form = AddFormInfo(fname, NULL, current_form);
463 if(!form) {
464 Curl_safefree(fname);
465 return_value = CURL_FORMADD_MEMORY;
466 }
467 else {
468 form->value_alloc = TRUE;
469 current_form = form;
470 form = NULL;
471 }
472 }
463473 }
464474 else
465475 return_value = CURL_FORMADD_NULL;
534544 if(current_form->contenttype) {
535545 if(current_form->flags & HTTPPOST_FILENAME) {
536546 if(contenttype) {
537 if((current_form = AddFormInfo(NULL,
538 strdup(contenttype),
539 current_form)) == NULL)
547 char *type = strdup(contenttype);
548 if(!type)
540549 return_value = CURL_FORMADD_MEMORY;
550 else {
551 form = AddFormInfo(NULL, type, current_form);
552 if(!form) {
553 Curl_safefree(type);
554 return_value = CURL_FORMADD_MEMORY;
555 }
556 else {
557 form->contenttype_alloc = TRUE;
558 current_form = form;
559 form = NULL;
560 }
561 }
541562 }
542563 else
543564 return_value = CURL_FORMADD_NULL;
595616 }
596617 }
597618
619 if(CURL_FORMADD_OK != return_value) {
620 /* On error, free allocated fields for all nodes of the FormInfo linked
621 list without deallocating nodes. List nodes are deallocated later on */
622 FormInfo *ptr;
623 for(ptr = first_form; ptr != NULL; ptr = ptr->more) {
624 if(ptr->name_alloc) {
625 Curl_safefree(ptr->name);
626 ptr->name_alloc = FALSE;
627 }
628 if(ptr->value_alloc) {
629 Curl_safefree(ptr->value);
630 ptr->value_alloc = FALSE;
631 }
632 if(ptr->contenttype_alloc) {
633 Curl_safefree(ptr->contenttype);
634 ptr->contenttype_alloc = FALSE;
635 }
636 if(ptr->showfilename_alloc) {
637 Curl_safefree(ptr->showfilename);
638 ptr->showfilename_alloc = FALSE;
639 }
640 }
641 }
642
598643 if(CURL_FORMADD_OK == return_value) {
599644 /* go through the list, check for completeness and if everything is
600645 * alright add the HttpPost item otherwise set return_value accordingly */
674719 prevtype = form->contenttype;
675720 }
676721 }
677 }
678
679 if(return_value) {
680 /* we return on error, free possibly allocated fields */
681 if(!form)
682 form = current_form;
683 if(form) {
684 if(form->name_alloc)
685 free(form->name);
686 if(form->value_alloc)
687 free(form->value);
688 if(form->contenttype_alloc)
689 free(form->contenttype);
690 if(form->showfilename_alloc)
691 free(form->showfilename);
692 }
693 }
694
695 /* always delete the allocated memory before returning */
696 form = first_form;
697 while(form != NULL) {
698 FormInfo *delete_form;
699
700 delete_form = form;
701 form = form->more;
702 free (delete_form);
722 if(CURL_FORMADD_OK != return_value) {
723 /* On error, free allocated fields for nodes of the FormInfo linked
724 list which are not already owned by the httppost linked list
725 without deallocating nodes. List nodes are deallocated later on */
726 FormInfo *ptr;
727 for(ptr = form; ptr != NULL; ptr = ptr->more) {
728 if(ptr->name_alloc) {
729 Curl_safefree(ptr->name);
730 ptr->name_alloc = FALSE;
731 }
732 if(ptr->value_alloc) {
733 Curl_safefree(ptr->value);
734 ptr->value_alloc = FALSE;
735 }
736 if(ptr->contenttype_alloc) {
737 Curl_safefree(ptr->contenttype);
738 ptr->contenttype_alloc = FALSE;
739 }
740 if(ptr->showfilename_alloc) {
741 Curl_safefree(ptr->showfilename);
742 ptr->showfilename_alloc = FALSE;
743 }
744 }
745 }
746 }
747
748 /* Always deallocate FormInfo linked list nodes without touching node
749 fields given that these have either been deallocated or are owned
750 now by the httppost linked list */
751 while(first_form) {
752 FormInfo *ptr = first_form->more;
753 Curl_safefree(first_form);
754 first_form = ptr;
703755 }
704756
705757 return return_value;
9951047 struct curl_httppost *file;
9961048 CURLcode result = CURLE_OK;
9971049
998 curl_off_t size=0; /* support potentially ENORMOUS formposts */
1050 curl_off_t size = 0; /* support potentially ENORMOUS formposts */
9991051 char *boundary;
1000 char *fileboundary=NULL;
1052 char *fileboundary = NULL;
10011053 struct curl_slist* curList;
10021054
1003 *finalform=NULL; /* default form is empty */
1055 *finalform = NULL; /* default form is empty */
10041056
10051057 if(!post)
10061058 return result; /* no input => no output! */
10171069 boundary);
10181070
10191071 if(result) {
1020 free(boundary);
1072 Curl_safefree(boundary);
10211073 return result;
10221074 }
10231075 /* we DO NOT include that line in the total size of the POST, since it'll be
10601112 /* If used, this is a link to more file names, we must then do
10611113 the magic to include several files with the same field name */
10621114
1115 Curl_safefree(fileboundary);
10631116 fileboundary = Curl_FormBoundary();
1117 if(!fileboundary) {
1118 result = CURLE_OUT_OF_MEMORY;
1119 break;
1120 }
10641121
10651122 result = AddFormDataf(&form, &size,
10661123 "\r\nContent-Type: multipart/mixed,"
10801137
10811138 if(post->more) {
10821139 /* if multiple-file */
1083 char *filebasename= NULL;
1140 char *filebasename = NULL;
10841141 if(!file->showfilename) {
10851142 filebasename = strippath(file->contents);
10861143 if(!filebasename) {
1087 Curl_formclean(&firstform);
1088 free(boundary);
1089 return CURLE_OUT_OF_MEMORY;
1144 result = CURLE_OUT_OF_MEMORY;
1145 break;
10901146 }
10911147 }
10921148
10961152 fileboundary,
10971153 (file->showfilename?file->showfilename:
10981154 filebasename));
1099 if(filebasename)
1100 free(filebasename);
1155 Curl_safefree(filebasename);
11011156 if(result)
11021157 break;
11031158 }
11141169 "; filename=\"%s\"",
11151170 (post->showfilename?post->showfilename:
11161171 filebasename));
1117 if(filebasename)
1118 free(filebasename);
1172 Curl_safefree(filebasename);
11191173 }
11201174
11211175 if(result)
11391193 break;
11401194 curList = curList->next;
11411195 }
1142 if(result) {
1143 Curl_formclean(&firstform);
1144 free(boundary);
1145 return result;
1146 }
1196 if(result)
1197 break;
11471198
11481199 result = AddFormDataf(&form, &size, "\r\n\r\n");
11491200 if(result)
11651216
11661217 if(fileread) {
11671218 if(fileread != stdin) {
1168 /* close the file again */
1219 /* close the file */
11691220 fclose(fileread);
11701221 /* add the file name only - for later reading from this */
11711222 result = AddFormData(&form, FORM_FILE, file->contents, 0, &size);
12091260 file = file->more;
12101261 } while(file && !result); /* for each specified file for this field */
12111262
1212 if(result) {
1213 Curl_formclean(&firstform);
1214 free(boundary);
1215 return result;
1216 }
1263 if(result)
1264 break;
12171265
12181266 if(post->more) {
12191267 /* this was a multiple-file inclusion, make a termination file
12211269 result = AddFormDataf(&form, &size,
12221270 "\r\n--%s--",
12231271 fileboundary);
1224 free(fileboundary);
12251272 if(result)
12261273 break;
12271274 }
12281275
12291276 } while((post = post->next) != NULL); /* for each field */
1277
1278 /* end-boundary for everything */
1279 if(CURLE_OK == result)
1280 result = AddFormDataf(&form, &size,
1281 "\r\n--%s--\r\n",
1282 boundary);
1283
12301284 if(result) {
12311285 Curl_formclean(&firstform);
1232 free(boundary);
1286 Curl_safefree(fileboundary);
1287 Curl_safefree(boundary);
12331288 return result;
12341289 }
12351290
1236 /* end-boundary for everything */
1237 result = AddFormDataf(&form, &size,
1238 "\r\n--%s--\r\n",
1239 boundary);
1240 if(result) {
1241 Curl_formclean(&firstform);
1242 free(boundary);
1243 return result;
1244 }
1245
12461291 *sizep = size;
12471292
1248 free(boundary);
1249
1250 *finalform=firstform;
1293 Curl_safefree(fileboundary);
1294 Curl_safefree(boundary);
1295
1296 *finalform = firstform;
12511297
12521298 return result;
12531299 }
44 * | (__| |_| | _ <| |___
55 * \___|\___/|_| \_\_____|
66 *
7 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
7 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
88 *
99 * This software is licensed as described in the file COPYING, which
1010 * you should have received as part of this distribution. The terms
107107 #endif
108108
109109 /* Local API functions */
110 static void state(struct connectdata *conn,
111 ftpstate newstate);
110112 static CURLcode ftp_sendquote(struct connectdata *conn,
111113 struct curl_slist *quote);
112114 static CURLcode ftp_quit(struct connectdata *conn);
131133 CURLcode, bool premature);
132134 static CURLcode ftp_connect(struct connectdata *conn, bool *done);
133135 static CURLcode ftp_disconnect(struct connectdata *conn, bool dead_connection);
134 static CURLcode ftp_nextconnect(struct connectdata *conn);
136 static CURLcode ftp_do_more(struct connectdata *conn, bool *completed);
135137 static CURLcode ftp_multi_statemach(struct connectdata *conn, bool *done);
136138 static int ftp_getsock(struct connectdata *conn, curl_socket_t *socks,
137139 int numsocks);
149151 static CURLcode ftp_state_post_retr_size(struct connectdata *conn,
150152 curl_off_t filesize);
151153
154 static CURLcode ftp_readresp(curl_socket_t sockfd,
155 struct pingpong *pp,
156 int *ftpcode,
157 size_t *size);
158
152159 /* easy-to-use macro: */
153160 #define FTPSENDF(x,y,z) if((result = Curl_ftpsendf(x,y,z)) != CURLE_OK) \
154161 return result
165172 ftp_setup_connection, /* setup_connection */
166173 ftp_do, /* do_it */
167174 ftp_done, /* done */
168 ftp_nextconnect, /* do_more */
175 ftp_do_more, /* do_more */
169176 ftp_connect, /* connect_it */
170177 ftp_multi_statemach, /* connecting */
171178 ftp_doing, /* doing */
177184 ZERO_NULL, /* readwrite */
178185 PORT_FTP, /* defport */
179186 CURLPROTO_FTP, /* protocol */
180 PROTOPT_DUAL | PROTOPT_CLOSEACTION | PROTOPT_NEEDSPWD /* flags */
187 PROTOPT_DUAL | PROTOPT_CLOSEACTION | PROTOPT_NEEDSPWD
188 | PROTOPT_NOURLQUERY /* flags */
181189 };
182190
183191
191199 ftp_setup_connection, /* setup_connection */
192200 ftp_do, /* do_it */
193201 ftp_done, /* done */
194 ftp_nextconnect, /* do_more */
202 ftp_do_more, /* do_more */
195203 ftp_connect, /* connect_it */
196204 ftp_multi_statemach, /* connecting */
197205 ftp_doing, /* doing */
204212 PORT_FTPS, /* defport */
205213 CURLPROTO_FTP | CURLPROTO_FTPS, /* protocol */
206214 PROTOPT_SSL | PROTOPT_DUAL | PROTOPT_CLOSEACTION |
207 PROTOPT_NEEDSPWD /* flags */
215 PROTOPT_NEEDSPWD | PROTOPT_NOURLQUERY /* flags */
208216 };
209217 #endif
210218
308316
309317 /***********************************************************************
310318 *
311 * AllowServerConnect()
312 *
313 * When we've issue the PORT command, we have told the server to connect
314 * to us. This function will sit and wait here until the server has
315 * connected.
319 * AcceptServerConnect()
320 *
321 * After connection request is received from the server this function is
322 * called to accept the connection and close the listening socket
316323 *
317324 */
318 static CURLcode AllowServerConnect(struct connectdata *conn)
325 static CURLcode AcceptServerConnect(struct connectdata *conn)
319326 {
320327 struct SessionHandle *data = conn->data;
321328 curl_socket_t sock = conn->sock[SECONDARYSOCKET];
322 long timeout_ms;
323 long interval_ms;
324329 curl_socket_t s = CURL_SOCKET_BAD;
325330 #ifdef ENABLE_IPV6
326331 struct Curl_sockaddr_storage add;
329334 #endif
330335 curl_socklen_t size = (curl_socklen_t) sizeof(add);
331336
337 if(0 == getsockname(sock, (struct sockaddr *) &add, &size)) {
338 size = sizeof(add);
339
340 s=accept(sock, (struct sockaddr *) &add, &size);
341 }
342 Curl_closesocket(conn, sock); /* close the first socket */
343
344 if(CURL_SOCKET_BAD == s) {
345 failf(data, "Error accept()ing server connect");
346 return CURLE_FTP_PORT_FAILED;
347 }
348 infof(data, "Connection accepted from server\n");
349
350 conn->sock[SECONDARYSOCKET] = s;
351 curlx_nonblock(s, TRUE); /* enable non-blocking */
352 conn->sock_accepted[SECONDARYSOCKET] = TRUE;
353 return CURLE_OK;
354
355 }
356
357 /*
358 * ftp_timeleft_accept() returns the amount of milliseconds left allowed for
359 * waiting server to connect. If the value is negative, the timeout time has
360 * already elapsed.
361 *
362 * The start time is stored in progress.t_acceptdata - as set with
363 * Curl_pgrsTime(..., TIMER_STARTACCEPT);
364 *
365 */
366 static long ftp_timeleft_accept(struct SessionHandle *data)
367 {
368 long timeout_ms = DEFAULT_ACCEPT_TIMEOUT;
369 long other;
370 struct timeval now;
371
372 if(data->set.accepttimeout > 0)
373 timeout_ms = data->set.accepttimeout;
374
375 now = Curl_tvnow();
376
377 /* check if the generic timeout possibly is set shorter */
378 other = Curl_timeleft(data, &now, FALSE);
379 if(other && (other < timeout_ms))
380 /* note that this also works fine for when other happens to be negative
381 due to it already having elapsed */
382 timeout_ms = other;
383 else {
384 /* subtract elapsed time */
385 timeout_ms -= Curl_tvdiff(now, data->progress.t_acceptdata);
386 if(!timeout_ms)
387 /* avoid returning 0 as that means no timeout! */
388 return -1;
389 }
390
391 return timeout_ms;
392 }
393
394
395 /***********************************************************************
396 *
397 * ReceivedServerConnect()
398 *
399 * After allowing server to connect to us from data port, this function
400 * checks both data connection for connection establishment and ctrl
401 * connection for a negative response regarding a failure in connecting
402 *
403 */
404 static CURLcode ReceivedServerConnect(struct connectdata* conn, bool* received)
405 {
406 struct SessionHandle *data = conn->data;
407 curl_socket_t ctrl_sock = conn->sock[FIRSTSOCKET];
408 curl_socket_t data_sock = conn->sock[SECONDARYSOCKET];
409 struct ftp_conn *ftpc = &conn->proto.ftpc;
410 struct pingpong *pp = &ftpc->pp;
411 int result;
412 long timeout_ms;
413 ssize_t nread;
414 int ftpcode;
415
416 *received = FALSE;
417
418 timeout_ms = ftp_timeleft_accept(data);
419 infof(data, "Checking for server connect\n");
420 if(timeout_ms < 0) {
421 /* if a timeout was already reached, bail out */
422 failf(data, "Accept timeout occurred while waiting server connect");
423 return CURLE_FTP_ACCEPT_TIMEOUT;
424 }
425
426 /* First check whether there is a cached response from server */
427 if(pp->cache_size && pp->cache && pp->cache[0] > '3') {
428 /* Data connection could not be established, let's return */
429 infof(data, "There is negative response in cache while serv connect\n");
430 Curl_GetFTPResponse(&nread, conn, &ftpcode);
431 return CURLE_FTP_ACCEPT_FAILED;
432 }
433
434 result = Curl_socket_check(ctrl_sock, data_sock, CURL_SOCKET_BAD, 0);
435
436 /* see if the connection request is already here */
437 switch (result) {
438 case -1: /* error */
439 /* let's die here */
440 failf(data, "Error while waiting for server connect");
441 return CURLE_FTP_ACCEPT_FAILED;
442 case 0: /* Server connect is not received yet */
443 break; /* loop */
444 default:
445
446 if(result & CURL_CSELECT_IN2) {
447 infof(data, "Ready to accept data connection from server\n");
448 *received = TRUE;
449 }
450 else if(result & CURL_CSELECT_IN) {
451 infof(data, "Ctrl conn has data while waiting for data conn\n");
452 Curl_GetFTPResponse(&nread, conn, &ftpcode);
453
454 if(ftpcode/100 > 3)
455 return CURLE_FTP_ACCEPT_FAILED;
456
457 return CURLE_FTP_WEIRD_SERVER_REPLY;
458 }
459
460 break;
461 } /* switch() */
462
463 return CURLE_OK;
464 }
465
466
467 /***********************************************************************
468 *
469 * InitiateTransfer()
470 *
471 * After connection from server is accepted this function is called to
472 * setup transfer parameters and initiate the data transfer.
473 *
474 */
475 static CURLcode InitiateTransfer(struct connectdata *conn)
476 {
477 struct SessionHandle *data = conn->data;
478 struct FTP *ftp = data->state.proto.ftp;
479 CURLcode result = CURLE_OK;
480
481 if(conn->ssl[SECONDARYSOCKET].use) {
482 /* since we only have a plaintext TCP connection here, we must now
483 * do the TLS stuff */
484 infof(data, "Doing the SSL/TLS handshake on the data stream\n");
485 result = Curl_ssl_connect(conn, SECONDARYSOCKET);
486 if(result)
487 return result;
488 }
489
490 if(conn->proto.ftpc.state_saved == FTP_STOR) {
491 *(ftp->bytecountp)=0;
492
493 /* When we know we're uploading a specified file, we can get the file
494 size prior to the actual upload. */
495
496 Curl_pgrsSetUploadSize(data, data->set.infilesize);
497
498 /* set the SO_SNDBUF for the secondary socket for those who need it */
499 Curl_sndbufset(conn->sock[SECONDARYSOCKET]);
500
501 Curl_setup_transfer(conn, -1, -1, FALSE, NULL, /* no download */
502 SECONDARYSOCKET, ftp->bytecountp);
503 }
504 else {
505 /* FTP download: */
506 Curl_setup_transfer(conn, SECONDARYSOCKET,
507 conn->proto.ftpc.retr_size_saved, FALSE,
508 ftp->bytecountp, -1, NULL); /* no upload here */
509 }
510
511 conn->proto.ftpc.pp.pending_resp = TRUE; /* expect server response */
512 state(conn, FTP_STOP);
513
514 return CURLE_OK;
515 }
516
517 /***********************************************************************
518 *
519 * AllowServerConnect()
520 *
521 * When we've issue the PORT command, we have told the server to connect
522 * to us. This function
523 * - will sit and wait here until the server has connected for easy interface
524 * - will check whether data connection is established if so it is accepted
525 * for multi interface
526 *
527 */
528 static CURLcode AllowServerConnect(struct connectdata *conn, bool *connected)
529 {
530 struct SessionHandle *data = conn->data;
531 long timeout_ms;
532 long interval_ms;
533 CURLcode ret = CURLE_OK;
534
535 *connected = FALSE;
536 infof(data, "Preparing for accepting server on data port\n");
537
538 /* Save the time we start accepting server connect */
539 Curl_pgrsTime(data, TIMER_STARTACCEPT);
540
332541 for(;;) {
333 timeout_ms = Curl_timeleft(data, NULL, TRUE);
334
542 timeout_ms = ftp_timeleft_accept(data);
335543 if(timeout_ms < 0) {
336544 /* if a timeout was already reached, bail out */
337 failf(data, "Timeout while waiting for server connect");
338 return CURLE_OPERATION_TIMEDOUT;
339 }
340
341 interval_ms = 1000; /* use 1 second timeout intervals */
342 if(timeout_ms < interval_ms)
343 interval_ms = timeout_ms;
344
345 switch (Curl_socket_ready(sock, CURL_SOCKET_BAD, interval_ms)) {
346 case -1: /* error */
347 /* let's die here */
348 failf(data, "Error while waiting for server connect");
349 return CURLE_FTP_PORT_FAILED;
350 case 0: /* timeout */
351 break; /* loop */
352 default:
353 /* we have received data here */
354 if(0 == getsockname(sock, (struct sockaddr *) &add, &size)) {
355 size = sizeof(add);
356
357 s=accept(sock, (struct sockaddr *) &add, &size);
358 }
359 Curl_closesocket(conn, sock); /* close the first socket */
360
361 if(CURL_SOCKET_BAD == s) {
362 failf(data, "Error accept()ing server connect");
363 return CURLE_FTP_PORT_FAILED;
364 }
365 infof(data, "Connection accepted from server\n");
366
367 conn->sock[SECONDARYSOCKET] = s;
368 curlx_nonblock(s, TRUE); /* enable non-blocking */
369 return CURLE_OK;
370 } /* switch() */
371 }
372 /* never reaches this point */
545 failf(data, "Accept timeout occurred while waiting server connect");
546 return CURLE_FTP_ACCEPT_TIMEOUT;
547 }
548
549 /* see if the connection request is already here */
550 ret = ReceivedServerConnect(conn, connected);
551 if(ret)
552 return ret;
553
554 if(*connected) {
555 ret = AcceptServerConnect(conn);
556 if(ret)
557 return ret;
558
559 ret = InitiateTransfer(conn);
560 if(ret)
561 return ret;
562
563 break; /* connection is accepted, break the loop */
564 }
565 else {
566 if(data->state.used_interface == Curl_if_easy) {
567 interval_ms = 1000;
568 if(timeout_ms < interval_ms)
569 interval_ms = timeout_ms;
570
571 /* sleep for 1 second and then continue */
572 Curl_socket_ready(CURL_SOCKET_BAD, CURL_SOCKET_BAD, interval_ms);
573 }
574 else {
575 /* Add timeout to multi handle and break out of the loop */
576 if(ret == CURLE_OK && *connected == FALSE) {
577 if(data->set.accepttimeout > 0)
578 Curl_expire(data, data->set.accepttimeout);
579 else
580 Curl_expire(data, DEFAULT_ACCEPT_TIMEOUT);
581 }
582
583 break; /* connection was not accepted immediately */
584 }
585 }
586 }
587
588 return ret;
373589 }
374590
375591 /* macro to check for a three-digit ftp status code at the start of the
665881 }
666882
667883 socks[0] = conn->sock[SECONDARYSOCKET];
884 if(ftpc->wait_data_conn) {
885 socks[1] = conn->sock[FIRSTSOCKET];
886 return GETSOCK_READSOCK(0) | GETSOCK_READSOCK(1);
887 }
668888
669889 return GETSOCK_READSOCK(0);
670890 }
8991119 portsock = CURL_SOCKET_BAD;
9001120 error = 0;
9011121 for(ai = res; ai; ai = ai->ai_next) {
902 /*
903 * Workaround for AIX5 getaddrinfo() problem (it doesn't set ai_socktype):
904 */
905 if(ai->ai_socktype == 0)
906 ai->ai_socktype = conn->socktype;
907
908 portsock = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
909 if(portsock == CURL_SOCKET_BAD) {
1122 result = Curl_socket(conn, ai, NULL, &portsock);
1123 if(result) {
9101124 error = SOCKERRNO;
9111125 continue;
9121126 }
9381152 * the control connection instead and restart the port loop
9391153 */
9401154
941 infof(data, "bind(port=%hu) on non-local address failed: %s", port,
1155 infof(data, "bind(port=%hu) on non-local address failed: %s\n", port,
9421156 Curl_strerror(conn, error) );
9431157
9441158 sslen = sizeof(ss);
21562370 }
21572371
21582372 static CURLcode ftp_state_stor_resp(struct connectdata *conn,
2159 int ftpcode)
2373 int ftpcode, ftpstate instate)
21602374 {
21612375 CURLcode result = CURLE_OK;
21622376 struct SessionHandle *data = conn->data;
2163 struct FTP *ftp = data->state.proto.ftp;
21642377
21652378 if(ftpcode>=400) {
21662379 failf(data, "Failed FTP upload: %0d", ftpcode);
21682381 return CURLE_UPLOAD_FAILED;
21692382 }
21702383
2384 conn->proto.ftpc.state_saved = instate;
2385
2386 /* PORT means we are now awaiting the server to connect to us. */
21712387 if(data->set.ftp_use_port) {
2172 /* BLOCKING */
2173 /* PORT means we are now awaiting the server to connect to us. */
2174 result = AllowServerConnect(conn);
2388 bool connected;
2389
2390 result = AllowServerConnect(conn, &connected);
21752391 if(result)
21762392 return result;
2177 }
2178
2179 if(conn->ssl[SECONDARYSOCKET].use) {
2180 /* since we only have a plaintext TCP connection here, we must now
2181 do the TLS stuff */
2182 infof(data, "Doing the SSL/TLS handshake on the data stream\n");
2183 /* BLOCKING */
2184 result = Curl_ssl_connect(conn, SECONDARYSOCKET);
2185 if(result)
2186 return result;
2187 }
2188
2189 *(ftp->bytecountp)=0;
2190
2191 /* When we know we're uploading a specified file, we can get the file
2192 size prior to the actual upload. */
2193
2194 Curl_pgrsSetUploadSize(data, data->set.infilesize);
2195
2196 /* set the SO_SNDBUF for the secondary socket for those who need it */
2197 Curl_sndbufset(conn->sock[SECONDARYSOCKET]);
2198
2199 Curl_setup_transfer(conn, -1, -1, FALSE, NULL, /* no download */
2200 SECONDARYSOCKET, ftp->bytecountp);
2201 state(conn, FTP_STOP);
2202
2203 conn->proto.ftpc.pp.pending_resp = TRUE; /* expect a server response */
2204
2205 return result;
2393
2394 if(!connected) {
2395 struct ftp_conn *ftpc = &conn->proto.ftpc;
2396 infof(data, "Data conn was not available immediately\n");
2397 /* as there's not necessarily an immediate action on the control
2398 connection now, we halt the state machine */
2399 state(conn, FTP_STOP);
2400 ftpc->wait_data_conn = TRUE;
2401 }
2402
2403 return CURLE_OK;
2404 }
2405 else
2406 return InitiateTransfer(conn);
22062407 }
22072408
22082409 /* for LIST and RETR responses */
22832484 else if(ftp->downloadsize > -1)
22842485 size = ftp->downloadsize;
22852486
2286 if(data->set.ftp_use_port) {
2287 /* BLOCKING */
2288 result = AllowServerConnect(conn);
2289 if(result)
2290 return result;
2291 }
2292
2293 if(conn->ssl[SECONDARYSOCKET].use) {
2294 /* since we only have a plaintext TCP connection here, we must now
2295 do the TLS stuff */
2296 infof(data, "Doing the SSL/TLS handshake on the data stream\n");
2297 result = Curl_ssl_connect(conn, SECONDARYSOCKET);
2298 if(result)
2299 return result;
2300 }
2301
23022487 if(size > data->req.maxdownload && data->req.maxdownload > 0)
23032488 size = data->req.size = data->req.maxdownload;
23042489 else if((instate != FTP_LIST) && (data->set.prefer_ascii))
23102495 infof(data, "Getting file with size: %" FORMAT_OFF_T "\n", size);
23112496
23122497 /* FTP download: */
2313 Curl_setup_transfer(conn, SECONDARYSOCKET, size, FALSE,
2314 ftp->bytecountp, -1, NULL); /* no upload here */
2315
2316 conn->proto.ftpc.pp.pending_resp = TRUE; /* expect server response */
2317 state(conn, FTP_STOP);
2498 conn->proto.ftpc.state_saved = instate;
2499 conn->proto.ftpc.retr_size_saved = size;
2500
2501 if(data->set.ftp_use_port) {
2502 bool connected;
2503
2504 result = AllowServerConnect(conn, &connected);
2505 if(result)
2506 return result;
2507
2508 if(!connected) {
2509 struct ftp_conn *ftpc = &conn->proto.ftpc;
2510 infof(data, "Data conn was not available immediately\n");
2511 state(conn, FTP_STOP);
2512 ftpc->wait_data_conn = TRUE;
2513 }
2514 }
2515 else
2516 return InitiateTransfer(conn);
23182517 }
23192518 else {
23202519 if((instate == FTP_LIST) && (ftpcode == 450)) {
24622661 if(pp->sendleft)
24632662 return Curl_pp_flushsend(pp);
24642663
2465 /* we read a piece of response */
24662664 result = ftp_readresp(sock, pp, &ftpcode, &nread);
24672665 if(result)
24682666 return result;
28683066 break;
28693067
28703068 case FTP_STOR:
2871 result = ftp_state_stor_resp(conn, ftpcode);
3069 result = ftp_state_stor_resp(conn, ftpcode, ftpc->state);
28723070 break;
28733071
28743072 case FTP_QUIT:
30843282 case CURLE_BAD_DOWNLOAD_RESUME:
30853283 case CURLE_FTP_WEIRD_PASV_REPLY:
30863284 case CURLE_FTP_PORT_FAILED:
3285 case CURLE_FTP_ACCEPT_FAILED:
3286 case CURLE_FTP_ACCEPT_TIMEOUT:
30873287 case CURLE_FTP_COULDNT_SET_TYPE:
30883288 case CURLE_FTP_COULDNT_RETR_FILE:
3289 case CURLE_PARTIAL_FILE:
30893290 case CURLE_UPLOAD_FAILED:
30903291 case CURLE_REMOTE_ACCESS_DENIED:
30913292 case CURLE_FILESIZE_EXCEEDED:
34563657
34573658
34583659 /*
3459 * ftp_nextconnect()
3660 * ftp_do_more()
34603661 *
34613662 * This function shall be called when the second FTP (data) connection is
34623663 * connected.
34633664 */
34643665
3465 static CURLcode ftp_nextconnect(struct connectdata *conn)
3666 static CURLcode ftp_do_more(struct connectdata *conn, bool *complete)
34663667 {
34673668 struct SessionHandle *data=conn->data;
34683669 struct ftp_conn *ftpc = &conn->proto.ftpc;
34693670 CURLcode result = CURLE_OK;
3671 bool connected = FALSE;
34703672
34713673 /* the ftp struct is inited in ftp_connect() */
34723674 struct FTP *ftp = data->state.proto.ftp;
34733675
3474 DEBUGF(infof(data, "DO-MORE phase starts\n"));
3676 /* if the second connection isn't done yet, wait for it */
3677 if(!conn->bits.tcpconnect[SECONDARYSOCKET]) {
3678 result = Curl_is_connected(conn, SECONDARYSOCKET, &connected);
3679
3680 /* Ready to do more? */
3681 if(connected) {
3682 DEBUGF(infof(data, "DO-MORE connected phase starts\n"));
3683 }
3684 else
3685 return result;
3686 }
34753687
34763688 if(ftp->transfer <= FTPTRANSFER_INFO) {
34773689 /* a transfer is about to take place, or if not a file name was given
34783690 so we'll do a SIZE on it later and then we need the right TYPE first */
34793691
3480 if(data->set.upload) {
3692 if(ftpc->wait_data_conn == TRUE) {
3693 bool serv_conned;
3694
3695 result = ReceivedServerConnect(conn, &serv_conned);
3696 if(result)
3697 return result; /* Failed to accept data connection */
3698
3699 if(serv_conned) {
3700 /* It looks data connection is established */
3701 result = AcceptServerConnect(conn);
3702 ftpc->wait_data_conn = FALSE;
3703 if(result == CURLE_OK)
3704 result = InitiateTransfer(conn);
3705 }
3706 }
3707 else if(data->set.upload) {
34813708 result = ftp_nb_type(conn, data->set.prefer_ascii, FTP_STOR_TYPE);
34823709 if(result)
34833710 return result;
35163743 too! */
35173744 Curl_setup_transfer(conn, -1, -1, FALSE, NULL, -1, NULL);
35183745
3519 /* end of transfer */
3520 DEBUGF(infof(data, "DO-MORE phase ends with %d\n", (int)result));
3746 if(!ftpc->wait_data_conn) {
3747 /* no waiting for the data connection so this is now complete */
3748 *complete = TRUE;
3749 DEBUGF(infof(data, "DO-MORE phase ends with %d\n", (int)result));
3750 }
35213751
35223752 return result;
35233753 }
37974027 static CURLcode ftp_do(struct connectdata *conn, bool *done)
37984028 {
37994029 CURLcode retcode = CURLE_OK;
4030 struct ftp_conn *ftpc = &conn->proto.ftpc;
38004031
38014032 *done = FALSE; /* default to false */
4033 ftpc->wait_data_conn = FALSE; /* default to no such wait */
38024034
38034035 /*
38044036 Since connections can be re-used between SessionHandles, this might be a
41684400 struct FTP *ftp = conn->data->state.proto.ftp;
41694401 struct ftp_conn *ftpc = &conn->proto.ftpc;
41704402
4171 if(connected)
4172 result = ftp_nextconnect(conn);
4403 if(connected) {
4404 bool completed;
4405 result = ftp_do_more(conn, &completed);
4406 }
41734407
41744408 if(result && (conn->sock[SECONDARYSOCKET] != CURL_SOCKET_BAD)) {
41754409 /* Failure detected, close the second socket if it was created already */
138138 already has been done */
139139 bool cwdfail; /* set TRUE if a CWD command fails, as then we must prevent
140140 caching the current directory */
141 bool wait_data_conn; /* this is set TRUE if data connection is waited */
141142 char *prevpath; /* conn->path from the previous transfer */
142143 char transfertype; /* set by ftp_transfertype for use by Curl_client_write()a
143144 and others (A/I or zero) */
145146 int count2; /* general purpose counter for the state machine */
146147 int count3; /* general purpose counter for the state machine */
147148 ftpstate state; /* always use ftp.c:state() to change state! */
149 ftpstate state_saved; /* transfer type saved to be reloaded after
150 data connection is established */
151 curl_off_t retr_size_saved; /* Size of retrieved file saved */
148152 char * server_os; /* The target server operating system. */
149153 curl_off_t known_filesize; /* file size is different from -1, if wildcard
150154 LIST parsing was done and wc_statemach set
151155 it */
152156 };
153157
158 #define DEFAULT_ACCEPT_TIMEOUT 60000 /* milliseconds == one minute */
159
154160 #endif /* HEADER_CURL_FTP_H */
4545
4646 pro->t_nslookup = 0;
4747 pro->t_connect = 0;
48 pro->t_appconnect = 0;
4849 pro->t_pretransfer = 0;
4950 pro->t_starttransfer = 0;
5051 pro->timespent = 0;
44 * | (__| |_| | _ <| |___
55 * \___|\___/|_| \_\_____|
66 *
7 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
7 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
88 *
99 * This software is licensed as described in the file COPYING, which
1010 * you should have received as part of this distribution. The terms
3333
3434 #include <gnutls/gnutls.h>
3535 #include <gnutls/x509.h>
36 #ifndef USE_GNUTLS_NETTLE
3637 #include <gcrypt.h>
38 #endif
3739
3840 #ifdef HAVE_SYS_SOCKET_H
3941 #include <sys/socket.h>
8486 # define USE_GNUTLS_PRIORITY_SET_DIRECT 1
8587 # endif
8688 # if (GNUTLS_VERSION_NUMBER >= 0x020c03)
87 # undef gnutls_transport_set_global_errno
88 # define gnutls_transport_set_global_errno(A) SET_ERRNO((A))
89 # define GNUTLS_MAPS_WINSOCK_ERRORS 1
8990 # endif
9091 #endif
9192
106107 * resort global errno variable using gnutls_transport_set_global_errno,
107108 * with a transport agnostic error value. This implies that some winsock
108109 * error translation must take place in these callbacks.
110 *
111 * Paragraph above applies to GNU TLS versions older than 2.12.3, since
112 * this version GNU TLS does its own internal winsock error translation
113 * using system_errno() function.
109114 */
110115
111 #ifdef USE_WINSOCK
116 #if defined(USE_WINSOCK) && !defined(GNUTLS_MAPS_WINSOCK_ERRORS)
112117 # define gtls_EINTR 4
113118 # define gtls_EIO 5
114119 # define gtls_EAGAIN 11
129134 static ssize_t Curl_gtls_push(void *s, const void *buf, size_t len)
130135 {
131136 ssize_t ret = swrite(GNUTLS_POINTER_TO_INT_CAST(s), buf, len);
132 #ifdef USE_WINSOCK
137 #if defined(USE_WINSOCK) && !defined(GNUTLS_MAPS_WINSOCK_ERRORS)
133138 if(ret < 0)
134139 gnutls_transport_set_global_errno(gtls_mapped_sockerrno());
135140 #endif
139144 static ssize_t Curl_gtls_pull(void *s, void *buf, size_t len)
140145 {
141146 ssize_t ret = sread(GNUTLS_POINTER_TO_INT_CAST(s), buf, len);
142 #ifdef USE_WINSOCK
147 #if defined(USE_WINSOCK) && !defined(GNUTLS_MAPS_WINSOCK_ERRORS)
143148 if(ret < 0)
144149 gnutls_transport_set_global_errno(gtls_mapped_sockerrno());
145150 #endif
197202 tm->tm_hour,
198203 tm->tm_min,
199204 tm->tm_sec);
200 infof(data, "%s", data->state.buffer);
205 infof(data, "%s\n", data->state.buffer);
201206 }
202207
203208 static gnutls_datum load_file (const char *file)
447452 rc = gnutls_protocol_set_priority(session, protocol_priority);
448453 #else
449454 const char *err;
450 rc = gnutls_priority_set_direct(session, "-VERS-TLS-ALL:+VERS-SSL3.0",
455 /* the combination of the cipher ARCFOUR with SSL 3.0 and TLS 1.0 is not
456 vulnerable to attacks such as the BEAST, why this code now explicitly
457 asks for that
458 */
459 rc = gnutls_priority_set_direct(session,
460 "NORMAL:-VERS-TLS-ALL:+VERS-SSL3.0:"
461 "-CIPHER-ALL:+ARCFOUR-128",
451462 &err);
452463 #endif
453464 if(rc != GNUTLS_E_SUCCESS)
10311042 static bool ssl_seeded = FALSE;
10321043
10331044 /* Quickly add a bit of entropy */
1045 #ifndef USE_GNUTLS_NETTLE
10341046 gcry_fast_random_poll();
1047 #endif
10351048
10361049 if(!ssl_seeded || data->set.str[STRING_SSL_RANDOM_FILE] ||
10371050 data->set.str[STRING_SSL_EGDSOCKET]) {
263263 struct curl_llist *list;
264264 int i;
265265
266 if(!h)
267 return;
268
266269 for(i = 0; i < h->slots; ++i) {
267270 list = h->table[i];
268271 le = list->head; /* get first list entry */
200200 }
201201
202202 /*
203 * Return a hostcache id string for the providing host + port, to be used by
203 * Return a hostcache id string for the provided host + port, to be used by
204204 * the DNS caching.
205205 */
206206 static char *
207 create_hostcache_id(const char *server, int port)
207 create_hostcache_id(const char *name, int port)
208208 {
209209 /* create and return the new allocated entry */
210 return aprintf("%s:%d", server, port);
210 char *id = aprintf("%s:%d", name, port);
211 char *ptr = id;
212 if(ptr) {
213 /* lower case the name part */
214 while(*ptr && (*ptr != ':')) {
215 *ptr = (char)TOLOWER(*ptr);
216 ptr++;
217 }
218 }
219 return id;
211220 }
212221
213222 struct hostcache_prune_data {
720729 return Curl_hash_alloc(7, Curl_hash_str, Curl_str_key_compare, freednsentry);
721730 }
722731
723
732 static int hostcache_inuse(void *data, void *hc)
733 {
734 struct Curl_dns_entry *c = (struct Curl_dns_entry *) hc;
735
736 if(c->inuse == 1)
737 Curl_resolv_unlock(data, c);
738
739 return 1; /* free all entries */
740 }
741
742 void Curl_hostcache_destroy(struct SessionHandle *data)
743 {
744 /* Entries added to the hostcache with the CURLOPT_RESOLVE function are
745 * still present in the cache with the inuse counter set to 1. Detect them
746 * and cleanup!
747 */
748 Curl_hash_clean_with_criterium(data->dns.hostcache, data, hostcache_inuse);
749
750 Curl_hash_destroy(data->dns.hostcache);
751 data->dns.hostcachetype = HCACHE_NONE;
752 data->dns.hostcache = NULL;
753 }
754
755 CURLcode Curl_loadhostpairs(struct SessionHandle *data)
756 {
757 struct curl_slist *hostp;
758 char hostname[256];
759 char address[256];
760 int port;
761
762 for(hostp = data->change.resolve; hostp; hostp = hostp->next ) {
763 if(!hostp->data)
764 continue;
765 if(hostp->data[0] == '-') {
766 /* TODO: mark an entry for removal */
767 }
768 else if(3 == sscanf(hostp->data, "%255[^:]:%d:%255s", hostname, &port,
769 address)) {
770 struct Curl_dns_entry *dns;
771 Curl_addrinfo *addr;
772 char *entry_id;
773 size_t entry_len;
774
775 addr = Curl_str2addr(address, port);
776 if(!addr) {
777 infof(data, "Resolve %s found illegal!\n", hostp->data);
778 continue;
779 }
780
781 /* Create an entry id, based upon the hostname and port */
782 entry_id = create_hostcache_id(hostname, port);
783 /* If we can't create the entry id, fail */
784 if(!entry_id) {
785 Curl_freeaddrinfo(addr);
786 return CURLE_OUT_OF_MEMORY;
787 }
788
789 entry_len = strlen(entry_id);
790
791 if(data->share)
792 Curl_share_lock(data, CURL_LOCK_DATA_DNS, CURL_LOCK_ACCESS_SINGLE);
793
794 /* See if its already in our dns cache */
795 dns = Curl_hash_pick(data->dns.hostcache, entry_id, entry_len+1);
796
797 /* free the allocated entry_id again */
798 free(entry_id);
799
800 if(!dns)
801 /* if not in the cache already, put this host in the cache */
802 dns = Curl_cache_addr(data, addr, hostname, port);
803 else
804 /* this is a duplicate, free it again */
805 Curl_freeaddrinfo(addr);
806
807 if(data->share)
808 Curl_share_unlock(data, CURL_LOCK_DATA_DNS);
809
810 if(!dns) {
811 Curl_freeaddrinfo(addr);
812 return CURLE_OUT_OF_MEMORY;
813 }
814 infof(data, "Added %s:%d:%s to DNS cache\n",
815 hostname, port, address);
816 }
817 }
818 data->change.resolve = NULL; /* dealt with now */
819
820 return CURLE_OK;
821 }
194194 extern sigjmp_buf curl_jmpenv;
195195 #endif
196196
197 /*
198 * Function provided by the resolver backend to set DNS servers to use.
199 */
200 CURLcode Curl_set_dns_servers(struct SessionHandle *data, char *servers);
201
202 /*
203 * Destroy the hostcache of this handle.
204 */
205 void Curl_hostcache_destroy(struct SessionHandle *data);
206
207 CURLcode Curl_loadhostpairs(struct SessionHandle *data);
208
197209 #endif /* HEADER_CURL_HOSTIP_H */
44 * | (__| |_| | _ <| |___
55 * \___|\___/|_| \_\_____|
66 *
7 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
7 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
88 *
99 * This software is licensed as described in the file COPYING, which
1010 * you should have received as part of this distribution. The terms
118118 #endif /* CURLRES_SYNCH */
119119 #endif /* CURLRES_IPV4 */
120120
121 #if defined(CURLRES_IPV4) && !defined(CURLRES_ARES)
122
121123 /*
122124 * Curl_ipv4_resolve_r() - ipv4 threadsafe resolver function.
123125 *
310312
311313 return ai;
312314 }
315 #endif /* defined(CURLRES_IPV4) && !defined(CURLRES_ARES) */
6565 **********************************************************************/
6666 #ifdef CURLRES_SYNCH
6767
68 /*
69 * Function provided by the resolver backend to set DNS servers to use.
70 */
71 CURLcode Curl_set_dns_servers(struct SessionHandle *data,
72 char *servers)
73 {
74 (void)data;
75 (void)servers;
76 return CURLE_NOT_BUILT_IN;
77
78 }
6879
6980 #endif /* truly sync */
44 * | (__| |_| | _ <| |___
55 * \___|\___/|_| \_\_____|
66 *
7 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
7 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
88 *
99 * This software is licensed as described in the file COPYING, which
1010 * you should have received as part of this distribution. The terms
123123 gss_release_buffer(&min_stat, &status_string);
124124 } while(!GSS_ERROR(maj_stat) && msg_ctx != 0);
125125
126 infof(conn->data, "%s", buf);
126 infof(conn->data, "%s\n", buf);
127127 }
128128
129129 /* returning zero (0) means success, everything else is treated as "failure"
44 * | (__| |_| | _ <| |___
55 * \___|\___/|_| \_\_____|
66 *
7 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
7 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
88 *
99 * This software is licensed as described in the file COPYING, which
1010 * you should have received as part of this distribution. The terms
2828 #include "urldata.h"
2929 #include "sendf.h"
3030 #include "rawstr.h"
31 #include "warnless.h"
3132 #include "curl_base64.h"
3233 #include "http_negotiate.h"
3334 #include "curl_memory.h"
188189 out_buff_desc.cBuffers = 1;
189190 out_buff_desc.pBuffers = &out_sec_buff;
190191
191 out_sec_buff.cbBuffer = neg_ctx->max_token_length;
192 out_sec_buff.cbBuffer = curlx_uztoul(neg_ctx->max_token_length);
192193 out_sec_buff.BufferType = SECBUFFER_TOKEN;
193194 out_sec_buff.pvBuffer = neg_ctx->output_token;
194195
196197 if(input_token) {
197198 in_buff_desc.ulVersion = 0;
198199 in_buff_desc.cBuffers = 1;
199 in_buff_desc.pBuffers = &out_sec_buff;
200
201 in_sec_buff.cbBuffer = input_token_len;
200 in_buff_desc.pBuffers = &in_sec_buff;
201
202 in_sec_buff.cbBuffer = curlx_uztoul(input_token_len);
202203 in_sec_buff.BufferType = SECBUFFER_TOKEN;
203204 in_sec_buff.pvBuffer = input_token;
204205 }
44 * | (__| |_| | _ <| |___
55 * \___|\___/|_| \_\_____|
66 *
7 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
7 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
88 *
99 * This software is licensed as described in the file COPYING, which
1010 * you should have received as part of this distribution. The terms
201201 else {
202202 DEBUGF(infof(data,
203203 "Multi mode finished polling for response from "
204 "proxy CONNECT."));
204 "proxy CONNECT\n"));
205205 }
206206 }
207207 else {
208 DEBUGF(infof(data, "Easy mode waiting response from proxy CONNECT."));
208 DEBUGF(infof(data, "Easy mode waiting response from proxy CONNECT\n"));
209209 }
210210
211211 /* at this point, either:
408408 keepon=FALSE;
409409 }
410410 }
411 else
411 else {
412412 keepon = FALSE;
413 if(200 == data->info.httpproxycode) {
414 if(gotbytes - (i+1))
415 failf(data, "Proxy CONNECT followed by %zd bytes "
416 "of opaque data. Data ignored (known bug #39)",
417 gotbytes - (i+1));
418 }
419 }
413420 break; /* breaks out of for-loop, not switch() */
414421 }
415422
7070
7171 #if defined(HAVE_GETIFADDRS)
7272
73 char *Curl_if2ip(int af, const char *interface, char *buf, int buf_size)
73 bool Curl_if_is_interface_name(const char *interf)
74 {
75 bool result = FALSE;
76
77 struct ifaddrs *iface, *head;
78
79 if(getifaddrs(&head) >= 0) {
80 for(iface=head; iface != NULL; iface=iface->ifa_next) {
81 if(curl_strequal(iface->ifa_name, interf)) {
82 result = TRUE;
83 break;
84 }
85 }
86 freeifaddrs(head);
87 }
88 return result;
89 }
90
91 char *Curl_if2ip(int af, const char *interf, char *buf, int buf_size)
7492 {
7593 struct ifaddrs *iface, *head;
76 char *ip=NULL;
94 char *ip = NULL;
7795
7896 if(getifaddrs(&head) >= 0) {
7997 for(iface=head; iface != NULL; iface=iface->ifa_next) {
8098 if((iface->ifa_addr != NULL) &&
8199 (iface->ifa_addr->sa_family == af) &&
82 curl_strequal(iface->ifa_name, interface)) {
100 curl_strequal(iface->ifa_name, interf)) {
83101 void *addr;
84102 char scope[12]="";
85103 #ifdef ENABLE_IPV6
108126
109127 #elif defined(HAVE_IOCTL_SIOCGIFADDR)
110128
111 char *Curl_if2ip(int af, const char *interface, char *buf, int buf_size)
129 bool Curl_if_is_interface_name(const char *interf)
130 {
131 /* This is here just to support the old interfaces */
132 char buf[256];
133
134 char *ip = Curl_if2ip(AF_INET, interf, buf, sizeof(buf));
135
136 return (ip != NULL) ? TRUE : FALSE;
137 }
138
139 char *Curl_if2ip(int af, const char *interf, char *buf, int buf_size)
112140 {
113141 struct ifreq req;
114142 struct in_addr in;
117145 size_t len;
118146 char *ip;
119147
120 if(!interface || (af != AF_INET))
148 if(!interf || (af != AF_INET))
121149 return NULL;
122150
123 len = strlen(interface);
151 len = strlen(interf);
124152 if(len >= sizeof(req.ifr_name))
125153 return NULL;
126154
129157 return NULL;
130158
131159 memset(&req, 0, sizeof(req));
132 memcpy(req.ifr_name, interface, len+1);
160 memcpy(req.ifr_name, interf, len+1);
133161 req.ifr_addr.sa_family = AF_INET;
134162
135163 if(ioctl(dummy, SIOCGIFADDR, &req) < 0) {
147175
148176 #else
149177
178 bool Curl_if_is_interface_name(const char *interf)
179 {
180 (void) interf;
181
182 return FALSE;
183 }
184
150185 char *Curl_if2ip(int af, const char *interf, char *buf, int buf_size)
151186 {
152187 (void) af;
0 #ifndef __IF2IP_H
1 #define __IF2IP_H
0 #ifndef HEADER_CURL_IF2IP_H
1 #define HEADER_CURL_IF2IP_H
22 /***************************************************************************
33 * _ _ ____ _
44 * Project ___| | | | _ \| |
66 * | (__| |_| | _ <| |___
77 * \___|\___/|_| \_\_____|
88 *
9 * Copyright (C) 1998 - 2005, Daniel Stenberg, <daniel@haxx.se>, et al.
9 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
1010 *
1111 * This software is licensed as described in the file COPYING, which
1212 * you should have received as part of this distribution. The terms
2222 ***************************************************************************/
2323 #include "setup.h"
2424
25 extern char *Curl_if2ip(int af, const char *interf, char *buf, int buf_size);
25 bool Curl_if_is_interface_name(const char *interf);
26 char *Curl_if2ip(int af, const char *interf, char *buf, int buf_size);
2627
2728 #ifdef __INTERIX
2829 #include <sys/socket.h>
6162 #define SIOCGIFADDR _IOW('s', 102, struct ifreq) /* Get if addr */
6263 #endif /* interix */
6364
64 #endif
65 #endif /* HEADER_CURL_IF2IP_H */
124124 ZERO_NULL, /* readwrite */
125125 PORT_IMAP, /* defport */
126126 CURLPROTO_IMAP, /* protocol */
127 PROTOPT_CLOSEACTION | PROTOPT_NEEDSPWD /* flags */
127 PROTOPT_CLOSEACTION | PROTOPT_NEEDSPWD
128 | PROTOPT_NOURLQUERY /* flags */
128129 };
129130
130131
150151 ZERO_NULL, /* readwrite */
151152 PORT_IMAPS, /* defport */
152153 CURLPROTO_IMAP | CURLPROTO_IMAPS, /* protocol */
153 PROTOPT_CLOSEACTION | PROTOPT_SSL | PROTOPT_NEEDSPWD /* flags */
154 PROTOPT_CLOSEACTION | PROTOPT_SSL | PROTOPT_NEEDSPWD
155 | PROTOPT_NOURLQUERY /* flags */
154156 };
155157 #endif
156158
351353 (void)instate; /* no use for this yet */
352354
353355 if(imapcode != 'O') {
354 failf(data, "STARTTLS denied. %c", imapcode);
355 result = CURLE_LOGIN_DENIED;
356 if(data->set.use_ssl != CURLUSESSL_TRY) {
357 failf(data, "STARTTLS denied. %c", imapcode);
358 result = CURLE_USE_SSL_FAILED;
359 }
360 else
361 result = imap_state_login(conn);
356362 }
357363 else {
358364 if(data->state.used_interface == Curl_if_multi) {
946952 struct imap_conn *imapc = &conn->proto.imapc;
947953 struct SessionHandle *data = conn->data;
948954 const char *path = data->state.path;
949 int len;
950955
951956 if(!*path)
952957 path = "INBOX";
953958
954959 /* url decode the path and use this mailbox */
955 imapc->mailbox = curl_easy_unescape(data, path, 0, &len);
956 if(!imapc->mailbox)
957 return CURLE_OUT_OF_MEMORY;
958
959 return CURLE_OK;
960 return Curl_urldecode(data, path, 0, &imapc->mailbox, NULL, TRUE);
960961 }
961962
962963 /* call this when the DO phase has completed */
11 *
22 * Copyright (c) 1995, 1996, 1997, 1998, 1999 Kungliga Tekniska Högskolan
33 * (Royal Institute of Technology, Stockholm, Sweden).
4 * Copyright (c) 2004 - 2011 Daniel Stenberg
4 * Copyright (c) 2004 - 2012 Daniel Stenberg
55 * All rights reserved.
66 *
77 * Redistribution and use in source and binary forms, with or without
312312
313313 static void krb5_end(void *app_data)
314314 {
315 OM_uint32 maj, min;
315 OM_uint32 min;
316316 gss_ctx_id_t *context = app_data;
317317 if(*context != GSS_C_NO_CONTEXT) {
318 maj = gss_delete_sec_context(&min, context, GSS_C_NO_BUFFER);
318 #ifdef DEBUGBUILD
319 OM_uint32 maj =
320 #endif
321 gss_delete_sec_context(&min, context, GSS_C_NO_BUFFER);
319322 DEBUGASSERT(maj == GSS_S_COMPLETE);
320323 }
321324 }
22 <plist version="0.9">
33 <dict>
44 <key>CFBundleInfoDictionaryVersion</key>
5 <string>6.0</string>
6
5 <string>6.0</string>
6
77 <key>CFBundleDevelopmentRegion</key>
88 <string>English</string>
9
9
1010 <key>CFBundleExecutable</key>
1111 <string>curl</string>
12
12
1313 <key>CFBundleIdentifier</key>
1414 <string>com.libcurl.libcurl</string>
15
15
1616 <key>CFBundleVersion</key>
17 <string>7.23.1</string>
17 <string>7.24.0</string>
1818
1919 <key>CFBundleName</key>
2020 <string>libcurl</string>
2121
2222 <key>CFBundlePackageType</key>
23 <string>FMWK</string>
24
23 <string>FMWK</string>
24
2525 <key>CFBundleSignature</key>
26 <string>????</string>
27
26 <string>????</string>
27
2828 <key>CFBundleShortVersionString</key>
29 <string>libcurl 7.23.1</string>
30
29 <string>libcurl 7.24.0</string>
30
3131 <key>CFBundleGetInfoString</key>
32 <string>libcurl.plist 7.23.1</string>
32 <string>libcurl.plist 7.24.0</string>
3333 </dict>
34 </plist>
34 </plist>
0 HIDDEN
1 {
2 local:
3 __*;
4 _rest*;
5 _save*;
6 };
7
8 CURL_@VERSIONED_FLAVOUR@4
9 {
10 global: curl_*;
11 local: *;
12 };
2626 #include "curl_md5.h"
2727 #include "curl_hmac.h"
2828
29 #ifdef USE_GNUTLS_NETTLE
30
31 #include <nettle/md5.h>
32
33 typedef struct md5_ctx MD5_CTX;
34
35 static void MD5_Init(MD5_CTX * ctx)
36 {
37 md5_init(ctx);
38 }
39
40 static void MD5_Update(MD5_CTX * ctx,
41 const unsigned char * input,
42 unsigned int inputLen)
43 {
44 md5_update(ctx, inputLen, input);
45 }
46
47 static void MD5_Final(unsigned char digest[16], MD5_CTX * ctx)
48 {
49 md5_digest(ctx, 16, digest);
50 }
51 #else
52
2953 #ifdef USE_GNUTLS
3054
3155 #include <gcrypt.h>
368392
369393 #endif /* USE_GNUTLS */
370394
395 #endif /* USE_GNUTLS_NETTLE */
396
371397 const HMAC_params Curl_HMAC_MD5[] = {
372398 {
373399 (HMAC_hinit_func) MD5_Init, /* Hash initialization function. */
10841084 /* check if we have the name resolved by now */
10851085 easy->result = Curl_resolver_is_resolved(easy->easy_conn, &dns);
10861086
1087 /* Update sockets here, because the socket(s) may have been
1088 closed and the application thus needs to be told, even if it
1089 is likely that the same socket(s) will again be used further
1090 down. If the name has not yet been resolved, it is likely
1091 that new sockets have been opened in an attempt to contact
1092 another resolver. */
1093 singlesocket(multi, easy);
1094
10871095 if(dns) {
1088 /* Update sockets here. Mainly because the socket(s) may have been
1089 closed and the application thus needs to be told, even if it is
1090 likely that the same socket(s) will again be used further down. */
1091 singlesocket(multi, easy);
1092
10931096 /* Perform the next step in the connection phase, and then move on
10941097 to the WAITCONNECT state */
10951098 easy->result = Curl_async_resolved(easy->easy_conn,
12351238 easy->easy_conn->bits.close = FALSE;
12361239 multistate(easy, CURLM_STATE_DONE);
12371240 easy->result = CURLE_OK;
1238 result = CURLM_OK;
1241 result = CURLM_CALL_MULTI_PERFORM;
12391242 }
12401243 else {
12411244 /* Perform the protocol's DO action */
13571360 break;
13581361
13591362 case CURLM_STATE_DO_MORE:
1360 /* Ready to do more? */
1361 easy->result = Curl_is_connected(easy->easy_conn,
1362 SECONDARYSOCKET,
1363 &connected);
1364 if(connected) {
1365 /*
1366 * When we are connected, DO MORE and then go DO_DONE
1367 */
1368 easy->result = Curl_do_more(easy->easy_conn);
1369
1370 /* No need to remove ourselves from the send pipeline here since that
1371 is done for us in Curl_done() */
1372
1373 if(CURLE_OK == easy->result) {
1363 /*
1364 * When we are connected, DO MORE and then go DO_DONE
1365 */
1366 easy->result = Curl_do_more(easy->easy_conn, &dophase_done);
1367
1368 /* No need to remove this handle from the send pipeline here since that
1369 is done in Curl_done() */
1370 if(CURLE_OK == easy->result) {
1371 if(dophase_done) {
13741372 multistate(easy, CURLM_STATE_DO_DONE);
13751373 result = CURLM_CALL_MULTI_PERFORM;
13761374 }
1377 else {
1378 /* failure detected */
1379 Curl_posttransfer(data);
1380 Curl_done(&easy->easy_conn, easy->result, FALSE);
1381 disconnect_conn = TRUE;
1382 }
1375 else
1376 /* stay in DO_MORE */
1377 result = CURLM_OK;
1378 }
1379 else {
1380 /* failure detected */
1381 Curl_posttransfer(data);
1382 Curl_done(&easy->easy_conn, easy->result, FALSE);
1383 disconnect_conn = TRUE;
13831384 }
13841385 break;
13851386
19361937 }
19371938
19381939 /* we know (entry != NULL) at this point, see the logic above */
1939 multi->socket_cb(easy->easy_handle,
1940 s,
1941 action,
1942 multi->socket_userp,
1943 entry->socketp);
1940 if(multi->socket_cb)
1941 multi->socket_cb(easy->easy_handle,
1942 s,
1943 action,
1944 multi->socket_userp,
1945 entry->socketp);
19441946
19451947 entry->action = action; /* store the current action state */
19461948 }
20152017 remove_sock_from_hash = FALSE;
20162018
20172019 if(remove_sock_from_hash) {
2018 multi->socket_cb(easy->easy_handle,
2019 s,
2020 CURL_POLL_REMOVE,
2021 multi->socket_userp,
2022 entry ? entry->socketp : NULL);
2020 if(multi->socket_cb)
2021 multi->socket_cb(easy->easy_handle,
2022 s,
2023 CURL_POLL_REMOVE,
2024 multi->socket_userp,
2025 entry ? entry->socketp : NULL);
20232026 sh_delentry(multi->sockhash, s);
20242027 }
20252028
55 * \___|\___/|_| \_\_____|
66 *
77 * Copyright (C) 2010, Howard Chu, <hyc@openldap.org>
8 * Copyright (C) 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
8 * Copyright (C) 2011 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
99 *
1010 * This software is licensed as described in the file COPYING, which
1111 * you should have received as part of this distribution. The terms
335335 int proto;
336336 ldap_get_option(li->ld, LDAP_OPT_PROTOCOL_VERSION, &proto);
337337 if(proto == LDAP_VERSION3) {
338 ldap_memfree(info);
338 if(info) {
339 ldap_memfree(info);
340 info = NULL;
341 }
339342 proto = LDAP_VERSION2;
340343 ldap_set_option(li->ld, LDAP_OPT_PROTOCOL_VERSION, &proto);
341344 li->didbind = FALSE;
346349 if(err) {
347350 failf(data, "LDAP remote: bind failed %s %s", ldap_err2string(rc),
348351 info ? info : "");
352 if(info)
353 ldap_memfree(info);
349354 return CURLE_LOGIN_DENIED;
350355 }
356
357 if(info)
358 ldap_memfree(info);
351359 conn->recv[FIRSTSOCKET] = ldap_recv;
352360 *done = TRUE;
353361 return CURLE_OK;
6464 /* The last #include file should be: */
6565 #include "memdebug.h"
6666
67 /* version dependent differences */
68 #if POLARSSL_VERSION_NUMBER < 0x01010000
69 /* the old way */
70 #define HAVEGE_RANDOM havege_rand
71 #else
72 /* from 1.1.0 */
73 #define HAVEGE_RANDOM havege_random
74 #endif
75
6776 /* Define this to enable lots of debugging for PolarSSL */
6877 #undef POLARSSL_DEBUG
6978
127136
128137 if(ret) {
129138 failf(data, "Error reading ca cert file %s: -0x%04X",
130 data->set.str[STRING_SSL_CAFILE], -ret);
139 data->set.str[STRING_SSL_CAFILE], ret);
131140
132141 if(data->set.ssl.verifypeer)
133142 return CURLE_SSL_CACERT_BADFILE;
188197 ssl_set_endpoint(&conn->ssl[sockindex].ssl, SSL_IS_CLIENT);
189198 ssl_set_authmode(&conn->ssl[sockindex].ssl, SSL_VERIFY_OPTIONAL);
190199
191 ssl_set_rng(&conn->ssl[sockindex].ssl, havege_rand,
200 ssl_set_rng(&conn->ssl[sockindex].ssl, HAVEGE_RANDOM,
192201 &conn->ssl[sockindex].hs);
193202 ssl_set_bio(&conn->ssl[sockindex].ssl,
194203 net_recv, &conn->sock[sockindex],
266275
267276 infof(data, "PolarSSL: Handshake complete, cipher is %s\n",
268277 #if POLARSSL_VERSION_NUMBER<0x01000000
269 ssl_get_cipher(&conn->ssl[sockindex].ssl));
278 ssl_get_cipher(&conn->ssl[sockindex].ssl)
279 #elif POLARSSL_VERSION_NUMBER >= 0x01010000
280 ssl_get_ciphersuite(&conn->ssl[sockindex].ssl)
270281 #else
271 ssl_get_ciphersuite_name(&conn->ssl[sockindex].ssl));
272 #endif
282 ssl_get_ciphersuite_name(&conn->ssl[sockindex].ssl)
283 #endif
284 );
273285
274286 ret = ssl_get_verify_result(&conn->ssl[sockindex].ssl);
275287
124124 ZERO_NULL, /* readwrite */
125125 PORT_POP3, /* defport */
126126 CURLPROTO_POP3, /* protocol */
127 PROTOPT_CLOSEACTION /* flags */
127 PROTOPT_CLOSEACTION | PROTOPT_NOURLQUERY /* flags */
128128 };
129129
130130
150150 ZERO_NULL, /* readwrite */
151151 PORT_POP3S, /* defport */
152152 CURLPROTO_POP3 | CURLPROTO_POP3S, /* protocol */
153 PROTOPT_CLOSEACTION | PROTOPT_SSL /* flags */
153 PROTOPT_CLOSEACTION | PROTOPT_SSL
154 | PROTOPT_NOURLQUERY /* flags */
154155 };
155156 #endif
156157
296297 (void)instate; /* no use for this yet */
297298
298299 if(pop3code != 'O') {
299 failf(data, "STARTTLS denied. %c", pop3code);
300 result = CURLE_LOGIN_DENIED;
301 state(conn, POP3_STOP);
300 if(data->set.use_ssl != CURLUSESSL_TRY) {
301 failf(data, "STARTTLS denied. %c", pop3code);
302 result = CURLE_USE_SSL_FAILED;
303 state(conn, POP3_STOP);
304 }
305 else
306 result = pop3_state_user(conn);
302307 }
303308 else {
304309 /* Curl_ssl_connect is BLOCKING */
419424 return CURLE_RECV_ERROR;
420425 }
421426
427 /* This 'OK' line ends with a CR LF pair which is the two first bytes of the
428 EOB string so count this is two matching bytes. This is necessary to make
429 the code detect the EOB if the only data than comes now is %2e CR LF like
430 when there is no body to return. */
431 pop3c->eob = 2;
432
433 /* But since this initial CR LF pair is not part of the actual body, we set
434 the strip counter here so that these bytes won't be delivered. */
435 pop3c->strip = 2;
436
422437 /* POP3 download */
423438 Curl_setup_transfer(conn, FIRSTSOCKET, -1, FALSE, pop3->bytecountp,
424439 -1, NULL); /* no upload here */
898913 const char *path = data->state.path;
899914
900915 /* url decode the path and use this mailbox */
901 pop3c->mailbox = curl_easy_unescape(data, path, 0, NULL);
902 if(!pop3c->mailbox)
903 return CURLE_OUT_OF_MEMORY;
904
905 return CURLE_OK;
916 return Curl_urldecode(data, path, 0, &pop3c->mailbox, NULL, TRUE);
906917 }
907918
908919 /* call this when the DO phase has completed */
10241035 size_t nread)
10251036 {
10261037 /* This code could be made into a special function in the handler struct. */
1027 CURLcode result;
1038 CURLcode result = CURLE_OK;
10281039 struct SessionHandle *data = conn->data;
10291040 struct SingleRequest *k = &data->req;
10301041
1031 /* Detect the end-of-body marker, which is 5 bytes:
1032 0d 0a 2e 0d 0a. This marker can of course be spread out
1033 over up to 5 different data chunks. Deal with it! */
1034 struct pop3_conn *pop3c = &conn->proto.pop3c;
1035 size_t checkmax = (nread >= POP3_EOB_LEN?POP3_EOB_LEN:nread);
1036 size_t checkleft = POP3_EOB_LEN-pop3c->eob;
1037 size_t check = (checkmax >= checkleft?checkleft:checkmax);
1038
1039 if(!memcmp(POP3_EOB, &str[nread - check], check)) {
1040 /* substring match */
1041 pop3c->eob += check;
1042 if(pop3c->eob == POP3_EOB_LEN) {
1043 /* full match, the transfer is done! */
1044 str[nread - check] = '\0';
1045 nread -= check;
1046 k->keepon &= ~KEEP_RECV;
1042 struct pop3_conn *pop3c = &conn->proto.pop3c;
1043 bool strip_dot = FALSE;
1044 size_t last = 0;
1045 size_t i;
1046
1047 /* Search through the buffer looking for the end-of-body marker which is
1048 5 bytes (0d 0a 2e 0d 0a). Note that a line starting with a dot matches
1049 the eob so the server will have prefixed it with an extra dot which we
1050 need to strip out. Additionally the marker could of course be spread out
1051 over 5 different data chunks */
1052 for(i = 0; i < nread; i++) {
1053 size_t prev = pop3c->eob;
1054
1055 switch(str[i]) {
1056 case 0x0d:
1057 if(pop3c->eob == 0) {
1058 pop3c->eob++;
1059
1060 if(i) {
1061 /* Write out the body part that didn't match */
1062 result = Curl_client_write(conn, CLIENTWRITE_BODY, &str[last],
1063 i - last);
1064
1065 if(result)
1066 return result;
1067
1068 last = i;
1069 }
1070 }
1071 else if(pop3c->eob == 3)
1072 pop3c->eob++;
1073 else
1074 /* If the character match wasn't at position 0 or 3 then restart the
1075 pattern matching */
1076 pop3c->eob = 1;
1077 break;
1078
1079 case 0x0a:
1080 if(pop3c->eob == 1 || pop3c->eob == 4)
1081 pop3c->eob++;
1082 else
1083 /* If the character match wasn't at position 1 or 4 then start the
1084 search again */
1085 pop3c->eob = 0;
1086 break;
1087
1088 case 0x2e:
1089 if(pop3c->eob == 2)
1090 pop3c->eob++;
1091 else if(pop3c->eob == 3) {
1092 /* We have an extra dot after the CRLF which we need to strip off */
1093 strip_dot = TRUE;
1094 pop3c->eob = 0;
1095 }
1096 else
1097 /* If the character match wasn't at position 2 then start the search
1098 again */
1099 pop3c->eob = 0;
1100 break;
1101
1102 default:
10471103 pop3c->eob = 0;
1104 break;
10481105 }
1049 }
1050 else if(pop3c->eob) {
1051 /* not a match, but we matched a piece before so we must now
1052 send that part as body first, before we move on and send
1053 this buffer */
1054 result = Curl_client_write(conn, CLIENTWRITE_BODY,
1055 (char *)POP3_EOB, pop3c->eob);
1056 if(result)
1057 return result;
1106
1107 /* Did we have a partial match which has subsequently failed? */
1108 if(prev && prev >= pop3c->eob) {
1109 /* Strip can only be non-zero for the very first mismatch after CRLF
1110 and then both prev and strip are equal and nothing will be output
1111 below */
1112 while(prev && pop3c->strip) {
1113 prev--;
1114 pop3c->strip--;
1115 }
1116
1117 if(prev) {
1118 /* If the partial match was the CRLF and dot then only write the CRLF
1119 as the server would have inserted the dot */
1120 result = Curl_client_write(conn, CLIENTWRITE_BODY, (char*)POP3_EOB,
1121 strip_dot ? prev - 1 : prev);
1122
1123 if(result)
1124 return result;
1125
1126 last = i;
1127 strip_dot = FALSE;
1128 }
1129 }
1130 }
1131
1132 if(pop3c->eob == POP3_EOB_LEN) {
1133 /* We have a full match so the transfer is done! */
1134 k->keepon &= ~KEEP_RECV;
10581135 pop3c->eob = 0;
1059 }
1060
1061 result = Curl_client_write(conn, CLIENTWRITE_BODY, str, nread);
1136 return CURLE_OK;
1137 }
1138
1139 if(pop3c->eob)
1140 /* While EOB is matching nothing should be output */
1141 return CURLE_OK;
1142
1143 if(nread - last) {
1144 result = Curl_client_write(conn, CLIENTWRITE_BODY, &str[last],
1145 nread - last);
1146 }
10621147
10631148 return result;
10641149 }
0 #ifndef __POP3_H
1 #define __POP3_H
0 #ifndef HEADER_CURL_POP3_H
1 #define HEADER_CURL_POP3_H
22 /***************************************************************************
33 * _ _ ____ _
44 * Project ___| | | | _ \| |
66 * | (__| |_| | _ <| |___
77 * \___|\___/|_| \_\_____|
88 *
9 * Copyright (C) 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
9 * Copyright (C) 2009 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
1010 *
1111 * This software is licensed as described in the file COPYING, which
1212 * you should have received as part of this distribution. The terms
4545 char *mailbox; /* what to RETR */
4646 size_t eob; /* number of bytes of the EOB (End Of Body) that has been
4747 received thus far */
48 size_t strip; /* number of bytes from the start to ignore as non-body */
4849 pop3state state; /* always use pop3.c:state() to change state! */
4950 };
5051
5960 char *str,
6061 size_t nread);
6162
62 #endif /* __POP3_H */
63 #endif /* HEADER_CURL_POP3_H */
156156
157157 void Curl_pgrsTime(struct SessionHandle *data, timerid timer)
158158 {
159 struct timeval now = Curl_tvnow();
160
159161 switch(timer) {
160162 default:
161163 case TIMER_NONE:
163165 break;
164166 case TIMER_STARTSINGLE:
165167 /* This is set at the start of a single fetch */
166 data->progress.t_startsingle = Curl_tvnow();
168 data->progress.t_startsingle = now;
169 break;
170
171 case TIMER_STARTACCEPT:
172 data->progress.t_acceptdata = Curl_tvnow();
167173 break;
168174
169175 case TIMER_NAMELOOKUP:
170176 data->progress.t_nslookup =
171 Curl_tvdiff_secs(Curl_tvnow(), data->progress.t_startsingle);
177 Curl_tvdiff_secs(now, data->progress.t_startsingle);
172178 break;
173179 case TIMER_CONNECT:
174180 data->progress.t_connect =
175 Curl_tvdiff_secs(Curl_tvnow(), data->progress.t_startsingle);
181 Curl_tvdiff_secs(now, data->progress.t_startsingle);
176182 break;
177183 case TIMER_APPCONNECT:
178184 data->progress.t_appconnect =
179 Curl_tvdiff_secs(Curl_tvnow(), data->progress.t_startsingle);
185 Curl_tvdiff_secs(now, data->progress.t_startsingle);
180186 break;
181187 case TIMER_PRETRANSFER:
182188 data->progress.t_pretransfer =
183 Curl_tvdiff_secs(Curl_tvnow(), data->progress.t_startsingle);
189 Curl_tvdiff_secs(now, data->progress.t_startsingle);
184190 break;
185191 case TIMER_STARTTRANSFER:
186192 data->progress.t_starttransfer =
187 Curl_tvdiff_secs(Curl_tvnow(), data->progress.t_startsingle);
193 Curl_tvdiff_secs(now, data->progress.t_startsingle);
188194 break;
189195 case TIMER_POSTRANSFER:
190196 /* this is the normal end-of-transfer thing */
191197 break;
192198 case TIMER_REDIRECT:
193 data->progress.t_redirect =
194 Curl_tvdiff_secs(Curl_tvnow(), data->progress.start);
199 data->progress.t_redirect = Curl_tvdiff_secs(now, data->progress.start);
195200 break;
196201 }
197202 }
3333 TIMER_STARTTRANSFER,
3434 TIMER_POSTRANSFER,
3535 TIMER_STARTSINGLE,
36 TIMER_STARTACCEPT,
3637 TIMER_REDIRECT,
3738 TIMER_LAST /* must be last */
3839 } timerid;
124124 }
125125
126126 /*
127 * This is an internal function used for waiting for read or write
128 * events on a pair of file descriptors. It uses poll() when a fine
129 * poll() is available, in order to avoid limits with FD_SETSIZE,
130 * otherwise select() is used. An error is returned if select() is
131 * being used and a file descriptor is too large for FD_SETSIZE.
127 * Wait for read or write events on a set of file descriptors. It uses poll()
128 * when a fine poll() is available, in order to avoid limits with FD_SETSIZE,
129 * otherwise select() is used. An error is returned if select() is being used
130 * and a file descriptor is too large for FD_SETSIZE.
131 *
132132 * A negative timeout value makes this function wait indefinitely,
133133 * unles no valid file descriptor is given, when this happens the
134134 * negative timeout is ignored and the function times out immediately.
139139 * Return values:
140140 * -1 = system call error or fd >= FD_SETSIZE
141141 * 0 = timeout
142 * CURL_CSELECT_IN | CURL_CSELECT_OUT | CURL_CSELECT_ERR
142 * [bitmask] = action as described below
143 *
144 * CURL_CSELECT_IN - first socket is readable
145 * CURL_CSELECT_IN2 - second socket is readable
146 * CURL_CSELECT_OUT - write socket is writable
147 * CURL_CSELECT_ERR - an error condition occurred
143148 */
144 int Curl_socket_ready(curl_socket_t readfd, curl_socket_t writefd,
145 long timeout_ms)
149 int Curl_socket_check(curl_socket_t readfd0, /* two sockets to read from */
150 curl_socket_t readfd1,
151 curl_socket_t writefd, /* socket to write to */
152 long timeout_ms) /* milliseconds to wait */
146153 {
147154 #ifdef HAVE_POLL_FINE
148 struct pollfd pfd[2];
155 struct pollfd pfd[3];
149156 int num;
150157 #else
151158 struct timeval pending_tv;
161168 int r;
162169 int ret;
163170
164 if((readfd == CURL_SOCKET_BAD) && (writefd == CURL_SOCKET_BAD)) {
171 if((readfd0 == CURL_SOCKET_BAD) && (readfd1 == CURL_SOCKET_BAD) &&
172 (writefd == CURL_SOCKET_BAD)) {
173 /* no sockets, just wait */
165174 r = Curl_wait_ms((int)timeout_ms);
166175 return r;
167176 }
179188 #ifdef HAVE_POLL_FINE
180189
181190 num = 0;
182 if(readfd != CURL_SOCKET_BAD) {
183 pfd[num].fd = readfd;
191 if(readfd0 != CURL_SOCKET_BAD) {
192 pfd[num].fd = readfd0;
193 pfd[num].events = POLLRDNORM|POLLIN|POLLRDBAND|POLLPRI;
194 pfd[num].revents = 0;
195 num++;
196 }
197 if(readfd1 != CURL_SOCKET_BAD) {
198 pfd[num].fd = readfd1;
184199 pfd[num].events = POLLRDNORM|POLLIN|POLLRDBAND|POLLPRI;
185200 pfd[num].revents = 0;
186201 num++;
217232
218233 ret = 0;
219234 num = 0;
220 if(readfd != CURL_SOCKET_BAD) {
235 if(readfd0 != CURL_SOCKET_BAD) {
221236 if(pfd[num].revents & (POLLRDNORM|POLLIN|POLLERR|POLLHUP))
222237 ret |= CURL_CSELECT_IN;
223238 if(pfd[num].revents & (POLLRDBAND|POLLPRI|POLLNVAL))
224239 ret |= CURL_CSELECT_ERR;
225240 num++;
226241 }
242 if(readfd1 != CURL_SOCKET_BAD) {
243 if(pfd[num].revents & (POLLRDNORM|POLLIN|POLLERR|POLLHUP))
244 ret |= CURL_CSELECT_IN2;
245 if(pfd[num].revents & (POLLRDBAND|POLLPRI|POLLNVAL))
246 ret |= CURL_CSELECT_ERR;
247 num++;
248 }
227249 if(writefd != CURL_SOCKET_BAD) {
228250 if(pfd[num].revents & (POLLWRNORM|POLLOUT))
229251 ret |= CURL_CSELECT_OUT;
239261 maxfd = (curl_socket_t)-1;
240262
241263 FD_ZERO(&fds_read);
242 if(readfd != CURL_SOCKET_BAD) {
243 VERIFY_SOCK(readfd);
244 FD_SET(readfd, &fds_read);
245 FD_SET(readfd, &fds_err);
246 maxfd = readfd;
264 if(readfd0 != CURL_SOCKET_BAD) {
265 VERIFY_SOCK(readfd0);
266 FD_SET(readfd0, &fds_read);
267 FD_SET(readfd0, &fds_err);
268 maxfd = readfd0;
269 }
270 if(readfd1 != CURL_SOCKET_BAD) {
271 VERIFY_SOCK(readfd1);
272 FD_SET(readfd1, &fds_read);
273 FD_SET(readfd1, &fds_err);
274 if(readfd1 > maxfd)
275 maxfd = readfd1;
247276 }
248277
249278 FD_ZERO(&fds_write);
285314 return 0;
286315
287316 ret = 0;
288 if(readfd != CURL_SOCKET_BAD) {
289 if(FD_ISSET(readfd, &fds_read))
317 if(readfd0 != CURL_SOCKET_BAD) {
318 if(FD_ISSET(readfd0, &fds_read))
290319 ret |= CURL_CSELECT_IN;
291 if(FD_ISSET(readfd, &fds_err))
320 if(FD_ISSET(readfd0, &fds_err))
321 ret |= CURL_CSELECT_ERR;
322 }
323 if(readfd1 != CURL_SOCKET_BAD) {
324 if(FD_ISSET(readfd1, &fds_read))
325 ret |= CURL_CSELECT_IN2;
326 if(FD_ISSET(readfd1, &fds_err))
292327 ret |= CURL_CSELECT_ERR;
293328 }
294329 if(writefd != CURL_SOCKET_BAD) {
8383 #define POLLRDBAND POLLPRI
8484 #endif
8585
86 int Curl_socket_ready(curl_socket_t readfd, curl_socket_t writefd,
86 /* there are three CSELECT defines that are defined in the public header that
87 are exposed to users, but this *IN2 bit is only ever used internally and
88 therefore defined here */
89 #define CURL_CSELECT_IN2 (CURL_CSELECT_ERR << 1)
90
91 int Curl_socket_check(curl_socket_t readfd, curl_socket_t readfd2,
92 curl_socket_t writefd,
8793 long timeout_ms);
94
95 /* provide the former API internally */
96 #define Curl_socket_ready(x,y,z) \
97 Curl_socket_check(x, CURL_SOCKET_BAD, y, z)
8898
8999 int Curl_poll(struct pollfd ufds[], unsigned int nfds, int timeout_ms);
90100
66 * | (__| |_| | _ <| |___
77 * \___|\___/|_| \_\_____|
88 *
9 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
9 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
1010 *
1111 * This software is licensed as described in the file COPYING, which
1212 * you should have received as part of this distribution. The terms
486486 #ifdef USE_ARES
487487 # define CURLRES_ASYNCH
488488 # define CURLRES_ARES
489 /* now undef the stock libc functions just to avoid them being used */
490 # undef HAVE_GETADDRINFO
491 # undef HAVE_GETHOSTBYNAME
489492 #elif defined(USE_THREADS_POSIX) || defined(USE_THREADS_WIN32)
490493 # define CURLRES_ASYNCH
491494 # define CURLRES_THREADED
627630 # endif
628631 #endif
629632
633 /*
634 * Portable symbolic names for Winsock shutdown() mode flags.
635 */
636
637 #ifdef USE_WINSOCK
638 # define SHUT_RD 0x00
639 # define SHUT_WR 0x01
640 # define SHUT_RDWR 0x02
641 #endif
642
630643 #endif /* HEADER_CURL_LIB_SETUP_H */
44 * | (__| |_| | _ <| |___
55 * \___|\___/|_| \_\_____|
66 *
7 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
7 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
88 *
99 * This software is licensed as described in the file COPYING, which
1010 * you should have received as part of this distribution. The terms
8787 case CURL_LOCK_DATA_SSL_SESSION:
8888 #ifdef USE_SSL
8989 if(!share->sslsession) {
90 share->nsslsession = 8;
91 share->sslsession = calloc(share->nsslsession,
90 share->max_ssl_sessions = 8;
91 share->sslsession = calloc(share->max_ssl_sessions,
9292 sizeof(struct curl_ssl_session));
93 share->sessionage = 0;
9394 if(!share->sslsession)
9495 return CURLSHE_NOMEM;
9596 }
130131
131132 case CURL_LOCK_DATA_SSL_SESSION:
132133 #ifdef USE_SSL
133 if(share->sslsession) {
134 free(share->sslsession);
135 share->sslsession = NULL;
136 share->nsslsession = 0;
137 }
134 Curl_safefree(share->sslsession);
138135 break;
139136 #else
140137 return CURLSHE_NOT_BUILT_IN;
200197
201198 #ifdef USE_SSL
202199 if(share->sslsession) {
203 unsigned int i;
204 for(i = 0; i < share->nsslsession; ++i)
200 size_t i;
201 for(i = 0; i < share->max_ssl_sessions; i++)
205202 Curl_ssl_kill_session(&(share->sslsession[i]));
206203 free(share->sslsession);
207204 }
0 #ifndef __CURL_SHARE_H
1 #define __CURL_SHARE_H
2
0 #ifndef HEADER_CURL_SHARE_H
1 #define HEADER_CURL_SHARE_H
32 /***************************************************************************
43 * _ _ ____ _
54 * Project ___| | | | _ \| |
76 * | (__| |_| | _ <| |___
87 * \___|\___/|_| \_\_____|
98 *
10 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
9 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
1110 *
1211 * This software is licensed as described in the file COPYING, which
1312 * you should have received as part of this distribution. The terms
5049 #endif
5150
5251 struct curl_ssl_session *sslsession;
53 unsigned int nsslsession;
52 size_t max_ssl_sessions;
53 long sessionage;
5454 };
5555
5656 CURLSHcode Curl_share_lock (struct SessionHandle *, curl_lock_data,
5757 curl_lock_access);
5858 CURLSHcode Curl_share_unlock (struct SessionHandle *, curl_lock_data);
5959
60 #endif /* __CURL_SHARE_H */
60 #endif /* HEADER_CURL_SHARE_H */
132132 ZERO_NULL, /* readwrite */
133133 PORT_SMTP, /* defport */
134134 CURLPROTO_SMTP, /* protocol */
135 PROTOPT_CLOSEACTION /* flags */
135 PROTOPT_CLOSEACTION | PROTOPT_NOURLQUERY /* flags */
136136 };
137137
138138 #ifdef USE_SSL
157157 ZERO_NULL, /* readwrite */
158158 PORT_SMTPS, /* defport */
159159 CURLPROTO_SMTP | CURLPROTO_SMTPS, /* protocol */
160 PROTOPT_CLOSEACTION | PROTOPT_SSL /* flags */
160 PROTOPT_CLOSEACTION | PROTOPT_SSL
161 | PROTOPT_NOURLQUERY /* flags */
161162 };
162163 #endif
163164
508509 if(smtpcode != 220) {
509510 if(data->set.use_ssl != CURLUSESSL_TRY) {
510511 failf(data, "STARTTLS denied. %c", smtpcode);
511 result = CURLE_LOGIN_DENIED;
512 result = CURLE_USE_SSL_FAILED;
512513 }
513514 else
514515 result = smtp_authenticate(conn);
12421243 struct SessionHandle *data = conn->data;
12431244 struct pingpong *pp = &smtpc->pp;
12441245 const char *path = conn->data->state.path;
1245 int len;
12461246 char localhost[HOSTNAME_MAX + 1];
12471247
12481248 *done = FALSE; /* default to not done yet */
13141314 }
13151315
13161316 /* url decode the path and use it as domain with EHLO */
1317 smtpc->domain = curl_easy_unescape(conn->data, path, 0, &len);
1318 if(!smtpc->domain)
1319 return CURLE_OUT_OF_MEMORY;
1317 result = Curl_urldecode(conn->data, path, 0, &smtpc->domain, NULL, TRUE);
1318 if(result)
1319 return result;
13201320
13211321 /* When we connect, we start in the state where we await the server greeting
13221322 */
170170 ZERO_NULL, /* readwrite */
171171 PORT_SSH, /* defport */
172172 CURLPROTO_SCP, /* protocol */
173 PROTOPT_DIRLOCK | PROTOPT_CLOSEACTION /* flags */
173 PROTOPT_DIRLOCK | PROTOPT_CLOSEACTION
174 | PROTOPT_NOURLQUERY /* flags */
174175 };
175176
176177
195196 ZERO_NULL, /* readwrite */
196197 PORT_SSH, /* defport */
197198 CURLPROTO_SFTP, /* protocol */
198 PROTOPT_DIRLOCK | PROTOPT_CLOSEACTION /* flags */
199 PROTOPT_DIRLOCK | PROTOPT_CLOSEACTION
200 | PROTOPT_NOURLQUERY /* flags */
199201 };
200202
201203
641643 struct SSHPROTO *sftp_scp = data->state.proto.ssh;
642644 struct ssh_conn *sshc = &conn->proto.sshc;
643645 curl_socket_t sock = conn->sock[FIRSTSOCKET];
644 #ifdef CURL_LIBSSH2_DEBUG
645646 const char *fingerprint;
646 #endif /* CURL_LIBSSH2_DEBUG */
647 const char *host_public_key_md5;
647 char md5buffer[33];
648648 char *new_readdir_line;
649649 int rc = LIBSSH2_ERROR_NONE, i;
650650 int err;
667667 /* fall-through */
668668
669669 case SSH_S_STARTUP:
670 rc = libssh2_session_startup(sshc->ssh_session, sock);
670 rc = libssh2_session_startup(sshc->ssh_session, (int)sock);
671671 if(rc == LIBSSH2_ERROR_EAGAIN) {
672672 break;
673673 }
682682
683683 /* fall-through */
684684 case SSH_HOSTKEY:
685
686 #ifdef CURL_LIBSSH2_DEBUG
687685 /*
688686 * Before we authenticate we should check the hostkey's fingerprint
689687 * against our known hosts. How that is handled (reading from file,
690 * whatever) is up to us. As for know not much is implemented, besides
691 * showing how to get the fingerprint.
688 * whatever) is up to us.
692689 */
693690 fingerprint = libssh2_hostkey_hash(sshc->ssh_session,
694691 LIBSSH2_HOSTKEY_HASH_MD5);
695692
696693 /* The fingerprint points to static storage (!), don't free() it. */
697 infof(data, "Fingerprint: ");
698 for(rc = 0; rc < 16; rc++)
699 infof(data, "%02X ", (unsigned char) fingerprint[rc]);
700 infof(data, "\n");
701 #endif /* CURL_LIBSSH2_DEBUG */
694 for(i = 0; i < 16; i++)
695 snprintf(&md5buffer[i*2], 3, "%02x", (unsigned char) fingerprint[i]);
696 infof(data, "SSH MD5 fingerprint: %s\n", md5buffer);
702697
703698 /* Before we authenticate we check the hostkey's MD5 fingerprint
704 * against a known fingerprint, if available. This implementation pulls
705 * it from the curl option.
699 * against a known fingerprint, if available.
706700 */
707701 if(data->set.str[STRING_SSH_HOST_PUBLIC_KEY_MD5] &&
708702 strlen(data->set.str[STRING_SSH_HOST_PUBLIC_KEY_MD5]) == 32) {
709 char buf[33];
710 host_public_key_md5 = libssh2_hostkey_hash(sshc->ssh_session,
711 LIBSSH2_HOSTKEY_HASH_MD5);
712 for(i = 0; i < 16; i++)
713 snprintf(&buf[i*2], 3, "%02x",
714 (unsigned char) host_public_key_md5[i]);
715 if(!strequal(buf, data->set.str[STRING_SSH_HOST_PUBLIC_KEY_MD5])) {
703 if(!strequal(md5buffer,
704 data->set.str[STRING_SSH_HOST_PUBLIC_KEY_MD5])) {
716705 failf(data,
717706 "Denied establishing ssh session: mismatch md5 fingerprint. "
718707 "Remote %s is not equal to %s",
719 buf, data->set.str[STRING_SSH_HOST_PUBLIC_KEY_MD5]);
708 md5buffer, data->set.str[STRING_SSH_HOST_PUBLIC_KEY_MD5]);
720709 state(conn, SSH_SESSION_FREE);
721 sshc->actualcode = CURLE_PEER_FAILED_VERIFICATION;
722 break;
723 }
724 }
725
726 result = ssh_knownhost(conn);
710 result = sshc->actualcode = CURLE_PEER_FAILED_VERIFICATION;
711 }
712 else
713 infof(data, "MD5 checksum match!\n");
714 /* as we already matched, we skip the check for known hosts */
715 }
716 else
717 result = ssh_knownhost(conn);
718
727719 if(!result)
728720 state(conn, SSH_AUTHLIST);
729721 break;
10621054 /*
10631055 * Support some of the "FTP" commands
10641056 */
1065 if(curl_strequal("pwd", sshc->quote_item->data)) {
1057 char *cmd = sshc->quote_item->data;
1058 sshc->acceptfail = FALSE;
1059
1060 /* if a command starts with an asterisk, which a legal SFTP command never
1061 can, the command will be allowed to fail without it causing any
1062 aborts or cancels etc. It will cause libcurl to act as if the command
1063 is successful, whatever the server reponds. */
1064
1065 if(cmd[0] == '*') {
1066 cmd++;
1067 sshc->acceptfail = TRUE;
1068 }
1069
1070 if(curl_strequal("pwd", cmd)) {
10661071 /* output debug output if that is requested */
10671072 char *tmp = aprintf("257 \"%s\" is current directory.\n",
10681073 sftp_scp->path);
10841089 state(conn, SSH_SFTP_NEXT_QUOTE);
10851090 break;
10861091 }
1087 else if(sshc->quote_item->data) {
1092 else if(cmd) {
10881093 /*
10891094 * the arguments following the command must be separated from the
10901095 * command with a space so we can check for it unconditionally
10911096 */
1092 cp = strchr(sshc->quote_item->data, ' ');
1097 cp = strchr(cmd, ' ');
10931098 if(cp == NULL) {
10941099 failf(data, "Syntax error in SFTP command. Supply parameter(s)!");
10951100 state(conn, SSH_SFTP_CLOSE);
11201125 * OpenSSH's sftp program and call the appropriate libssh2
11211126 * functions.
11221127 */
1123 if(curl_strnequal(sshc->quote_item->data, "chgrp ", 6) ||
1124 curl_strnequal(sshc->quote_item->data, "chmod ", 6) ||
1125 curl_strnequal(sshc->quote_item->data, "chown ", 6) ) {
1128 if(curl_strnequal(cmd, "chgrp ", 6) ||
1129 curl_strnequal(cmd, "chmod ", 6) ||
1130 curl_strnequal(cmd, "chown ", 6) ) {
11261131 /* attribute change */
11271132
11281133 /* sshc->quote_path1 contains the mode to set */
11451150 state(conn, SSH_SFTP_QUOTE_STAT);
11461151 break;
11471152 }
1148 else if(curl_strnequal(sshc->quote_item->data, "ln ", 3) ||
1149 curl_strnequal(sshc->quote_item->data, "symlink ", 8)) {
1153 else if(curl_strnequal(cmd, "ln ", 3) ||
1154 curl_strnequal(cmd, "symlink ", 8)) {
11501155 /* symbolic linking */
11511156 /* sshc->quote_path1 is the source */
11521157 /* get the destination */
11671172 state(conn, SSH_SFTP_QUOTE_SYMLINK);
11681173 break;
11691174 }
1170 else if(curl_strnequal(sshc->quote_item->data, "mkdir ", 6)) {
1175 else if(curl_strnequal(cmd, "mkdir ", 6)) {
11711176 /* create dir */
11721177 state(conn, SSH_SFTP_QUOTE_MKDIR);
11731178 break;
11741179 }
1175 else if(curl_strnequal(sshc->quote_item->data, "rename ", 7)) {
1180 else if(curl_strnequal(cmd, "rename ", 7)) {
11761181 /* rename file */
11771182 /* first param is the source path */
11781183 /* second param is the dest. path */
11921197 state(conn, SSH_SFTP_QUOTE_RENAME);
11931198 break;
11941199 }
1195 else if(curl_strnequal(sshc->quote_item->data, "rmdir ", 6)) {
1200 else if(curl_strnequal(cmd, "rmdir ", 6)) {
11961201 /* delete dir */
11971202 state(conn, SSH_SFTP_QUOTE_RMDIR);
11981203 break;
11991204 }
1200 else if(curl_strnequal(sshc->quote_item->data, "rm ", 3)) {
1205 else if(curl_strnequal(cmd, "rm ", 3)) {
12011206 state(conn, SSH_SFTP_QUOTE_UNLINK);
12021207 break;
12031208 }
12451250 break;
12461251
12471252 case SSH_SFTP_QUOTE_STAT:
1248 if(!curl_strnequal(sshc->quote_item->data, "chmod", 5)) {
1253 {
1254 char *cmd = sshc->quote_item->data;
1255 sshc->acceptfail = FALSE;
1256
1257 /* if a command starts with an asterisk, which a legal SFTP command never
1258 can, the command will be allowed to fail without it causing any
1259 aborts or cancels etc. It will cause libcurl to act as if the command
1260 is successful, whatever the server reponds. */
1261
1262 if(cmd[0] == '*') {
1263 cmd++;
1264 sshc->acceptfail = TRUE;
1265 }
1266
1267 if(!curl_strnequal(cmd, "chmod", 5)) {
12491268 /* Since chown and chgrp only set owner OR group but libssh2 wants to
12501269 * set them both at once, we need to obtain the current ownership
12511270 * first. This takes an extra protocol round trip.
12571276 if(rc == LIBSSH2_ERROR_EAGAIN) {
12581277 break;
12591278 }
1260 else if(rc != 0) { /* get those attributes */
1279 else if(rc != 0 && !sshc->acceptfail) { /* get those attributes */
12611280 err = (int)(libssh2_sftp_last_error(sshc->sftp_session));
12621281 Curl_safefree(sshc->quote_path1);
12631282 sshc->quote_path1 = NULL;
12731292 }
12741293
12751294 /* Now set the new attributes... */
1276 if(curl_strnequal(sshc->quote_item->data, "chgrp", 5)) {
1295 if(curl_strnequal(cmd, "chgrp", 5)) {
12771296 sshc->quote_attrs.gid = strtoul(sshc->quote_path1, NULL, 10);
12781297 sshc->quote_attrs.flags = LIBSSH2_SFTP_ATTR_UIDGID;
1279 if(sshc->quote_attrs.gid == 0 && !ISDIGIT(sshc->quote_path1[0])) {
1298 if(sshc->quote_attrs.gid == 0 && !ISDIGIT(sshc->quote_path1[0]) &&
1299 !sshc->acceptfail) {
12801300 Curl_safefree(sshc->quote_path1);
12811301 sshc->quote_path1 = NULL;
12821302 Curl_safefree(sshc->quote_path2);
12881308 break;
12891309 }
12901310 }
1291 else if(curl_strnequal(sshc->quote_item->data, "chmod", 5)) {
1311 else if(curl_strnequal(cmd, "chmod", 5)) {
12921312 sshc->quote_attrs.permissions = strtoul(sshc->quote_path1, NULL, 8);
12931313 sshc->quote_attrs.flags = LIBSSH2_SFTP_ATTR_PERMISSIONS;
12941314 /* permissions are octal */
13051325 break;
13061326 }
13071327 }
1308 else if(curl_strnequal(sshc->quote_item->data, "chown", 5)) {
1328 else if(curl_strnequal(cmd, "chown", 5)) {
13091329 sshc->quote_attrs.uid = strtoul(sshc->quote_path1, NULL, 10);
13101330 sshc->quote_attrs.flags = LIBSSH2_SFTP_ATTR_UIDGID;
1311 if(sshc->quote_attrs.uid == 0 && !ISDIGIT(sshc->quote_path1[0])) {
1331 if(sshc->quote_attrs.uid == 0 && !ISDIGIT(sshc->quote_path1[0]) &&
1332 !sshc->acceptfail) {
13121333 Curl_safefree(sshc->quote_path1);
13131334 sshc->quote_path1 = NULL;
13141335 Curl_safefree(sshc->quote_path2);
13241345 /* Now send the completed structure... */
13251346 state(conn, SSH_SFTP_QUOTE_SETSTAT);
13261347 break;
1348 }
13271349
13281350 case SSH_SFTP_QUOTE_SETSTAT:
13291351 rc = libssh2_sftp_stat_ex(sshc->sftp_session, sshc->quote_path2,
13331355 if(rc == LIBSSH2_ERROR_EAGAIN) {
13341356 break;
13351357 }
1336 else if(rc != 0) {
1358 else if(rc != 0 && !sshc->acceptfail) {
13371359 err = (int)(libssh2_sftp_last_error(sshc->sftp_session));
13381360 Curl_safefree(sshc->quote_path1);
13391361 sshc->quote_path1 = NULL;
13581380 if(rc == LIBSSH2_ERROR_EAGAIN) {
13591381 break;
13601382 }
1361 else if(rc != 0) {
1383 else if(rc != 0 && !sshc->acceptfail) {
13621384 err = (int)(libssh2_sftp_last_error(sshc->sftp_session));
13631385 Curl_safefree(sshc->quote_path1);
13641386 sshc->quote_path1 = NULL;
13771399 case SSH_SFTP_QUOTE_MKDIR:
13781400 rc = libssh2_sftp_mkdir_ex(sshc->sftp_session, sshc->quote_path1,
13791401 (unsigned int)strlen(sshc->quote_path1),
1380 0755);
1402 data->set.new_directory_perms);
13811403 if(rc == LIBSSH2_ERROR_EAGAIN) {
13821404 break;
13831405 }
1384 else if(rc != 0) {
1406 else if(rc != 0 && !sshc->acceptfail) {
13851407 err = (int)(libssh2_sftp_last_error(sshc->sftp_session));
13861408 Curl_safefree(sshc->quote_path1);
13871409 sshc->quote_path1 = NULL;
14061428 if(rc == LIBSSH2_ERROR_EAGAIN) {
14071429 break;
14081430 }
1409 else if(rc != 0) {
1431 else if(rc != 0 && !sshc->acceptfail) {
14101432 err = (int)(libssh2_sftp_last_error(sshc->sftp_session));
14111433 Curl_safefree(sshc->quote_path1);
14121434 sshc->quote_path1 = NULL;
14271449 if(rc == LIBSSH2_ERROR_EAGAIN) {
14281450 break;
14291451 }
1430 else if(rc != 0) {
1452 else if(rc != 0 && !sshc->acceptfail) {
14311453 err = (int)(libssh2_sftp_last_error(sshc->sftp_session));
14321454 Curl_safefree(sshc->quote_path1);
14331455 sshc->quote_path1 = NULL;
14461468 if(rc == LIBSSH2_ERROR_EAGAIN) {
14471469 break;
14481470 }
1449 else if(rc != 0) {
1471 else if(rc != 0 && !sshc->acceptfail) {
14501472 err = (int)(libssh2_sftp_last_error(sshc->sftp_session));
14511473 Curl_safefree(sshc->quote_path1);
14521474 sshc->quote_path1 = NULL;
18621884 Curl_safefree(sshc->readdir_linkPath);
18631885 sshc->readdir_linkPath = NULL;
18641886
1865 new_readdir_line = realloc(sshc->readdir_line,
1866 sshc->readdir_totalLen + 4 +
1867 sshc->readdir_len);
1887 /* get room for the filename and extra output */
1888 sshc->readdir_totalLen += 4 + sshc->readdir_len;
1889 new_readdir_line = realloc(sshc->readdir_line, sshc->readdir_totalLen);
18681890 if(!new_readdir_line) {
18691891 Curl_safefree(sshc->readdir_line);
18701892 sshc->readdir_line = NULL;
114114 char *quote_path1; /* two generic pointers for the QUOTE stuff */
115115 char *quote_path2;
116116 LIBSSH2_SFTP_ATTRIBUTES quote_attrs; /* used by the SFTP_QUOTE state */
117 bool acceptfail; /* used by the SFTP_QUOTE (continue if
118 quote command fails) */
117119 char *homedir; /* when doing SFTP we figure out home dir in the
118120 connect phase */
119121
44 * | (__| |_| | _ <| |___
55 * \___|\___/|_| \_\_____|
66 *
7 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
7 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
88 *
99 * This software is licensed as described in the file COPYING, which
1010 * you should have received as part of this distribution. The terms
6565 /* The last #include file should be: */
6666 #include "memdebug.h"
6767
68 /* convenience macro to check if this handle is using a shared SSL session */
69 #define SSLSESSION_SHARED(data) (data->share && \
70 (data->share->specifier & \
71 (1<<CURL_LOCK_DATA_SSL_SESSION)))
72
6873 static bool safe_strequal(char* str1, char* str2)
6974 {
7075 if(str1 && str2)
215220 return res;
216221 #else
217222 *done = TRUE; /* fallback to BLOCKING */
218 conn->ssl[sockindex].use = TRUE;
219 return curlssl_connect(conn, sockindex);
223 return Curl_ssl_connect(conn, sockindex);
220224 #endif /* non-blocking connect support */
221225 }
222226
230234 {
231235 struct curl_ssl_session *check;
232236 struct SessionHandle *data = conn->data;
233 long i;
237 size_t i;
238 long *general_age;
239 bool no_match = TRUE;
240
241 *ssl_sessionid = NULL;
234242
235243 if(!conn->ssl_config.sessionid)
236244 /* session ID re-use is disabled */
237245 return TRUE;
238246
239 /* Lock for reading if shared */
240 if(data->share && data->share->sslsession == data->state.session)
241 Curl_share_lock(data, CURL_LOCK_DATA_SSL_SESSION, CURL_LOCK_ACCESS_SHARED);
242
243 for(i=0; i< data->set.ssl.numsessions; i++) {
247 /* Lock if shared */
248 if(SSLSESSION_SHARED(data)) {
249 Curl_share_lock(data, CURL_LOCK_DATA_SSL_SESSION, CURL_LOCK_ACCESS_SINGLE);
250 general_age = &data->share->sessionage;
251 }
252 else
253 general_age = &data->state.sessionage;
254
255 for(i = 0; i < data->set.ssl.max_ssl_sessions; i++) {
244256 check = &data->state.session[i];
245257 if(!check->sessionid)
246258 /* not session ID means blank entry */
249261 (conn->remote_port == check->remote_port) &&
250262 Curl_ssl_config_matches(&conn->ssl_config, &check->ssl_config)) {
251263 /* yes, we have a session ID! */
252 data->state.sessionage++; /* increase general age */
253 check->age = data->state.sessionage; /* set this as used in this age */
264 (*general_age)++; /* increase general age */
265 check->age = *general_age; /* set this as used in this age */
254266 *ssl_sessionid = check->sessionid;
255267 if(idsize)
256268 *idsize = check->idsize;
257 return FALSE;
269 no_match = FALSE;
270 break;
258271 }
259272 }
260 *ssl_sessionid = NULL;
261
262 /* Unlock for reading */
263 if(data->share && data->share->sslsession == data->state.session)
273
274 /* Unlock */
275 if(SSLSESSION_SHARED(data))
264276 Curl_share_unlock(data, CURL_LOCK_DATA_SSL_SESSION);
265277
266
267 return TRUE;
278 return no_match;
268279 }
269280
270281 /*
271282 * Kill a single session ID entry in the cache.
272283 */
273 int Curl_ssl_kill_session(struct curl_ssl_session *session)
284 void Curl_ssl_kill_session(struct curl_ssl_session *session)
274285 {
275286 if(session->sessionid) {
276287 /* defensive check */
278289 /* free the ID the SSL-layer specific way */
279290 curlssl_session_free(session->sessionid);
280291
281 session->sessionid=NULL;
292 session->sessionid = NULL;
282293 session->age = 0; /* fresh */
283294
284295 Curl_free_ssl_config(&session->ssl_config);
285296
286297 Curl_safefree(session->name);
287 session->name = NULL; /* no name */
288
289 return 0; /* ok */
290 }
291 else
292 return 1;
298 }
293299 }
294300
295301 /*
297303 */
298304 void Curl_ssl_delsessionid(struct connectdata *conn, void *ssl_sessionid)
299305 {
300 int i;
306 size_t i;
301307 struct SessionHandle *data=conn->data;
302308
303 if(data->share && data->share->sslsession == data->state.session)
304 Curl_share_lock(data, CURL_LOCK_DATA_SSL_SESSION,
305 CURL_LOCK_ACCESS_SINGLE);
306
307 for(i=0; i< data->set.ssl.numsessions; i++) {
309 if(SSLSESSION_SHARED(data))
310 Curl_share_lock(data, CURL_LOCK_DATA_SSL_SESSION, CURL_LOCK_ACCESS_SINGLE);
311
312 for(i = 0; i < data->set.ssl.max_ssl_sessions; i++) {
308313 struct curl_ssl_session *check = &data->state.session[i];
309314
310315 if(check->sessionid == ssl_sessionid) {
313318 }
314319 }
315320
316 if(data->share && data->share->sslsession == data->state.session)
321 if(SSLSESSION_SHARED(data))
317322 Curl_share_unlock(data, CURL_LOCK_DATA_SSL_SESSION);
318323 }
319324
327332 void *ssl_sessionid,
328333 size_t idsize)
329334 {
330 long i;
335 size_t i;
331336 struct SessionHandle *data=conn->data; /* the mother of all structs */
332337 struct curl_ssl_session *store = &data->state.session[0];
333338 long oldest_age=data->state.session[0].age; /* zero if unused */
334339 char *clone_host;
340 long *general_age;
335341
336342 /* Even though session ID re-use might be disabled, that only disables USING
337343 IT. We still store it here in case the re-using is again enabled for an
345351 the oldest if necessary) */
346352
347353 /* If using shared SSL session, lock! */
348 if(data->share && data->share->sslsession == data->state.session)
354 if(SSLSESSION_SHARED(data)) {
349355 Curl_share_lock(data, CURL_LOCK_DATA_SSL_SESSION, CURL_LOCK_ACCESS_SINGLE);
356 general_age = &data->share->sessionage;
357 }
358 else {
359 general_age = &data->state.sessionage;
360 }
350361
351362 /* find an empty slot for us, or find the oldest */
352 for(i=1; (i<data->set.ssl.numsessions) &&
363 for(i = 1; (i < data->set.ssl.max_ssl_sessions) &&
353364 data->state.session[i].sessionid; i++) {
354365 if(data->state.session[i].age < oldest_age) {
355366 oldest_age = data->state.session[i].age;
356367 store = &data->state.session[i];
357368 }
358369 }
359 if(i == data->set.ssl.numsessions)
370 if(i == data->set.ssl.max_ssl_sessions)
360371 /* cache is full, we must "kill" the oldest entry! */
361372 Curl_ssl_kill_session(store);
362373 else
365376 /* now init the session struct wisely */
366377 store->sessionid = ssl_sessionid;
367378 store->idsize = idsize;
368 store->age = data->state.sessionage; /* set current age */
379 store->age = *general_age; /* set current age */
369380 if(store->name)
370381 /* free it if there's one already present */
371382 free(store->name);
374385
375386
376387 /* Unlock */
377 if(data->share && data->share->sslsession == data->state.session)
388 if(SSLSESSION_SHARED(data))
378389 Curl_share_unlock(data, CURL_LOCK_DATA_SSL_SESSION);
379390
380391 if(!Curl_clone_ssl_config(&conn->ssl_config, &store->ssl_config)) {
389400
390401 void Curl_ssl_close_all(struct SessionHandle *data)
391402 {
392 long i;
393 /* kill the session ID cache */
394 if(data->state.session &&
395 !(data->share && data->share->sslsession == data->state.session)) {
396
397 Curl_share_lock(data, CURL_LOCK_DATA_SSL_SESSION, CURL_LOCK_ACCESS_SINGLE);
398
399 for(i=0; i< data->set.ssl.numsessions; i++)
403 size_t i;
404 /* kill the session ID cache if not shared */
405 if(data->state.session && !SSLSESSION_SHARED(data)) {
406 for(i = 0; i < data->set.ssl.max_ssl_sessions; i++)
400407 /* the single-killer function handles empty table slots */
401408 Curl_ssl_kill_session(&data->state.session[i]);
402409
403410 /* free the cache data */
404 free(data->state.session);
405 data->state.session = NULL;
406
407 Curl_share_unlock(data, CURL_LOCK_DATA_SSL_SESSION);
411 Curl_safefree(data->state.session);
408412 }
409413
410414 curlssl_close_all(data);
454458 * This sets up a session ID cache to the specified size. Make sure this code
455459 * is agnostic to what underlying SSL technology we use.
456460 */
457 CURLcode Curl_ssl_initsessions(struct SessionHandle *data, long amount)
461 CURLcode Curl_ssl_initsessions(struct SessionHandle *data, size_t amount)
458462 {
459463 struct curl_ssl_session *session;
460464
467471 return CURLE_OUT_OF_MEMORY;
468472
469473 /* store the info in the SSL section */
470 data->set.ssl.numsessions = amount;
474 data->set.ssl.max_ssl_sessions = amount;
471475 data->state.session = session;
472476 data->state.sessionage = 1; /* this is brand new */
473477 return CURLE_OK;
66 * | (__| |_| | _ <| |___
77 * \___|\___/|_| \_\_____|
88 *
9 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
9 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
1010 *
1111 * This software is licensed as described in the file COPYING, which
1212 * you should have received as part of this distribution. The terms
4646 struct curl_slist *Curl_ssl_engines_list(struct SessionHandle *data);
4747
4848 /* init the SSL session ID cache */
49 CURLcode Curl_ssl_initsessions(struct SessionHandle *, long);
49 CURLcode Curl_ssl_initsessions(struct SessionHandle *, size_t);
5050 size_t Curl_ssl_version(char *buffer, size_t size);
5151 bool Curl_ssl_data_pending(const struct connectdata *conn,
5252 int connindex);
6464 void *ssl_sessionid,
6565 size_t idsize);
6666 /* Kill a single session ID entry in the cache */
67 int Curl_ssl_kill_session(struct curl_ssl_session *session);
67 void Curl_ssl_kill_session(struct curl_ssl_session *session);
6868 /* delete a session from the cache */
6969 void Curl_ssl_delsessionid(struct connectdata *conn, void *ssl_sessionid);
7070
8989 #define Curl_ssl_check_cxn(x) 0
9090 #define Curl_ssl_free_certinfo(x) Curl_nop_stmt
9191 #define Curl_ssl_connect_nonblocking(x,y,z) CURLE_NOT_BUILT_IN
92 #define Curl_ssl_kill_session(x) 0
92 #define Curl_ssl_kill_session(x) Curl_nop_stmt
9393 #endif
9494
9595 #endif /* HEADER_CURL_SSLGEN_H */
44 * | (__| |_| | _ <| |___
55 * \___|\___/|_| \_\_____|
66 *
7 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
7 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
88 *
99 * This software is licensed as described in the file COPYING, which
1010 * you should have received as part of this distribution. The terms
124124
125125 #if OPENSSL_VERSION_NUMBER >= 0x10000000L
126126 #define HAVE_ERR_REMOVE_THREAD_STATE 1
127 #endif
128
129 #ifndef HAVE_SSLV2_CLIENT_METHOD
130 #undef OPENSSL_NO_SSL2 /* undef first to avoid compiler warnings */
131 #define OPENSSL_NO_SSL2
127132 #endif
128133
129134 /*
460465 failf(data, SSL_CLIENT_CERT_ERR);
461466 EVP_PKEY_free(pri);
462467 X509_free(x509);
468 sk_X509_pop_free(ca, X509_free);
463469 return 0;
464470 }
465471
468474 cert_file);
469475 EVP_PKEY_free(pri);
470476 X509_free(x509);
477 sk_X509_pop_free(ca, X509_free);
471478 return 0;
472479 }
473480
476483 "does not match certificate in same file", cert_file);
477484 EVP_PKEY_free(pri);
478485 X509_free(x509);
486 sk_X509_pop_free(ca, X509_free);
479487 return 0;
480488 }
481489 /* Set Certificate Verification chain */
485493 failf(data, "cannot add certificate to certificate chain");
486494 EVP_PKEY_free(pri);
487495 X509_free(x509);
496 sk_X509_pop_free(ca, X509_free);
488497 return 0;
489498 }
490499 if(!SSL_CTX_add_client_CA(ctx, sk_X509_value(ca, i))) {
491500 failf(data, "cannot add certificate to client CA list");
492501 EVP_PKEY_free(pri);
493502 X509_free(x509);
503 sk_X509_pop_free(ca, X509_free);
494504 return 0;
495505 }
496506 }
498508
499509 EVP_PKEY_free(pri);
500510 X509_free(x509);
511 sk_X509_pop_free(ca, X509_free);
501512 cert_done = 1;
502513 break;
503514 #else
14191430 X509_LOOKUP *lookup=NULL;
14201431 curl_socket_t sockfd = conn->sock[sockindex];
14211432 struct ssl_connect_data *connssl = &conn->ssl[sockindex];
1433 long ctx_options;
14221434 #ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME
14231435 bool sni;
14241436 #ifdef ENABLE_IPV6
15241536 If someone writes an application with libcurl and openssl who wants to
15251537 enable the feature, one can do this in the SSL callback.
15261538
1539 SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG option enabling allowed proper
1540 interoperability with web server Netscape Enterprise Server 2.0.1 which
1541 was released back in 1996.
1542
1543 Due to CVE-2010-4180, option SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG has
1544 become ineffective as of OpenSSL 0.9.8q and 1.0.0c. In order to mitigate
1545 CVE-2010-4180 when using previous OpenSSL versions we no longer enable
1546 this option regardless of OpenSSL version and SSL_OP_ALL definition.
1547
1548 OpenSSL added a work-around for a SSL 3.0/TLS 1.0 CBC vulnerability
1549 (http://www.openssl.org/~bodo/tls-cbc.txt). In 0.9.6e they added a bit to
1550 SSL_OP_ALL that _disables_ that work-around despite the fact that
1551 SSL_OP_ALL is documented to do "rather harmless" workarounds. In order to
1552 keep the secure work-around, the SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS bit
1553 must not be set.
15271554 */
1555
1556 ctx_options = SSL_OP_ALL;
1557
15281558 #ifdef SSL_OP_NO_TICKET
1529 /* expect older openssl releases to not have this define so only use it if
1530 present */
1531 #define CURL_CTX_OPTIONS SSL_OP_ALL|SSL_OP_NO_TICKET
1532 #else
1533 #define CURL_CTX_OPTIONS SSL_OP_ALL
1534 #endif
1535
1536 SSL_CTX_set_options(connssl->ctx, CURL_CTX_OPTIONS);
1559 ctx_options |= SSL_OP_NO_TICKET;
1560 #endif
1561
1562 #ifdef SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG
1563 /* mitigate CVE-2010-4180 */
1564 ctx_options &= ~SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG;
1565 #endif
1566
1567 #ifdef SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS
1568 ctx_options &= ~SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS;
1569 #endif
15371570
15381571 /* disable SSLv2 in the default case (i.e. allow SSLv3 and TLSv1) */
15391572 if(data->set.ssl.version == CURL_SSLVERSION_DEFAULT)
1540 SSL_CTX_set_options(connssl->ctx, SSL_OP_NO_SSLv2);
1573 ctx_options |= SSL_OP_NO_SSLv2;
1574
1575 SSL_CTX_set_options(connssl->ctx, ctx_options);
15411576
15421577 #if 0
15431578 /*
16301665 if(data->set.str[STRING_SSL_CRLFILE]) {
16311666 /* tell SSL where to find CRL file that is used to check certificate
16321667 * revocation */
1633 lookup=X509_STORE_add_lookup(connssl->ctx->cert_store,X509_LOOKUP_file());
1668 lookup=X509_STORE_add_lookup(SSL_CTX_get_cert_store(connssl->ctx),
1669 X509_LOOKUP_file());
16341670 if(!lookup ||
16351671 (!X509_load_crl_file(lookup,data->set.str[STRING_SSL_CRLFILE],
16361672 X509_FILETYPE_PEM)) ) {
16411677 else {
16421678 /* Everything is fine. */
16431679 infof(data, "successfully load CRL file:\n");
1644 X509_STORE_set_flags(connssl->ctx->cert_store,
1680 X509_STORE_set_flags(SSL_CTX_get_cert_store(connssl->ctx),
16451681 X509_V_FLAG_CRL_CHECK|X509_V_FLAG_CRL_CHECK_ALL);
16461682 }
16471683 infof(data,
8080 case CURLE_REMOTE_ACCESS_DENIED:
8181 return "Access denied to remote resource";
8282
83 case CURLE_FTP_ACCEPT_FAILED:
84 return "FTP: The server failed to connect to data port";
85
86 case CURLE_FTP_ACCEPT_TIMEOUT:
87 return "FTP: Accepting server connect has timed out";
88
8389 case CURLE_FTP_PRET_FAILED:
8490 return "FTP: The server did not accept the PRET command.";
8591
283289 return "Chunk callback failed";
284290
285291 /* error codes not used by current libcurl */
286 case CURLE_OBSOLETE10:
287 case CURLE_OBSOLETE12:
288292 case CURLE_OBSOLETE16:
289293 case CURLE_OBSOLETE20:
290294 case CURLE_OBSOLETE24:
44 * | (__| |_| | _ <| |___
55 * \___|\___/|_| \_\_____|
66 *
7 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
7 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
88 *
99 * This software is licensed as described in the file COPYING, which
1010 * you should have received as part of this distribution. The terms
7474
7575 #define SUBBUFSIZE 512
7676
77 #define CURL_SB_CLEAR(x) x->subpointer = x->subbuffer;
78 #define CURL_SB_TERM(x) { x->subend = x->subpointer; CURL_SB_CLEAR(x); }
79 #define CURL_SB_ACCUM(x,c) \
80 if(x->subpointer < (x->subbuffer+sizeof x->subbuffer)) { \
81 *x->subpointer++ = (c); \
82 }
77 #define CURL_SB_CLEAR(x) x->subpointer = x->subbuffer
78 #define CURL_SB_TERM(x) \
79 do { \
80 x->subend = x->subpointer; \
81 CURL_SB_CLEAR(x); \
82 } WHILE_FALSE
83 #define CURL_SB_ACCUM(x,c) \
84 do { \
85 if(x->subpointer < (x->subbuffer+sizeof x->subbuffer)) \
86 *x->subpointer++ = (c); \
87 } WHILE_FALSE
8388
8489 #define CURL_SB_GET(x) ((*x->subpointer++)&0xff)
8590 #define CURL_SB_PEEK(x) ((*x->subpointer)&0xff)
115120 int direction, unsigned char *pointer,
116121 size_t length);
117122 static void suboption(struct connectdata *);
123 static void sendsuboption(struct connectdata *conn, int option);
118124
119125 static CURLcode telnet_do(struct connectdata *conn, bool *done);
120126 static CURLcode telnet_done(struct connectdata *conn,
121127 CURLcode, bool premature);
128 static CURLcode send_telnet_data(struct connectdata *conn,
129 char *buffer, ssize_t nread);
122130
123131 /* For negotiation compliant to RFC 1143 */
124132 #define CURL_NO 0
154162 int him[256];
155163 int himq[256];
156164 int him_preferred[256];
165 int subnegotiation[256];
157166 char subopt_ttype[32]; /* Set with suboption TTYPE */
158 char subopt_xdisploc[128]; /* Set with suboption XDISPLOC */
159 struct curl_slist *telnet_vars; /* Environment variables */
167 char subopt_xdisploc[128]; /* Set with suboption XDISPLOC */
168 unsigned short subopt_wsx; /* Set with suboption NAWS */
169 unsigned short subopt_wsy; /* Set with suboption NAWS */
170 struct curl_slist *telnet_vars; /* Environment variables */
160171
161172 /* suboptions */
162173 unsigned char subbuffer[SUBBUFSIZE];
187198 ZERO_NULL, /* readwrite */
188199 PORT_TELNET, /* defport */
189200 CURLPROTO_TELNET, /* protocol */
190 PROTOPT_NONE /* flags */
201 PROTOPT_NONE | PROTOPT_NOURLQUERY /* flags */
191202 };
192203
193204
248259 CURL_SB_CLEAR(tn);
249260
250261 /* Set the options we want by default */
262 tn->us_preferred[CURL_TELOPT_SGA] = CURL_YES;
263 tn->him_preferred[CURL_TELOPT_SGA] = CURL_YES;
264
265 /* To be compliant with previous releases of libcurl
266 we enable this option by default. This behaviour
267 can be changed thanks to the "BINARY" option in
268 CURLOPT_TELNETOPTIONS
269 */
251270 tn->us_preferred[CURL_TELOPT_BINARY] = CURL_YES;
252 tn->us_preferred[CURL_TELOPT_SGA] = CURL_YES;
253271 tn->him_preferred[CURL_TELOPT_BINARY] = CURL_YES;
254 tn->him_preferred[CURL_TELOPT_SGA] = CURL_YES;
255
272
273 /* We must allow the server to echo what we sent
274 but it is not necessary to request the server
275 to do so (it might forces the server to close
276 the connection). Hence, we ignore ECHO in the
277 negotiate function
278 */
279 tn->him_preferred[CURL_TELOPT_ECHO] = CURL_YES;
280
281 /* Set the subnegotiation fields to send information
282 just after negotiation passed (do/will)
283
284 Default values are (0,0) initialized by calloc.
285 According to the RFC1013 it is valid:
286 A value equal to zero is acceptable for the width (or height),
287 and means that no character width (or height) is being sent.
288 In this case, the width (or height) that will be assumed by the
289 Telnet server is operating system specific (it will probably be
290 based upon the terminal type information that may have been sent
291 using the TERMINAL TYPE Telnet option). */
292 tn->subnegotiation[CURL_TELOPT_NAWS] = CURL_YES;
256293 return CURLE_OK;
257294 }
258295
262299 struct TELNET *tn = (struct TELNET *) conn->data->state.proto.telnet;
263300
264301 for(i = 0;i < CURL_NTELOPTS;i++) {
302 if(i==CURL_TELOPT_ECHO)
303 continue;
304
265305 if(tn->us_preferred[i] == CURL_YES)
266306 set_local_option(conn, i, CURL_YES);
267307
574614 if(tn->us_preferred[option] == CURL_YES) {
575615 tn->us[option] = CURL_YES;
576616 send_negotiation(conn, CURL_WILL, option);
617 if(tn->subnegotiation[option] == CURL_YES)
618 /* transmission of data option */
619 sendsuboption(conn, option);
620 }
621 else if(tn->subnegotiation[option] == CURL_YES) {
622 /* send information to achieve this option*/
623 tn->us[option] = CURL_YES;
624 send_negotiation(conn, CURL_WILL, option);
625 sendsuboption(conn, option);
577626 }
578627 else
579628 send_negotiation(conn, CURL_WONT, option);
601650 switch(tn->usq[option]) {
602651 case CURL_EMPTY:
603652 tn->us[option] = CURL_YES;
653 if(tn->subnegotiation[option] == CURL_YES) {
654 /* transmission of data option */
655 sendsuboption(conn, option);
656 }
604657 break;
605658 case CURL_OPPOSITE:
606659 tn->us[option] = CURL_WANTNO;
661714 size_t length) /* length of suboption data */
662715 {
663716 unsigned int i = 0;
717 unsigned short *pval;
664718
665719 if(data->set.verbose) {
666720 if(direction) {
697751
698752 if(CURL_TELOPT_OK(pointer[0])) {
699753 switch(pointer[0]) {
700 case CURL_TELOPT_TTYPE:
701 case CURL_TELOPT_XDISPLOC:
702 case CURL_TELOPT_NEW_ENVIRON:
703 infof(data, "%s", CURL_TELOPT(pointer[0]));
704 break;
705 default:
706 infof(data, "%s (unsupported)", CURL_TELOPT(pointer[0]));
707 break;
754 case CURL_TELOPT_TTYPE:
755 case CURL_TELOPT_XDISPLOC:
756 case CURL_TELOPT_NEW_ENVIRON:
757 case CURL_TELOPT_NAWS:
758 infof(data, "%s", CURL_TELOPT(pointer[0]));
759 break;
760 default:
761 infof(data, "%s (unsupported)", CURL_TELOPT(pointer[0]));
762 break;
708763 }
709764 }
710765 else
711766 infof(data, "%d (unknown)", pointer[i]);
712767
713 switch(pointer[1]) {
768 switch(pointer[0]) {
769 case CURL_TELOPT_NAWS:
770 pval = (unsigned short*)(pointer+1);
771 infof(data, "Width: %hu ; Height: %hu",
772 ntohs(pval[0]), ntohs(pval[1]));
773 break;
774 default:
775 switch(pointer[1]) {
714776 case CURL_TELQUAL_IS:
715777 infof(data, " IS");
716778 break;
723785 case CURL_TELQUAL_NAME:
724786 infof(data, " NAME");
725787 break;
726 }
727
728 switch(pointer[0]) {
788 }
789
790 switch(pointer[0]) {
729791 case CURL_TELOPT_TTYPE:
730792 case CURL_TELOPT_XDISPLOC:
731793 pointer[length] = 0;
736798 infof(data, " ");
737799 for(i = 3;i < length;i++) {
738800 switch(pointer[i]) {
739 case CURL_NEW_ENV_VAR:
740 infof(data, ", ");
741 break;
742 case CURL_NEW_ENV_VALUE:
743 infof(data, " = ");
744 break;
745 default:
746 infof(data, "%c", pointer[i]);
747 break;
801 case CURL_NEW_ENV_VAR:
802 infof(data, ", ");
803 break;
804 case CURL_NEW_ENV_VALUE:
805 infof(data, " = ");
806 break;
807 default:
808 infof(data, "%c", pointer[i]);
809 break;
748810 }
749811 }
750812 }
753815 for(i = 2; i < length; i++)
754816 infof(data, " %.2x", pointer[i]);
755817 break;
756 }
757
818 }
819 }
758820 if(direction)
759821 infof(data, "\n");
760822 }
769831 struct SessionHandle *data = conn->data;
770832 struct TELNET *tn = (struct TELNET *)conn->data->state.proto.telnet;
771833 CURLcode result = CURLE_OK;
834 int binary_option;
772835
773836 /* Add the user name as an environment variable if it
774837 was given on the command line */
813876 }
814877 tn->telnet_vars = beg;
815878 tn->us_preferred[CURL_TELOPT_NEW_ENVIRON] = CURL_YES;
879 continue;
880 }
881
882 /* Window Size */
883 if(Curl_raw_equal(option_keyword, "WS")) {
884 if(sscanf(option_arg, "%hu%*[xX]%hu",
885 &tn->subopt_wsx, &tn->subopt_wsy) == 2)
886 tn->us_preferred[CURL_TELOPT_NAWS] = CURL_YES;
887 else {
888 failf(data, "Syntax error in telnet option: %s", head->data);
889 result = CURLE_TELNET_OPTION_SYNTAX;
890 break;
891 }
892 continue;
893 }
894
895 /* To take care or not of the 8th bit in data exchange */
896 if(Curl_raw_equal(option_keyword, "BINARY")) {
897 binary_option=atoi(option_arg);
898 if(binary_option!=1) {
899 tn->us_preferred[CURL_TELOPT_BINARY] = CURL_NO;
900 tn->him_preferred[CURL_TELOPT_BINARY] = CURL_NO;
901 }
816902 continue;
817903 }
818904
911997 }
912998 return;
913999 }
1000
1001
1002 /*
1003 * sendsuboption()
1004 *
1005 * Send suboption information to the server side.
1006 */
1007
1008 static void sendsuboption(struct connectdata *conn, int option)
1009 {
1010 ssize_t bytes_written;
1011 int err;
1012 unsigned short x, y;
1013 unsigned char*uc1, *uc2;
1014
1015 struct SessionHandle *data = conn->data;
1016 struct TELNET *tn = (struct TELNET *)data->state.proto.telnet;
1017
1018 switch (option) {
1019 case CURL_TELOPT_NAWS:
1020 /* We prepare data to be sent */
1021 CURL_SB_CLEAR(tn);
1022 CURL_SB_ACCUM(tn, CURL_IAC);
1023 CURL_SB_ACCUM(tn, CURL_SB);
1024 CURL_SB_ACCUM(tn, CURL_TELOPT_NAWS);
1025 /* We must deal either with litte or big endien processors */
1026 /* Window size must be sent according to the 'network order' */
1027 x=htons(tn->subopt_wsx);
1028 y=htons(tn->subopt_wsy);
1029 uc1 = (unsigned char*)&x;
1030 uc2 = (unsigned char*)&y;
1031 CURL_SB_ACCUM(tn, uc1[0]);
1032 CURL_SB_ACCUM(tn, uc1[1]);
1033 CURL_SB_ACCUM(tn, uc2[0]);
1034 CURL_SB_ACCUM(tn, uc2[1]);
1035
1036 CURL_SB_ACCUM(tn, CURL_IAC);
1037 CURL_SB_ACCUM(tn, CURL_SE);
1038 CURL_SB_TERM(tn);
1039 /* data suboption is now ready */
1040
1041 printsub(data, '>', (unsigned char *)tn->subbuffer+2,
1042 CURL_SB_LEN(tn)-2);
1043
1044 /* we send the header of the suboption... */
1045 bytes_written = swrite(conn->sock[FIRSTSOCKET], tn->subbuffer, 3);
1046 if(bytes_written < 0) {
1047 err = SOCKERRNO;
1048 failf(data, "Sending data failed (%d)", err);
1049 }
1050 /* ... then the window size with the send_telnet_data() function
1051 to deal with 0xFF cases ... */
1052 send_telnet_data(conn, (char *)tn->subbuffer+3, 4);
1053 /* ... and the footer */
1054 bytes_written = swrite(conn->sock[FIRSTSOCKET], tn->subbuffer+7, 2);
1055 if(bytes_written < 0) {
1056 err = SOCKERRNO;
1057 failf(data, "Sending data failed (%d)", err);
1058 }
1059 break;
1060 }
1061 }
1062
9141063
9151064 static
9161065 CURLcode telrcv(struct connectdata *conn,
11231272 (void)status; /* unused */
11241273 (void)premature; /* not used */
11251274
1275 if(!tn)
1276 return CURLE_OK;
1277
11261278 curl_slist_free_all(tn->telnet_vars);
11271279 tn->telnet_vars = NULL;
11281280
1129 free(conn->data->state.proto.telnet);
1130 conn->data->state.proto.telnet = NULL;
1281 Curl_safefree(conn->data->state.proto.telnet);
11311282
11321283 return CURLE_OK;
11331284 }
14191570 pfd[0].fd = sockfd;
14201571 pfd[0].events = POLLIN;
14211572
1422 if(data->set.is_fread_set) {
1573 if(conn->fread_func != (curl_read_callback)fread) {
14231574 poll_cnt = 1;
14241575 interval_ms = 100; /* poll user-supplied read function */
14251576 }
14261577 else {
1427 pfd[1].fd = 0;
1578 /* really using fread, so infile is a FILE* */
1579 pfd[1].fd = fileno((FILE *)conn->fread_in);
14281580 pfd[1].events = POLLIN;
14291581 poll_cnt = 2;
14301582 interval_ms = 1 * 1000;
14771629
14781630 nread = 0;
14791631 if(poll_cnt == 2) {
1480 if(pfd[1].revents & POLLIN) { /* read from stdin */
1481 nread = read(0, buf, BUFSIZE - 1);
1632 if(pfd[1].revents & POLLIN) { /* read from in file */
1633 nread = read(pfd[1].fd, buf, BUFSIZE - 1);
14821634 }
14831635 }
14841636 else {
44 * | (__| |_| | _ <| |___
55 * \___|\___/|_| \_\_____|
66 *
7 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
7 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
88 *
99 * This software is licensed as described in the file COPYING, which
1010 * you should have received as part of this distribution. The terms
189189 ZERO_NULL, /* readwrite */
190190 PORT_TFTP, /* defport */
191191 CURLPROTO_TFTP, /* protocol */
192 PROTOPT_NONE /* flags */
192 PROTOPT_NONE | PROTOPT_NOURLQUERY /* flags */
193193 };
194194
195195 /**********************************************************
726726 }
727727 else {
728728 /* Re-send the data packet */
729 sbytes = sendto(state->sockfd, (void *)&state->spacket.data,
729 sbytes = sendto(state->sockfd, (void *)state->spacket.data,
730730 4+state->sbytes, SEND_4TH_ARG,
731731 (struct sockaddr *)&state->remote_addr,
732732 state->remote_addrlen);
119119 */
120120 double curlx_tvdiff_secs(struct timeval newer, struct timeval older)
121121 {
122 return (double)(newer.tv_sec-older.tv_sec)+
123 (double)(newer.tv_usec-older.tv_usec)/1000000.0;
122 if(newer.tv_sec != older.tv_sec)
123 return (double)(newer.tv_sec-older.tv_sec)+
124 (double)(newer.tv_usec-older.tv_usec)/1000000.0;
125 else
126 return (double)(newer.tv_usec-older.tv_usec)/1000000.0;
124127 }
125128
126129 /* return the number of seconds in the given input timeval struct */
44 * | (__| |_| | _ <| |___
55 * \___|\___/|_| \_\_____|
66 *
7 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
7 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
88 *
99 * This software is licensed as described in the file COPYING, which
1010 * you should have received as part of this distribution. The terms
331331 }
332332
333333 DEBUGF(infof(conn->data,
334 "Buffer after stream rewind (read_pos = %zu): [%s]",
334 "Buffer after stream rewind (read_pos = %zu): [%s]\n",
335335 conn->read_pos, buf));
336336 }
337337 #endif
605605
606606 dataleft = conn->chunk.dataleft;
607607 if(dataleft != 0) {
608 infof(conn->data, "Leftovers after chunking: %zu bytes", dataleft);
608 infof(conn->data, "Leftovers after chunking: %zu bytes\n",
609 dataleft);
609610 if(conn->data->multi &&
610611 Curl_multi_canPipeline(conn->data->multi)) {
611612 /* only attempt the rewind if we truly are pipelining */
14041405 return CURLE_OK;
14051406 }
14061407
1407 static CURLcode loadhostpairs(struct SessionHandle *data)
1408 {
1409 struct curl_slist *hostp;
1410 char hostname[256];
1411 char address[256];
1412 int port;
1413
1414 for(hostp = data->change.resolve; hostp; hostp = hostp->next ) {
1415 if(!hostp->data)
1416 continue;
1417 if(hostp->data[0] == '-') {
1418 /* TODO: mark an entry for removal */
1419 }
1420 else if(3 == sscanf(hostp->data, "%255[^:]:%d:%255s", hostname, &port,
1421 address)) {
1422 struct Curl_dns_entry *dns;
1423 Curl_addrinfo *addr;
1424
1425 addr = Curl_str2addr(address, port);
1426 if(!addr) {
1427 infof(data, "Resolve %s found illegal!\n", hostp->data);
1428 continue;
1429 }
1430 infof(data, "Added %s:%d:%s to DNS cache\n",
1431 hostname, port, address);
1432
1433 if(data->share)
1434 Curl_share_lock(data, CURL_LOCK_DATA_DNS, CURL_LOCK_ACCESS_SINGLE);
1435
1436 /* put this host in the cache */
1437 dns = Curl_cache_addr(data, addr, hostname, port);
1438
1439 if(data->share)
1440 Curl_share_unlock(data, CURL_LOCK_DATA_DNS);
1441
1442 if(!dns) {
1443 Curl_freeaddrinfo(addr);
1444 return CURLE_OUT_OF_MEMORY;
1445 }
1446 }
1447 }
1448 data->change.resolve = NULL; /* dealt with now */
1449
1450 return CURLE_OK;
1451 }
1452
14531408
14541409 /*
14551410 * Curl_pretransfer() is called immediately before a transfer starts.
14641419 }
14651420
14661421 /* Init the SSL session ID cache here. We do it here since we want to do it
1467 after the *_setopt() calls (that could change the size of the cache) but
1422 after the *_setopt() calls (that could specify the size of the cache) but
14681423 before any transfer takes place. */
1469 res = Curl_ssl_initsessions(data, data->set.ssl.numsessions);
1424 res = Curl_ssl_initsessions(data, data->set.ssl.max_ssl_sessions);
14701425 if(res)
14711426 return res;
14721427
14891444
14901445 /* If there is a list of host pairs to deal with */
14911446 if(data->change.resolve)
1492 res = loadhostpairs(data);
1447 res = Curl_loadhostpairs(data);
14931448
14941449 if(!res) {
14951450 /* Allow data->set.use_port to set which port to use. This needs to be
23632318 (data->state.proto.http->sending == HTTPSEND_BODY)) {
23642319 /* wait with write until we either got 100-continue or a timeout */
23652320 k->exp100 = EXP100_AWAITING_CONTINUE;
2366 k->start100 = k->start;
2321 k->start100 = Curl_tvnow();
23672322
23682323 /* set a timeout for the multi interface */
23692324 Curl_expire(data, CURL_TIMEOUT_EXPECT_100);
44 * | (__| |_| | _ <| |___
55 * \___|\___/|_| \_\_____|
66 *
7 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
7 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
88 *
99 * This software is licensed as described in the file COPYING, which
1010 * you should have received as part of this distribution. The terms
136136 static void conn_free(struct connectdata *conn);
137137 static void signalPipeClose(struct curl_llist *pipeline, bool pipe_broke);
138138 static CURLcode do_init(struct connectdata *conn);
139
139 static CURLcode parse_url_userpass(struct SessionHandle *data,
140 struct connectdata *conn,
141 char *user, char *passwd);
140142 /*
141143 * Protocol table.
142144 */
466468 return CURLE_OK;
467469 }
468470
469 if(data->dns.hostcachetype == HCACHE_PRIVATE) {
470 Curl_hash_destroy(data->dns.hostcache);
471 data->dns.hostcachetype = HCACHE_NONE;
472 data->dns.hostcache = NULL;
473 }
471 if(data->dns.hostcachetype == HCACHE_PRIVATE)
472 Curl_hostcache_destroy(data);
474473
475474 if(data->state.rangestringalloc)
476475 free(data->state.range);
685684 set->dns_cache_timeout = 60; /* Timeout every 60 seconds by default */
686685
687686 /* Set the default size of the SSL session ID cache */
688 set->ssl.numsessions = 5;
687 set->ssl.max_ssl_sessions = 5;
689688
690689 set->proxyport = CURL_DEFAULT_PROXY_PORT; /* from url.h */
691690 set->proxytype = CURLPROXY_HTTP; /* defaults to HTTP proxy */
16761675 data->set.connecttimeout = va_arg(param, long);
16771676 break;
16781677
1678 case CURLOPT_ACCEPTTIMEOUT_MS:
1679 /*
1680 * The maximum time you allow curl to wait for server connect
1681 */
1682 data->set.accepttimeout = va_arg(param, long);
1683 break;
1684
16791685 case CURLOPT_USERPWD:
16801686 /*
16811687 * user:password to use in the operation
21012107 data->cookies = NULL;
21022108 #endif
21032109
2104 if(data->share->sslsession == data->state.session) {
2110 if(data->share->sslsession == data->state.session)
21052111 data->state.session = NULL;
2106 data->set.ssl.numsessions = 0;
2107 }
21082112
21092113 data->share->dirty--;
21102114
21232127 if(data->share->hostcache) {
21242128 /* use shared host cache, first free the private one if any */
21252129 if(data->dns.hostcachetype == HCACHE_PRIVATE)
2126 Curl_hash_destroy(data->dns.hostcache);
2130 Curl_hostcache_destroy(data);
21272131
21282132 data->dns.hostcache = data->share->hostcache;
21292133 data->dns.hostcachetype = HCACHE_SHARED;
21382142 }
21392143 #endif /* CURL_DISABLE_HTTP */
21402144 if(data->share->sslsession) {
2141 data->set.ssl.numsessions = data->share->nsslsession;
2145 data->set.ssl.max_ssl_sessions = data->share->max_ssl_sessions;
21422146 data->state.session = data->share->sslsession;
21432147 }
21442148 Curl_share_unlock(data, CURL_LOCK_DATA_SHARE);
25302534 data->set.ssl.authtype = CURL_TLSAUTH_NONE;
25312535 break;
25322536 #endif
2537 case CURLOPT_DNS_SERVERS:
2538 result = Curl_set_dns_servers(data, va_arg(param, char *));
2539 break;
2540
25332541 default:
25342542 /* unknown tag and its companion, just ignore: */
25352543 result = CURLE_UNKNOWN_OPTION;
26142622 conn->dns_entry = NULL;
26152623 }
26162624
2617 #if defined(DEBUGBUILD) && defined(AGGRESIVE_TEST)
2618 /* scan for DNS cache entries still marked as in use */
2619 Curl_hash_apply(data->hostcache,
2620 NULL, Curl_scan_cache_used);
2621 #endif
2622
26232625 Curl_hostcache_prune(data); /* kill old DNS cache entries */
26242626
26252627 {
29562958 if((needle->handler->flags&PROTOPT_SSL) !=
29572959 (check->handler->flags&PROTOPT_SSL))
29582960 /* don't do mixed SSL and non-SSL connections */
2959 continue;
2961 if(!(needle->handler->protocol & check->handler->protocol))
2962 /* except protocols that have been upgraded via TLS */
2963 continue;
29602964
29612965 if(needle->handler->flags&PROTOPT_SSL) {
29622966 if((data->set.ssl.verifypeer != check->verifypeer) ||
30003004 (needle->port == check->port))) {
30013005 /* The requested connection does not use a HTTP proxy or it uses SSL or
30023006 it is a non-SSL protocol tunneled over the same http proxy name and
3003 port number */
3004
3005 if(Curl_raw_equal(needle->handler->scheme, check->handler->scheme) &&
3007 port number or it is a non-SSL protocol which is allowed to be
3008 upgraded via TLS */
3009
3010 if((Curl_raw_equal(needle->handler->scheme, check->handler->scheme) ||
3011 needle->handler->protocol & check->handler->protocol) &&
30063012 Curl_raw_equal(needle->host.name, check->host.name) &&
3007 (needle->remote_port == check->remote_port) ) {
3013 needle->remote_port == check->remote_port) {
30083014 if(needle->handler->flags & PROTOPT_SSL) {
3009 /* This is SSL, verify that we're using the same
3010 ssl options as well */
3015 /* This is a SSL connection so verify that we're using the same
3016 SSL options as well */
30113017 if(!Curl_ssl_config_matches(&needle->ssl_config,
30123018 &check->ssl_config)) {
30133019 DEBUGF(infof(data,
30183024 }
30193025 else if(check->ssl[FIRSTSOCKET].state != ssl_connection_complete) {
30203026 DEBUGF(infof(data,
3021 "Connection #%ld has not started ssl connect, "
3027 "Connection #%ld has not started SSL connect, "
30223028 "can't reuse\n",
30233029 check->connectindex));
30243030 continue;
33403346 return CURLE_OK;
33413347 }
33423348
3343 if(!conn->bits.tcpconnect[FIRSTSOCKET]) {
3344
3345 Curl_pgrsTime(data, TIMER_CONNECT); /* connect done */
3346 Curl_verboseconnect(conn);
3347 }
3349 Curl_pgrsTime(data, TIMER_CONNECT); /* connect done */
3350 Curl_verboseconnect(conn);
33483351
33493352 if(!conn->bits.protoconnstart) {
33503353 if(conn->handler->connect_it) {
34803483 host->name = host->encalloc;
34813484 }
34823485 #else
3483 infof (data, "IDN support not present, can't parse Unicode domains");
3486 infof(data, "IDN support not present, can't parse Unicode domains\n");
34843487 #endif
34853488 }
34863489 }
36643667 */
36653668 static CURLcode parseurlandfillconn(struct SessionHandle *data,
36663669 struct connectdata *conn,
3667 bool *prot_missing)
3670 bool *prot_missing,
3671 char *user,
3672 char *passwd)
36683673 {
36693674 char *at;
36703675 char *fragment;
36733678 int rc;
36743679 char protobuf[16];
36753680 const char *protop;
3681 CURLcode result;
36763682
36773683 *prot_missing = FALSE;
36783684
38383844 memmove(&path[1], path, strlen(path)+1);
38393845 path[0] = '/';
38403846 }
3847
3848 /*************************************************************
3849 * Parse a user name and password in the URL and strip it out
3850 * of the host name
3851 *************************************************************/
3852 result = parse_url_userpass(data, conn, user, passwd);
3853 if(result != CURLE_OK)
3854 return result;
38413855
38423856 if(conn->host.name[0] == '[') {
38433857 /* This looks like an IPv6 address literal. See if there is an address
46624676 old_conn->proxypasswd = NULL;
46634677 }
46644678
4665 /* host can change, when doing keepalive with a proxy ! */
4666 if(conn->bits.proxy) {
4667 Curl_safefree(conn->host.rawalloc);
4668 conn->host=old_conn->host;
4669 }
4670 else
4671 /* free the newly allocated name buffer */
4672 Curl_safefree(old_conn->host.rawalloc);
4679 /* host can change, when doing keepalive with a proxy or if the case is
4680 different this time etc */
4681 Curl_safefree(conn->host.rawalloc);
4682 conn->host=old_conn->host;
46734683
46744684 /* persist connection info in session handle */
46754685 Curl_persistconninfo(conn);
47854795 conn->host.name = conn->host.rawalloc;
47864796 conn->host.name[0] = 0;
47874797
4788 result = parseurlandfillconn(data, conn, &prot_missing);
4798 result = parseurlandfillconn(data, conn, &prot_missing, user, passwd);
47894799 if(result != CURLE_OK)
47904800 return result;
47914801
48154825 }
48164826
48174827 /*************************************************************
4818 * Parse a user name and password in the URL and strip it out
4819 * of the host name
4828 * If the protocol can't handle url query strings, then cut
4829 * of the unhandable part
48204830 *************************************************************/
4821 result = parse_url_userpass(data, conn, user, passwd);
4822 if(result != CURLE_OK)
4823 return result;
4831 if((conn->given->flags&PROTOPT_NOURLQUERY)) {
4832 char *path_q_sep = strchr(conn->data->state.path, '?');
4833 if(path_q_sep) {
4834 /* according to rfc3986, allow the query (?foo=bar)
4835 also on protocols that can't handle it.
4836
4837 cut the string-part after '?'
4838 */
4839
4840 /* terminate the string */
4841 path_q_sep[0] = 0;
4842 }
4843 }
48244844
48254845 #ifndef CURL_DISABLE_PROXY
48264846 /*************************************************************
48794899 return CURLE_UNSUPPORTED_PROTOCOL;
48804900 #else
48814901 /* force this connection's protocol to become HTTP if not already
4882 compatible */
4883 if(!(conn->handler->protocol & CURLPROTO_HTTP))
4902 compatible - if it isn't tunneling through */
4903 if(!(conn->handler->protocol & CURLPROTO_HTTP) &&
4904 !conn->bits.tunnel_proxy)
48844905 conn->handler = &Curl_handler_http;
48854906
48864907 conn->bits.httpproxy = TRUE;
53645385 k->hbufp = data->state.headerbuff;
53655386 k->ignorebody=FALSE;
53665387
5367 Curl_pgrsTime(data, TIMER_PRETRANSFER);
53685388 Curl_speedinit(data);
53695389
53705390 Curl_pgrsSetUploadCounter(data, 0);
53845404 conn->data->req.chunk=FALSE;
53855405 conn->data->req.maxfd = (conn->sockfd>conn->writesockfd?
53865406 conn->sockfd:conn->writesockfd)+1;
5407 Curl_pgrsTime(conn->data, TIMER_PRETRANSFER);
53875408 }
53885409
53895410 CURLcode Curl_do(struct connectdata **connp, bool *done)
54245445 return result;
54255446 }
54265447
5427 CURLcode Curl_do_more(struct connectdata *conn)
5448 /*
5449 * Curl_do_more() is called during the DO_MORE multi state. It is basically a
5450 * second stage DO state which (wrongly) was introduced to support FTP's
5451 * second connection.
5452 *
5453 * TODO: A future libcurl should be able to work away this state.
5454 *
5455 */
5456
5457 CURLcode Curl_do_more(struct connectdata *conn, bool *completed)
54285458 {
54295459 CURLcode result=CURLE_OK;
54305460
5461 *completed = FALSE;
5462
54315463 if(conn->handler->do_more)
5432 result = conn->handler->do_more(conn);
5433
5434 if(result == CURLE_OK)
5464 result = conn->handler->do_more(conn, completed);
5465
5466 if(!result && *completed)
54355467 /* do_complete must be called after the protocol-specific DO function */
54365468 do_complete(conn);
54375469
3636 CURLcode Curl_connect(struct SessionHandle *, struct connectdata **,
3737 bool *async, bool *protocol_connect);
3838 CURLcode Curl_do(struct connectdata **, bool *done);
39 CURLcode Curl_do_more(struct connectdata *);
39 CURLcode Curl_do_more(struct connectdata *, bool *completed);
4040 CURLcode Curl_done(struct connectdata **, CURLcode, bool premature);
4141 CURLcode Curl_disconnect(struct connectdata *, bool dead_connection);
4242 CURLcode Curl_protocol_connect(struct connectdata *conn, bool *done);
66 * | (__| |_| | _ <| |___
77 * \___|\___/|_| \_\_____|
88 *
9 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
9 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
1010 *
1111 * This software is licensed as described in the file COPYING, which
1212 * you should have received as part of this distribution. The terms
298298 char *random_file; /* path to file containing "random" data */
299299 char *egdsocket; /* path to file containing the EGD daemon socket */
300300 char *cipher_list; /* list of ciphers to use */
301 long numsessions; /* SSL session id cache size */
301 size_t max_ssl_sessions; /* SSL session id cache size */
302302 curl_ssl_ctx_callback fsslctx; /* function to initialize ssl ctx */
303303 void *fsslctxp; /* parameter for call back */
304304 bool sessionid; /* cache session IDs or not */
410410
411411 bool do_more; /* this is set TRUE if the ->curl_do_more() function is
412412 supposed to be called, after ->curl_do() */
413
414413 bool tcpconnect[2]; /* the TCP layer (or similar) is connected, this is set
415414 the first time on the first connect function call */
416415 bool protoconnstart;/* the protocol layer has STARTED its operation after
509508 /* These function pointer types are here only to allow easier typecasting
510509 within the source when we need to cast between data pointers (such as NULL)
511510 and function pointers. */
512 typedef CURLcode (*Curl_do_more_func)(struct connectdata *);
511 typedef CURLcode (*Curl_do_more_func)(struct connectdata *, bool *);
513512 typedef CURLcode (*Curl_done_func)(struct connectdata *, CURLcode, bool);
514513
515514
712711 #define PROTOPT_NONETWORK (1<<4) /* protocol doesn't use the network! */
713712 #define PROTOPT_NEEDSPWD (1<<5) /* needs a password, and if none is set it
714713 gets a default */
714 #define PROTOPT_NOURLQUERY (1<<6) /* protocol can't handle
715 url query strings (?foo=bar) ! */
715716
716717
717718 /* return the count of bytes sent, or -1 on error */
813814 struct timeval created; /* creation time */
814815 curl_socket_t sock[2]; /* two sockets, the second is used for the data
815816 transfer when doing FTP */
816
817 bool sock_accepted[2]; /* TRUE if the socket on this index was created with
818 accept() */
817819 Curl_recv *recv[2];
818820 Curl_send *send[2];
819821
10341036
10351037 struct timeval start;
10361038 struct timeval t_startsingle;
1039 struct timeval t_acceptdata;
10371040 #define CURR_TIME (5+1) /* 6 entries for 5 seconds */
10381041
10391042 curl_off_t speeder[ CURR_TIME ];
11361139 following not keep sending user+password... This is
11371140 strdup() data.
11381141 */
1139 struct curl_ssl_session *session; /* array of 'numsessions' size */
1142 struct curl_ssl_session *session; /* array of 'max_ssl_sessions' size */
11401143 long sessionage; /* number of the most recent session */
11411144 char *tempwrite; /* allocated buffer to keep data in when a write
11421145 callback returns to make the connection paused */
14031406 void *ioctl_client; /* pointer to pass to the ioctl callback */
14041407 long timeout; /* in milliseconds, 0 means no timeout */
14051408 long connecttimeout; /* in milliseconds, 0 means no timeout */
1409 long accepttimeout; /* in milliseconds, 0 means no timeout */
14061410 long server_response_timeout; /* in milliseconds, 0 means no timeout */
14071411 long tftp_blksize ; /* in bytes, 0 means use default */
14081412 curl_off_t infilesize; /* size of file to upload, -1 means unknown */
44 * | (__| |_| | _ <| |___
55 * \___|\___/|_| \_\_____|
66 *
7 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
7 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
88 *
99 * This software is licensed as described in the file COPYING, which
1010 * you should have received as part of this distribution. The terms
174174 }
175175
176176 /*
177 ** unsigned size_t to unsigned long
178 */
179
180 unsigned long curlx_uztoul(size_t uznum)
181 {
182 #ifdef __INTEL_COMPILER
183 # pragma warning(push)
184 # pragma warning(disable:810) /* conversion may lose significant bits */
185 #endif
186
187 return (unsigned long)(uznum & (size_t) CURL_MASK_ULONG);
188
189 #ifdef __INTEL_COMPILER
190 # pragma warning(pop)
191 #endif
192 }
193
194 /*
177195 ** signed long to signed int
178196 */
179197
66 * | (__| |_| | _ <| |___
77 * \___|\___/|_| \_\_____|
88 *
9 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
9 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
1010 *
1111 * This software is licensed as described in the file COPYING, which
1212 * you should have received as part of this distribution. The terms
2626 unsigned char curlx_ultouc(unsigned long ulnum);
2727
2828 int curlx_uztosi(size_t uznum);
29
30 unsigned long curlx_uztoul(size_t uznum);
2931
3032 int curlx_sltosi(long slnum);
3133
11 #***************************************************************************
22
33 # File version for 'aclocal' use. Keep it a single number.
4 # serial 4
4 # serial 5
55
66 dnl CURL_OVERRIDE_AUTOCONF
77 dnl -------------------------------------------------
1414 AC_BEFORE([$0],[AC_PROG_LIBTOOL])
1515 # using curl-override.m4
1616 ])
17
18 dnl Override some Libtool tests
19 dnl -------------------------------------------------
20 dnl This is done to prevent Libtool 1.5.X from doing
21 dnl unnecesary C++, Fortran and Java tests and reduce
22 dnl resulting configure script by nearly 300 Kb.
23
24 m4_define([AC_LIBTOOL_LANG_CXX_CONFIG],[:])
25 m4_define([AC_LIBTOOL_LANG_F77_CONFIG],[:])
26 m4_define([AC_LIBTOOL_LANG_GCJ_CONFIG],[:])
2717
2818 dnl Override Autoconf's AC_LANG_PROGRAM (C)
2919 dnl -------------------------------------------------
38103810 #endif
38113811 _LT_EOF
38123812 # Now try linking the two files.
3813 mv conftest.$ac_objext conftstm.$ac_objext
3813 mv -f conftest.$ac_objext conftstm.$ac_objext
38143814 lt_globsym_save_LIBS=$LIBS
38153815 lt_globsym_save_CFLAGS=$CFLAGS
38163816 LIBS="conftstm.$ac_objext"
52355235
52365236 hpux9*)
52375237 if test "$GCC" = yes; then
5238 _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
5238 _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv -f $output_objdir/$soname $lib'
52395239 else
5240 _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
5240 _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv -f $output_objdir/$soname $lib'
52415241 fi
52425242 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
52435243 _LT_TAGVAR(hardcode_libdir_separator, $1)=:
62636263 _LT_TAGVAR(ld_shlibs, $1)=no
62646264 ;;
62656265 aCC*)
6266 _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
6266 _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv -f $output_objdir/$soname $lib'
62676267 # Commands to make compiler produce verbose output that lists
62686268 # what "hidden" libraries, object files and flags are used when
62696269 # linking a shared library.
62766276 ;;
62776277 *)
62786278 if test "$GXX" = yes; then
6279 _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
6279 _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv -f $output_objdir/$soname $lib'
62806280 else
62816281 # FIXME: insert proper C++ library support
62826282 _LT_TAGVAR(ld_shlibs, $1)=no
64126412 # KCC will only create a shared library if the output file
64136413 # ends with ".so" (or ".sl" for HP-UX), so rename the library
64146414 # to its proper name (with version) after linking.
6415 _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
6416 _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
6415 _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv -f \$templib $lib'
6416 _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv -f \$templib $lib'
64176417 # Commands to make compiler produce verbose output that lists
64186418 # what "hidden" libraries, object files and flags are used when
64196419 # linking a shared library.
66166616 # KCC will only create a shared library if the output file
66176617 # ends with ".so" (or ".sl" for HP-UX), so rename the library
66186618 # to its proper name (with version) after linking.
6619 _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
6619 _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv -f \$templib $lib'
66206620
66216621 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
66226622 _LT_TAGVAR(hardcode_libdir_separator, $1)=:
77637763 fi
77647764 while true; do
77657765 cat conftest.in conftest.in >conftest.tmp
7766 mv conftest.tmp conftest.in
7766 mv -f conftest.tmp conftest.in
77677767 cp conftest.in conftest.nl
77687768 echo >>conftest.nl
77697769 $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
0 #---------------------------------------------------------------------------
1 #
2 # zz50-xc-ovr.m4
3 #
4 # Copyright (c) 2011 Daniel Stenberg <daniel@haxx.se>
5 #
6 # Permission to use, copy, modify, and distribute this software for any
7 # purpose with or without fee is hereby granted, provided that the above
8 # copyright notice and this permission notice appear in all copies.
9 #
10 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 #
18 #---------------------------------------------------------------------------
19
20 # serial 1
21
22
23 dnl The funny name of this file is intentional in order to make it
24 dnl sort alphabetically after any libtool, autoconf or automake
25 dnl provided .m4 macro file that might get copied into this same
26 dnl subdirectory. This allows that macro (re)definitions from this
27 dnl file may override those provided in other files.
28
29
30 dnl Override some language related macros
31 dnl -------------------------------------------------
32 dnl This is done to prevent Libtool 1.5.X from doing
33 dnl unnecesary C++, Fortran and Java tests when only
34 dnl using C language and reduce resulting configure
35 dnl script by nearly 300 Kb.
36
37 m4_ifdef([AC_LIBTOOL_LANG_CXX_CONFIG],
38 [m4_undefine([AC_LIBTOOL_LANG_CXX_CONFIG])])
39 m4_define([AC_LIBTOOL_LANG_CXX_CONFIG],[:])
40
41 m4_ifdef([AC_LIBTOOL_LANG_F77_CONFIG],
42 [m4_undefine([AC_LIBTOOL_LANG_F77_CONFIG])])
43 m4_define([AC_LIBTOOL_LANG_F77_CONFIG],[:])
44
45 m4_ifdef([AC_LIBTOOL_LANG_GCJ_CONFIG],
46 [m4_undefine([AC_LIBTOOL_LANG_GCJ_CONFIG])])
47 m4_define([AC_LIBTOOL_LANG_GCJ_CONFIG],[:])
48
49
50 dnl XC_OVR_ZZ50
51 dnl -------------------------------------------------
52 dnl Placing a call to this macro in configure.ac will
53 dnl make macros in this file visible to other macros
54 dnl used for same configure script, overriding those
55 dnl provided elsewhere.
56
57 AC_DEFUN([XC_OVR_ZZ50],
58 [AC_BEFORE([$0],[AC_PROG_LIBTOOL])])
59
4646 $(top_srcdir)/m4/curl-system.m4 $(top_srcdir)/m4/libtool.m4 \
4747 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
4848 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
49 $(top_srcdir)/m4/xc-translit.m4 $(top_srcdir)/acinclude.m4 \
49 $(top_srcdir)/m4/xc-translit.m4 \
50 $(top_srcdir)/m4/zz50-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \
5051 $(top_srcdir)/configure.ac
5152 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
5253 $(ACLOCAL_M4)
199200 USE_EMBEDDED_ARES_FALSE = @USE_EMBEDDED_ARES_FALSE@
200201 USE_EMBEDDED_ARES_TRUE = @USE_EMBEDDED_ARES_TRUE@
201202 USE_GNUTLS = @USE_GNUTLS@
203 USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
202204 USE_LIBRTMP = @USE_LIBRTMP@
203205 USE_LIBSSH2 = @USE_LIBSSH2@
204206 USE_MANUAL_FALSE = @USE_MANUAL_FALSE@
209211 USE_SSLEAY = @USE_SSLEAY@
210212 USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
211213 VERSION = @VERSION@
214 VERSIONED_FLAVOUR = @VERSIONED_FLAVOUR@
215 VERSIONED_SYMBOLS_FALSE = @VERSIONED_SYMBOLS_FALSE@
216 VERSIONED_SYMBOLS_TRUE = @VERSIONED_SYMBOLS_TRUE@
212217 VERSIONNUM = @VERSIONNUM@
213218 ac_ct_AR = @ac_ct_AR@
214219 ac_ct_CC = @ac_ct_CC@
4747 $(top_srcdir)/m4/curl-system.m4 $(top_srcdir)/m4/libtool.m4 \
4848 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
4949 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
50 $(top_srcdir)/m4/xc-translit.m4 $(top_srcdir)/acinclude.m4 \
50 $(top_srcdir)/m4/xc-translit.m4 \
51 $(top_srcdir)/m4/zz50-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \
5152 $(top_srcdir)/configure.ac
5253 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
5354 $(ACLOCAL_M4)
191192 USE_EMBEDDED_ARES_FALSE = @USE_EMBEDDED_ARES_FALSE@
192193 USE_EMBEDDED_ARES_TRUE = @USE_EMBEDDED_ARES_TRUE@
193194 USE_GNUTLS = @USE_GNUTLS@
195 USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
194196 USE_LIBRTMP = @USE_LIBRTMP@
195197 USE_LIBSSH2 = @USE_LIBSSH2@
196198 USE_MANUAL_FALSE = @USE_MANUAL_FALSE@
201203 USE_SSLEAY = @USE_SSLEAY@
202204 USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
203205 VERSION = @VERSION@
206 VERSIONED_FLAVOUR = @VERSIONED_FLAVOUR@
207 VERSIONED_SYMBOLS_FALSE = @VERSIONED_SYMBOLS_FALSE@
208 VERSIONED_SYMBOLS_TRUE = @VERSIONED_SYMBOLS_TRUE@
204209 VERSIONNUM = @VERSIONNUM@
205210 ac_ct_AR = @ac_ct_AR@
206211 ac_ct_CC = @ac_ct_CC@
4747 $(top_srcdir)/m4/curl-system.m4 $(top_srcdir)/m4/libtool.m4 \
4848 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
4949 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
50 $(top_srcdir)/m4/xc-translit.m4 $(top_srcdir)/acinclude.m4 \
50 $(top_srcdir)/m4/xc-translit.m4 \
51 $(top_srcdir)/m4/zz50-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \
5152 $(top_srcdir)/configure.ac
5253 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
5354 $(ACLOCAL_M4)
191192 USE_EMBEDDED_ARES_FALSE = @USE_EMBEDDED_ARES_FALSE@
192193 USE_EMBEDDED_ARES_TRUE = @USE_EMBEDDED_ARES_TRUE@
193194 USE_GNUTLS = @USE_GNUTLS@
195 USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
194196 USE_LIBRTMP = @USE_LIBRTMP@
195197 USE_LIBSSH2 = @USE_LIBSSH2@
196198 USE_MANUAL_FALSE = @USE_MANUAL_FALSE@
201203 USE_SSLEAY = @USE_SSLEAY@
202204 USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
203205 VERSION = @VERSION@
206 VERSIONED_FLAVOUR = @VERSIONED_FLAVOUR@
207 VERSIONED_SYMBOLS_FALSE = @VERSIONED_SYMBOLS_FALSE@
208 VERSIONED_SYMBOLS_TRUE = @VERSIONED_SYMBOLS_TRUE@
204209 VERSIONNUM = @VERSIONNUM@
205210 ac_ct_AR = @ac_ct_AR@
206211 ac_ct_CC = @ac_ct_CC@
4646 $(top_srcdir)/m4/curl-system.m4 $(top_srcdir)/m4/libtool.m4 \
4747 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
4848 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
49 $(top_srcdir)/m4/xc-translit.m4 $(top_srcdir)/acinclude.m4 \
49 $(top_srcdir)/m4/xc-translit.m4 \
50 $(top_srcdir)/m4/zz50-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \
5051 $(top_srcdir)/configure.ac
5152 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
5253 $(ACLOCAL_M4)
199200 USE_EMBEDDED_ARES_FALSE = @USE_EMBEDDED_ARES_FALSE@
200201 USE_EMBEDDED_ARES_TRUE = @USE_EMBEDDED_ARES_TRUE@
201202 USE_GNUTLS = @USE_GNUTLS@
203 USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
202204 USE_LIBRTMP = @USE_LIBRTMP@
203205 USE_LIBSSH2 = @USE_LIBSSH2@
204206 USE_MANUAL_FALSE = @USE_MANUAL_FALSE@
209211 USE_SSLEAY = @USE_SSLEAY@
210212 USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
211213 VERSION = @VERSION@
214 VERSIONED_FLAVOUR = @VERSIONED_FLAVOUR@
215 VERSIONED_SYMBOLS_FALSE = @VERSIONED_SYMBOLS_FALSE@
216 VERSIONED_SYMBOLS_TRUE = @VERSIONED_SYMBOLS_TRUE@
212217 VERSIONNUM = @VERSIONNUM@
213218 ac_ct_AR = @ac_ct_AR@
214219 ac_ct_CC = @ac_ct_CC@
4747 $(top_srcdir)/m4/curl-system.m4 $(top_srcdir)/m4/libtool.m4 \
4848 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
4949 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
50 $(top_srcdir)/m4/xc-translit.m4 $(top_srcdir)/acinclude.m4 \
50 $(top_srcdir)/m4/xc-translit.m4 \
51 $(top_srcdir)/m4/zz50-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \
5152 $(top_srcdir)/configure.ac
5253 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
5354 $(ACLOCAL_M4)
191192 USE_EMBEDDED_ARES_FALSE = @USE_EMBEDDED_ARES_FALSE@
192193 USE_EMBEDDED_ARES_TRUE = @USE_EMBEDDED_ARES_TRUE@
193194 USE_GNUTLS = @USE_GNUTLS@
195 USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
194196 USE_LIBRTMP = @USE_LIBRTMP@
195197 USE_LIBSSH2 = @USE_LIBSSH2@
196198 USE_MANUAL_FALSE = @USE_MANUAL_FALSE@
201203 USE_SSLEAY = @USE_SSLEAY@
202204 USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
203205 VERSION = @VERSION@
206 VERSIONED_FLAVOUR = @VERSIONED_FLAVOUR@
207 VERSIONED_SYMBOLS_FALSE = @VERSIONED_SYMBOLS_FALSE@
208 VERSIONED_SYMBOLS_TRUE = @VERSIONED_SYMBOLS_TRUE@
204209 VERSIONNUM = @VERSIONNUM@
205210 ac_ct_AR = @ac_ct_AR@
206211 ac_ct_CC = @ac_ct_CC@
4646 $(top_srcdir)/m4/curl-system.m4 $(top_srcdir)/m4/libtool.m4 \
4747 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
4848 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
49 $(top_srcdir)/m4/xc-translit.m4 $(top_srcdir)/acinclude.m4 \
49 $(top_srcdir)/m4/xc-translit.m4 \
50 $(top_srcdir)/m4/zz50-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \
5051 $(top_srcdir)/configure.ac
5152 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
5253 $(ACLOCAL_M4)
199200 USE_EMBEDDED_ARES_FALSE = @USE_EMBEDDED_ARES_FALSE@
200201 USE_EMBEDDED_ARES_TRUE = @USE_EMBEDDED_ARES_TRUE@
201202 USE_GNUTLS = @USE_GNUTLS@
203 USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
202204 USE_LIBRTMP = @USE_LIBRTMP@
203205 USE_LIBSSH2 = @USE_LIBSSH2@
204206 USE_MANUAL_FALSE = @USE_MANUAL_FALSE@
209211 USE_SSLEAY = @USE_SSLEAY@
210212 USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
211213 VERSION = @VERSION@
214 VERSIONED_FLAVOUR = @VERSIONED_FLAVOUR@
215 VERSIONED_SYMBOLS_FALSE = @VERSIONED_SYMBOLS_FALSE@
216 VERSIONED_SYMBOLS_TRUE = @VERSIONED_SYMBOLS_TRUE@
212217 VERSIONNUM = @VERSIONNUM@
213218 ac_ct_AR = @ac_ct_AR@
214219 ac_ct_CC = @ac_ct_CC@
4949 $(top_srcdir)/m4/curl-system.m4 $(top_srcdir)/m4/libtool.m4 \
5050 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
5151 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
52 $(top_srcdir)/m4/xc-translit.m4 $(top_srcdir)/acinclude.m4 \
52 $(top_srcdir)/m4/xc-translit.m4 \
53 $(top_srcdir)/m4/zz50-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \
5354 $(top_srcdir)/configure.ac
5455 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
5556 $(ACLOCAL_M4)
193194 USE_EMBEDDED_ARES_FALSE = @USE_EMBEDDED_ARES_FALSE@
194195 USE_EMBEDDED_ARES_TRUE = @USE_EMBEDDED_ARES_TRUE@
195196 USE_GNUTLS = @USE_GNUTLS@
197 USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
196198 USE_LIBRTMP = @USE_LIBRTMP@
197199 USE_LIBSSH2 = @USE_LIBSSH2@
198200 USE_MANUAL_FALSE = @USE_MANUAL_FALSE@
203205 USE_SSLEAY = @USE_SSLEAY@
204206 USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
205207 VERSION = @VERSION@
208 VERSIONED_FLAVOUR = @VERSIONED_FLAVOUR@
209 VERSIONED_SYMBOLS_FALSE = @VERSIONED_SYMBOLS_FALSE@
210 VERSIONED_SYMBOLS_TRUE = @VERSIONED_SYMBOLS_TRUE@
206211 VERSIONNUM = @VERSIONNUM@
207212 ac_ct_AR = @ac_ct_AR@
208213 ac_ct_CC = @ac_ct_CC@
4646 $(top_srcdir)/m4/curl-system.m4 $(top_srcdir)/m4/libtool.m4 \
4747 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
4848 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
49 $(top_srcdir)/m4/xc-translit.m4 $(top_srcdir)/acinclude.m4 \
49 $(top_srcdir)/m4/xc-translit.m4 \
50 $(top_srcdir)/m4/zz50-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \
5051 $(top_srcdir)/configure.ac
5152 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
5253 $(ACLOCAL_M4)
199200 USE_EMBEDDED_ARES_FALSE = @USE_EMBEDDED_ARES_FALSE@
200201 USE_EMBEDDED_ARES_TRUE = @USE_EMBEDDED_ARES_TRUE@
201202 USE_GNUTLS = @USE_GNUTLS@
203 USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
202204 USE_LIBRTMP = @USE_LIBRTMP@
203205 USE_LIBSSH2 = @USE_LIBSSH2@
204206 USE_MANUAL_FALSE = @USE_MANUAL_FALSE@
209211 USE_SSLEAY = @USE_SSLEAY@
210212 USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
211213 VERSION = @VERSION@
214 VERSIONED_FLAVOUR = @VERSIONED_FLAVOUR@
215 VERSIONED_SYMBOLS_FALSE = @VERSIONED_SYMBOLS_FALSE@
216 VERSIONED_SYMBOLS_TRUE = @VERSIONED_SYMBOLS_TRUE@
212217 VERSIONNUM = @VERSIONNUM@
213218 ac_ct_AR = @ac_ct_AR@
214219 ac_ct_CC = @ac_ct_CC@
4646 $(top_srcdir)/m4/curl-system.m4 $(top_srcdir)/m4/libtool.m4 \
4747 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
4848 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
49 $(top_srcdir)/m4/xc-translit.m4 $(top_srcdir)/acinclude.m4 \
49 $(top_srcdir)/m4/xc-translit.m4 \
50 $(top_srcdir)/m4/zz50-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \
5051 $(top_srcdir)/configure.ac
5152 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
5253 $(ACLOCAL_M4)
190191 USE_EMBEDDED_ARES_FALSE = @USE_EMBEDDED_ARES_FALSE@
191192 USE_EMBEDDED_ARES_TRUE = @USE_EMBEDDED_ARES_TRUE@
192193 USE_GNUTLS = @USE_GNUTLS@
194 USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
193195 USE_LIBRTMP = @USE_LIBRTMP@
194196 USE_LIBSSH2 = @USE_LIBSSH2@
195197 USE_MANUAL_FALSE = @USE_MANUAL_FALSE@
200202 USE_SSLEAY = @USE_SSLEAY@
201203 USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
202204 VERSION = @VERSION@
205 VERSIONED_FLAVOUR = @VERSIONED_FLAVOUR@
206 VERSIONED_SYMBOLS_FALSE = @VERSIONED_SYMBOLS_FALSE@
207 VERSIONED_SYMBOLS_TRUE = @VERSIONED_SYMBOLS_TRUE@
203208 VERSIONNUM = @VERSIONNUM@
204209 ac_ct_AR = @ac_ct_AR@
205210 ac_ct_CC = @ac_ct_CC@
4646 $(top_srcdir)/m4/curl-system.m4 $(top_srcdir)/m4/libtool.m4 \
4747 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
4848 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
49 $(top_srcdir)/m4/xc-translit.m4 $(top_srcdir)/acinclude.m4 \
49 $(top_srcdir)/m4/xc-translit.m4 \
50 $(top_srcdir)/m4/zz50-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \
5051 $(top_srcdir)/configure.ac
5152 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
5253 $(ACLOCAL_M4)
190191 USE_EMBEDDED_ARES_FALSE = @USE_EMBEDDED_ARES_FALSE@
191192 USE_EMBEDDED_ARES_TRUE = @USE_EMBEDDED_ARES_TRUE@
192193 USE_GNUTLS = @USE_GNUTLS@
194 USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
193195 USE_LIBRTMP = @USE_LIBRTMP@
194196 USE_LIBSSH2 = @USE_LIBSSH2@
195197 USE_MANUAL_FALSE = @USE_MANUAL_FALSE@
200202 USE_SSLEAY = @USE_SSLEAY@
201203 USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
202204 VERSION = @VERSION@
205 VERSIONED_FLAVOUR = @VERSIONED_FLAVOUR@
206 VERSIONED_SYMBOLS_FALSE = @VERSIONED_SYMBOLS_FALSE@
207 VERSIONED_SYMBOLS_TRUE = @VERSIONED_SYMBOLS_TRUE@
203208 VERSIONNUM = @VERSIONNUM@
204209 ac_ct_AR = @ac_ct_AR@
205210 ac_ct_CC = @ac_ct_CC@
183183 !ifdef %use_rtmp
184184 @%append $^@ library $(LIBRTMP_ROOT)$(DS)librtmp$(DS)librtmp.lib, winmm.lib
185185 !endif
186 !ifdef %use_ssh2
187 @%append $^@ library $(LIBSSH2_ROOT)$(DS)win32$(DS)libssh2.lib
186 !ifdef %use_ssh2
187 @%append $^@ library $(LIBSSH2_ROOT)$(DS)win32$(DS)libssh2.lib
188188 !endif
189189 !ifdef %use_ssl
190190 @%append $^@ library $(OPENSSL_ROOT)$(DS)out32$(DS)libeay32.lib, $(OPENSSL_ROOT)$(DS)out32$(DS)ssleay32.lib
5858 $(top_srcdir)/m4/curl-system.m4 $(top_srcdir)/m4/libtool.m4 \
5959 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
6060 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
61 $(top_srcdir)/m4/xc-translit.m4 $(top_srcdir)/acinclude.m4 \
61 $(top_srcdir)/m4/xc-translit.m4 \
62 $(top_srcdir)/m4/zz50-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \
6263 $(top_srcdir)/configure.ac
6364 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
6465 $(ACLOCAL_M4)
244245 USE_EMBEDDED_ARES_FALSE = @USE_EMBEDDED_ARES_FALSE@
245246 USE_EMBEDDED_ARES_TRUE = @USE_EMBEDDED_ARES_TRUE@
246247 USE_GNUTLS = @USE_GNUTLS@
248 USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
247249 USE_LIBRTMP = @USE_LIBRTMP@
248250 USE_LIBSSH2 = @USE_LIBSSH2@
249251 USE_MANUAL_FALSE = @USE_MANUAL_FALSE@
254256 USE_SSLEAY = @USE_SSLEAY@
255257 USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
256258 VERSION = @VERSION@
259 VERSIONED_FLAVOUR = @VERSIONED_FLAVOUR@
260 VERSIONED_SYMBOLS_FALSE = @VERSIONED_SYMBOLS_FALSE@
261 VERSIONED_SYMBOLS_TRUE = @VERSIONED_SYMBOLS_TRUE@
257262 VERSIONNUM = @VERSIONNUM@
258263 ac_ct_AR = @ac_ct_AR@
259264 ac_ct_CC = @ac_ct_CC@
3737 ifndef LIBIDN_PATH
3838 LIBIDN_PATH = ../../libidn-1.18
3939 endif
40 # Edit the path below to point to the base of your MS idndlpackage.
40 # Edit the path below to point to the base of your MS IDN package.
4141 # Microsoft Internationalized Domain Names (IDN) Mitigation APIs 1.1
4242 # http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ad6158d7-ddba-416a-9109-07607425a815
4343 ifndef WINIDN_PATH
381381 /* Define to 1 if you have the `ldap_url_parse' function. */
382382 #undef HAVE_LDAP_URL_PARSE
383383
384 /* Define to 1 if you have the `gcrypt' library (-lgcrypt). */
385 #undef HAVE_LIBGCRYPT
386
387384 /* Define to 1 if you have the <libgen.h> header file. */
388385 #undef HAVE_LIBGEN_H
389386
610607 /* if you have the function SRP_Calc_client_key */
611608 #undef HAVE_SSLEAY_SRP
612609
610 /* Define to 1 if you have the `SSLv2_client_method' function. */
611 #undef HAVE_SSLV2_CLIENT_METHOD
612
613613 /* Define to 1 if you have the `SSL_get_shutdown' function. */
614614 #undef HAVE_SSL_GET_SHUTDOWN
615615
979979
980980 /* if GnuTLS is enabled */
981981 #undef USE_GNUTLS
982
983 /* if GnuTLS uses nettle as crypto backend */
984 #undef USE_GNUTLS_NETTLE
982985
983986 /* if librtmp is in use */
984987 #undef USE_LIBRTMP
11 #ifndef HAVE_LIBZ
22 /*
33 * NEVER EVER edit this manually, fix the mkhelp.pl script instead!
4 * Generation time: Sun Nov 6 00:17:32 2011
4 * Generation time: Mon Jan 23 16:33:23 2012
55 */
66 #ifdef USE_MANUAL
77 #include "hugehelp.h"
603603 "\n"
604604 " --capath <CA certificate directory>\n"
605605 " (SSL) Tells curl to use the specified certificate directory to\n"
606 " verify the peer. The certificates must be in PEM format, and if\n"
607 , stdout);
608 fputs(
609 " curl is built against OpenSSL, the directory must have been pro-\n"
610 " cessed using the c_rehash utility supplied with OpenSSL. Using\n"
611 " --capath can allow OpenSSL-powered curl to make SSL-connections\n"
612 " much more efficiently than using --cacert if the --cacert file\n"
613 " contains many CA certificates.\n"
614 "\n"
615 " If this option is used several times, the last one will be used.\n"
606 " verify the peer. Multiple paths can be provided by separating\n"
607 , stdout);
608 fputs(
609 " them with \":\" (e.g. \"path1:path2:path3\"). The certificates must\n"
610 " be in PEM format, and if curl is built against OpenSSL, the\n"
611 " directory must have been processed using the c_rehash utility\n"
612 " supplied with OpenSSL. Using --capath can allow OpenSSL-powered\n"
613 " curl to make SSL-connections much more efficiently than using\n"
614 " --cacert if the --cacert file contains many CA certificates.\n"
615 "\n"
616 , stdout);
617 fputs(
618 " If this option is set, the default capath value will be ignored,\n"
619 " and if it is used several times, the last one will be used.\n"
616620 "\n"
617621 " -f, --fail\n"
618 , stdout);
619 fputs(
620622 " (HTTP) Fail silently (no output at all) on server errors. This\n"
621623 " is mostly done to better enable scripts etc to better deal with\n"
622624 " failed attempts. In normal cases when a HTTP server fails to\n"
623625 " deliver a document, it returns an HTML document stating so\n"
626 , stdout);
627 fputs(
624628 " (which often also describes why and more). This flag will pre-\n"
625629 " vent curl from outputting that and return error 22.\n"
626630 "\n"
627 , stdout);
628 fputs(
629631 " This method is not fail-safe and there are occasions where non-\n"
630632 " successful response codes will slip through, especially when\n"
631633 " authentication is involved (response codes 401 and 407).\n"
632634 "\n"
633635 " -F, --form <name=content>\n"
634636 " (HTTP) This lets curl emulate a filled-in form in which a user\n"
637 , stdout);
638 fputs(
635639 " has pressed the submit button. This causes curl to POST data\n"
636640 " using the Content-Type multipart/form-data according to RFC\n"
637 , stdout);
638 fputs(
639641 " 2388. This enables uploading of binary files etc. To force the\n"
640642 " 'content' part to be a file, prefix the file name with an @\n"
641643 " sign. To just get the content part from a file, prefix the file\n"
642644 " name with the symbol <. The difference between @ and < is then\n"
645 , stdout);
646 fputs(
643647 " that @ makes a file get attached in the post as a file upload,\n"
644648 " while the < makes a text field and just get the contents for\n"
645 , stdout);
646 fputs(
647649 " that text field from a file.\n"
648650 "\n"
649651 " Example, to send your password file to the server, where 'pass-\n"
652654 "\n"
653655 " curl -F password=@/etc/passwd www.mypasswords.com\n"
654656 "\n"
657 , stdout);
658 fputs(
655659 " To read content from stdin instead of a file, use - as the file-\n"
656660 " name. This goes for both @ and < constructs.\n"
657661 "\n"
658 , stdout);
659 fputs(
660662 " You can also tell curl what Content-Type to use by using\n"
661663 " 'type=', in a manner similar to:\n"
662664 "\n"
667669 " curl -F \"name=daniel;type=text/foo\" url.com\n"
668670 "\n"
669671 " You can also explicitly change the name field of a file upload\n"
672 , stdout);
673 fputs(
670674 " part by setting filename=, like this:\n"
671675 "\n"
672676 " curl -F \"file=@localfile;filename=nameinpost\" url.com\n"
673677 "\n"
674 , stdout);
675 fputs(
676678 " See further examples and details in the MANUAL.\n"
677679 "\n"
678680 " This option can be used multiple times.\n"
682684 " and password has been provided, this data is sent off using the\n"
683685 " ACCT command. (Added in 7.13.0)\n"
684686 "\n"
687 , stdout);
688 fputs(
685689 " If this option is used twice, the second will override the pre-\n"
686690 " vious use.\n"
687691 "\n"
688692 " --ftp-alternative-to-user <command>\n"
689 , stdout);
690 fputs(
691693 " (FTP) If authenticating with the USER and PASS commands fails,\n"
692694 " send this command. When connecting to Tumbleweed's Secure\n"
693695 " Transport server over FTPS using a client certificate, using\n"
694696 " \"SITE AUTH\" will tell the server to retrieve the username from\n"
697 , stdout);
698 fputs(
695699 " the certificate. (Added in 7.15.5)\n"
696700 "\n"
697701 " --ftp-create-dirs\n"
698702 " (FTP/SFTP) When an FTP or SFTP URL/operation uses a path that\n"
699 , stdout);
700 fputs(
701703 " doesn't currently exist on the server, the standard behavior of\n"
702704 " curl is to fail. Using this option, curl will instead attempt to\n"
703705 " create missing directories.\n"
704706 "\n"
705707 " --ftp-method [method]\n"
706708 " (FTP) Control what method curl should use to reach a file on a\n"
709 , stdout);
710 fputs(
707711 " FTP(S) server. The method argument should be one of the follow-\n"
708712 " ing alternatives:\n"
709713 "\n"
710714 " multicwd\n"
711 , stdout);
712 fputs(
713715 " curl does a single CWD operation for each path part in\n"
714716 " the given URL. For deep hierarchies this means very many\n"
715717 " commands. This is how RFC 1738 says it should be done.\n"
716718 " This is the default but the slowest behavior.\n"
717719 "\n"
720 , stdout);
721 fputs(
718722 " nocwd curl does no CWD at all. curl will do SIZE, RETR, STOR\n"
719723 " etc and give a full path to the server for all these com-\n"
720 , stdout);
721 fputs(
722724 " mands. This is the fastest behavior.\n"
723725 "\n"
724726 " singlecwd\n"
725727 " curl does one CWD with the full target directory and then\n"
726728 " operates on the file \"normally\" (like in the multicwd\n"
727729 " case). This is somewhat more standards compliant than\n"
730 , stdout);
731 fputs(
728732 " 'nocwd' but without the full penalty of 'multicwd'.\n"
729733 " (Added in 7.15.1)\n"
730734 "\n"
731735 " --ftp-pasv\n"
732 , stdout);
733 fputs(
734736 " (FTP) Use passive mode for the data connection. Passive is the\n"
735737 " internal default behavior, but using this option can be used to\n"
736738 " override a previous -P/-ftp-port option. (Added in 7.11.0)\n"
737739 "\n"
738740 " If this option is used several times, the following occurrences\n"
741 , stdout);
742 fputs(
739743 " make no difference. Undoing an enforced passive really isn't\n"
740744 " doable but you must then instead enforce the correct -P, --ftp-\n"
741745 " port again.\n"
742746 "\n"
743 , stdout);
744 fputs(
745747 " Passive mode means that curl will try the EPSV command first and\n"
746748 " then PASV, unless --disable-epsv is used.\n"
747749 "\n"
748750 " --ftp-skip-pasv-ip\n"
749751 " (FTP) Tell curl to not use the IP address the server suggests in\n"
752 , stdout);
753 fputs(
750754 " its response to curl's PASV command when curl connects the data\n"
751755 " connection. Instead curl will re-use the same IP address it\n"
752756 " already uses for the control connection. (Added in 7.14.2)\n"
753757 "\n"
754 , stdout);
755 fputs(
756758 " This option has no effect if PORT, EPRT or EPSV is used instead\n"
757759 " of PASV.\n"
758760 "\n"
759761 " --ftp-pret\n"
760762 " (FTP) Tell curl to send a PRET command before PASV (and EPSV).\n"
763 , stdout);
764 fputs(
761765 " Certain FTP servers, mainly drftpd, require this non-standard\n"
762766 " command for directory listings as well as up and downloads in\n"
763767 " PASV mode. (Added in 7.20.x)\n"
764768 "\n"
765769 " --ftp-ssl-ccc\n"
766 , stdout);
767 fputs(
768770 " (FTP) Use CCC (Clear Command Channel) Shuts down the SSL/TLS\n"
769771 " layer after authenticating. The rest of the control channel com-\n"
770772 " munication will be unencrypted. This allows NAT routers to fol-\n"
773 , stdout);
774 fputs(
771775 " low the FTP transaction. The default mode is passive. See --ftp-\n"
772776 " ssl-ccc-mode for other modes. (Added in 7.16.1)\n"
773777 "\n"
774778 " --ftp-ssl-ccc-mode [active/passive]\n"
775 , stdout);
776 fputs(
777779 " (FTP) Use CCC (Clear Command Channel) Sets the CCC mode. The\n"
778780 " passive mode will not initiate the shutdown, but instead wait\n"
779781 " for the server to do it, and will not reply to the shutdown from\n"
782 , stdout);
783 fputs(
780784 " the server. The active mode initiates the shutdown and waits for\n"
781785 " a reply from the server. (Added in 7.16.2)\n"
782786 "\n"
783787 " --ftp-ssl-control\n"
784788 " (FTP) Require SSL/TLS for the FTP login, clear for transfer.\n"
785 , stdout);
786 fputs(
787789 " Allows secure authentication, but non-encrypted data transfers\n"
788790 " for efficiency. Fails the transfer if the server doesn't sup-\n"
789791 " port SSL/TLS. (Added in 7.16.0) that can still be used but will\n"
792 , stdout);
793 fputs(
790794 " be removed in a future version.\n"
791795 "\n"
792796 " --form-string <name=string>\n"
793797 " (HTTP) Similar to --form except that the value string for the\n"
794798 " named parameter is used literally. Leading '@' and '<' charac-\n"
795 , stdout);
796 fputs(
797799 " ters, and the ';type=' string in the value have no special mean-\n"
798800 " ing. Use this in preference to --form if there's any possibility\n"
799801 " that the string value may accidentally trigger the '@' or '<'\n"
802 , stdout);
803 fputs(
800804 " features of --form.\n"
801805 "\n"
802806 " -g, --globoff\n"
803807 " This option switches off the \"URL globbing parser\". When you set\n"
804808 " this option, you can specify URLs that contain the letters {}[]\n"
805 , stdout);
806 fputs(
807809 " without having them being interpreted by curl itself. Note that\n"
808810 " these letters are not normal legal URL contents but they should\n"
809811 " be encoded according to the URI standard.\n"
810812 "\n"
811813 " -G, --get\n"
814 , stdout);
815 fputs(
812816 " When used, this option will make all data specified with -d,\n"
813817 " --data or --data-binary to be used in a HTTP GET request instead\n"
814818 " of the POST request that otherwise would be used. The data will\n"
815 , stdout);
816 fputs(
817819 " be appended to the URL with a '?' separator.\n"
818820 "\n"
819821 " If used in combination with -I, the POST data will instead be\n"
820822 " appended to the URL with a HEAD request.\n"
821823 "\n"
824 , stdout);
825 fputs(
822826 " If this option is used several times, the following occurrences\n"
823827 " make no difference. This is because undoing a GET doesn't make\n"
824828 " sense, but you should then instead enforce the alternative\n"
825829 " method you prefer.\n"
826830 "\n"
827831 " -H, --header <header>\n"
828 , stdout);
829 fputs(
830832 " (HTTP) Extra header to use when getting a web page. You may\n"
831833 " specify any number of extra headers. Note that if you should add\n"
834 , stdout);
835 fputs(
832836 " a custom header that has the same name as one of the internal\n"
833837 " ones curl would use, your externally set header will be used\n"
834838 " instead of the internal one. This allows you to make even trick-\n"
835839 " ier stuff than curl would normally do. You should not replace\n"
836 , stdout);
837 fputs(
838840 " internally set headers without knowing perfectly well what\n"
839841 " you're doing. Remove an internal header by giving a replacement\n"
842 , stdout);
843 fputs(
840844 " without content on the right side of the colon, as in: -H\n"
841845 " \"Host:\". If you send the custom header with no-value then its\n"
842846 " header must be terminated with a semicolon, such as -H \"X-Cus-\n"
843847 " tom-Header;\" to send \"X-Custom-Header:\".\n"
844848 "\n"
845 , stdout);
846 fputs(
847849 " curl will make sure that each header you add/replace is sent\n"
848850 " with the proper end-of-line marker, you should thus not add that\n"
851 , stdout);
852 fputs(
849853 " as a part of the header content: do not add newlines or carriage\n"
850854 " returns, they will only mess things up for you.\n"
851855 "\n"
854858 " This option can be used multiple times to add/replace/remove\n"
855859 " multiple headers.\n"
856860 "\n"
857 , stdout);
858 fputs(
859861 " --hostpubmd5 <md5>\n"
860862 " Pass a string containing 32 hexadecimal digits. The string\n"
863 , stdout);
864 fputs(
861865 " should be the 128 bit MD5 checksum of the remote host's public\n"
862866 " key, curl will refuse the connection with the host unless the\n"
863867 " md5sums match. This option is only for SCP and SFTP transfers.\n"
865869 "\n"
866870 " --ignore-content-length\n"
867871 " (HTTP) Ignore the Content-Length header. This is particularly\n"
868 , stdout);
869 fputs(
870872 " useful for servers running Apache 1.x, which will report incor-\n"
873 , stdout);
874 fputs(
871875 " rect Content-Length for files larger than 2 gigabytes.\n"
872876 "\n"
873877 " -i, --include\n"
877881 "\n"
878882 " -I, --head\n"
879883 " (HTTP/FTP/FILE) Fetch the HTTP-header only! HTTP-servers feature\n"
880 , stdout);
881 fputs(
882884 " the command HEAD which this uses to get nothing but the header\n"
885 , stdout);
886 fputs(
883887 " of a document. When used on a FTP or FILE file, curl displays\n"
884888 " the file size and last modification time only.\n"
885889 "\n"
890894 "\n"
891895 " curl --interface eth0:1 http://www.netscape.com/\n"
892896 "\n"
893 , stdout);
894 fputs(
895897 " If this option is used several times, the last one will be used.\n"
896898 "\n"
899 , stdout);
900 fputs(
897901 " -j, --junk-session-cookies\n"
898902 " (HTTP) When curl is told to read cookies from a given file, this\n"
899903 " option will make it discard all \"session cookies\". This will\n"
902906 " closed down.\n"
903907 "\n"
904908 " -J, --remote-header-name\n"
905 , stdout);
906 fputs(
907909 " (HTTP) This option tells the -O, --remote-name option to use the\n"
910 , stdout);
911 fputs(
908912 " server-specified Content-Disposition filename instead of\n"
909913 " extracting a filename from the URL.\n"
910914 "\n"
912916 " (SSL) This option explicitly allows curl to perform \"insecure\"\n"
913917 " SSL connections and transfers. All SSL connections are attempted\n"
914918 " to be made secure by using the CA certificate bundle installed\n"
915 , stdout);
916 fputs(
917919 " by default. This makes all connections considered \"insecure\"\n"
920 , stdout);
921 fputs(
918922 " fail unless -k, --insecure is used.\n"
919923 "\n"
920924 " See this online resource for further details:\n"
923927 " -K, --config <config file>\n"
924928 " Specify which config file to read curl arguments from. The con-\n"
925929 " fig file is a text file in which command line arguments can be\n"
926 , stdout);
927 fputs(
928930 " written which then will be used as if they were written on the\n"
931 , stdout);
932 fputs(
929933 " actual command line. Options and their parameters must be speci-\n"
930934 " fied on the same config file line, separated by whitespace,\n"
931935 " colon, the equals sign or any combination thereof (however, the\n"
932936 " preferred separator is the equals sign). If the parameter is to\n"
933937 " contain whitespace, the parameter must be enclosed within\n"
934 , stdout);
935 fputs(
936938 " quotes. Within double quotes, the following escape sequences are\n"
939 , stdout);
940 fputs(
937941 " available: \\\\, \\\", \\t, \\n, \\r and \\v. A backslash preceding any\n"
938942 " other letter is ignored. If the first column of a config line is\n"
939943 " a '#' character, the rest of the line will be treated as a com-\n"
941945 " file.\n"
942946 "\n"
943947 " Specify the filename to -K, --config as '-' to make curl read\n"
944 , stdout);
945 fputs(
946948 " the file from stdin.\n"
947949 "\n"
950 , stdout);
951 fputs(
948952 " Note that to be able to specify a URL in the config file, you\n"
949953 " need to specify it using the --url option, and not by simply\n"
950954 " writing the URL on its own line. So, it could look similar to\n"
18711875 "\n"
18721876 " --stderr <file>\n"
18731877 " Redirect all writes to stderr to the specified file instead. If\n"
1874 " the file name is a plain '-', it is instead written to stdout.\n"
1875 , stdout);
1876 fputs(
1877 " This option has no point when you're using a shell with decent\n"
1878 " redirecting capabilities.\n"
1879 "\n"
1878 " the file name is a plain '-', it is instead written to stdout.\n"
1879 "\n"
1880 , stdout);
1881 fputs(
18801882 " If this option is used several times, the last one will be used.\n"
18811883 "\n"
18821884 " -t, --telnet-option <OPT=val>\n"
18881890 "\n"
18891891 " NEW_ENV=<var,val> Sets an environment variable.\n"
18901892 "\n"
1891 , stdout);
1892 fputs(
18931893 " -T, --upload-file <file>\n"
18941894 " This transfers the specified local file to the remote URL. If\n"
1895 , stdout);
1896 fputs(
18951897 " there is no file part in the specified URL, Curl will append the\n"
18961898 " local file name. NOTE that you must use a trailing / on the last\n"
18971899 " directory to really prove to Curl that there is no file name or\n"
18981900 " curl will think that your last directory name is the remote file\n"
1899 , stdout);
1900 fputs(
19011901 " name to use. That will most likely cause the upload operation to\n"
19021902 " fail. If this is used on a HTTP(S) server, the PUT command will\n"
19031903 " be used.\n"
19041904 "\n"
1905 , stdout);
1906 fputs(
19051907 " Use the file name \"-\" (a single dash) to use stdin instead of a\n"
19061908 " given file. Alternately, the file name \".\" (a single period)\n"
19071909 " may be specified instead of \"-\" to use stdin in non-blocking\n"
19081910 " mode to allow reading server output while stdin is being\n"
1909 , stdout);
1910 fputs(
19111911 " uploaded.\n"
19121912 "\n"
19131913 " You can specify one -T for each URL on the command line. Each -T\n"
1914 , stdout);
1915 fputs(
19141916 " + URL pair specifies what to upload and to where. curl also sup-\n"
19151917 " ports \"globbing\" of the -T argument, meaning that you can upload\n"
19161918 " multiple files to a single URL by using the same URL globbing\n"
19201922 "\n"
19211923 " or even\n"
19221924 "\n"
1923 , stdout);
1924 fputs(
19251925 " curl -T \"img[1-1000].png\" ftp://ftp.picturemania.com/upload/\n"
19261926 "\n"
19271927 " --tcp-nodelay\n"
1928 , stdout);
1929 fputs(
19281930 " Turn on the TCP_NODELAY option. See the curl_easy_setopt(3) man\n"
19291931 " page for details about this option. (Added in 7.11.2)\n"
19301932 "\n"
19331935 " size that curl will try to use when transferring data to or from\n"
19341936 " a TFTP server. By default 512 bytes will be used.\n"
19351937 "\n"
1936 , stdout);
1937 fputs(
19381938 " If this option is used several times, the last one will be used.\n"
19391939 "\n"
1940 , stdout);
1941 fputs(
19401942 " (Added in 7.20.0)\n"
19411943 "\n"
19421944 " --tlsauthtype <authtype>\n"
19461948 " option defaults to \"SRP\". (Added in 7.21.4)\n"
19471949 "\n"
19481950 " --tlsuser <user>\n"
1949 , stdout);
1950 fputs(
19511951 " Set username for use with the TLS authentication method speci-\n"
1952 , stdout);
1953 fputs(
19521954 " fied with --tlsauthtype. Requires that --tlspassword also be\n"
19531955 " set. (Added in 7.21.4)\n"
19541956 "\n"
19581960 " (Added in 7.21.4)\n"
19591961 "\n"
19601962 " --tr-encoding\n"
1961 , stdout);
1962 fputs(
19631963 " (HTTP) Request a compressed Transfer-Encoding response using one\n"
1964 , stdout);
1965 fputs(
19641966 " of the algorithms libcurl supports, and uncompress the data\n"
19651967 " while receiving it.\n"
19661968 "\n"
19711973 " including descriptive information, to the given output file. Use\n"
19721974 " \"-\" as filename to have the output sent to stdout.\n"
19731975 "\n"
1974 , stdout);
1975 fputs(
19761976 " This option overrides previous uses of -v, --verbose or --trace-\n"
19771977 " ascii.\n"
19781978 "\n"
1979 , stdout);
1980 fputs(
19791981 " If this option is used several times, the last one will be used.\n"
19801982 "\n"
19811983 " --trace-ascii <file>\n"
19831985 " including descriptive information, to the given output file. Use\n"
19841986 " \"-\" as filename to have the output sent to stdout.\n"
19851987 "\n"
1986 , stdout);
1987 fputs(
19881988 " This is very similar to --trace, but leaves out the hex part and\n"
19891989 " only shows the ASCII part of the dump. It makes smaller output\n"
1990 , stdout);
1991 fputs(
19901992 " that might be easier to read for untrained humans.\n"
19911993 "\n"
19921994 " This option overrides previous uses of -v, --verbose or --trace.\n"
19941996 "\n"
19951997 " --trace-time\n"
19961998 " Prepends a time stamp to each trace or verbose line that curl\n"
1997 , stdout);
1998 fputs(
19991999 " displays. (Added in 7.14.0)\n"
20002000 "\n"
20012001 " -u, --user <user:password>\n"
20022002 " Specify the user name and password to use for server authentica-\n"
2003 , stdout);
2004 fputs(
20032005 " tion. Overrides -n, --netrc and --netrc-optional.\n"
20042006 "\n"
20052007 " If you just give the user name (without entering a colon) curl\n"
20062008 " will prompt for a password.\n"
20072009 "\n"
20082010 " If you use an SSPI-enabled curl binary and do NTLM authentica-\n"
2009 , stdout);
2010 fputs(
20112011 " tion, you can force curl to pick up the user name and password\n"
20122012 " from your environment by simply specifying a single colon with\n"
20132013 " this option: \"-u :\".\n"
20142014 "\n"
2015 , stdout);
2016 fputs(
20152017 " If this option is used several times, the last one will be used.\n"
20162018 "\n"
20172019 " -U, --proxy-user <user:password>\n"
20192021 " tion.\n"
20202022 "\n"
20212023 " If you use an SSPI-enabled curl binary and do NTLM authentica-\n"
2022 , stdout);
2023 fputs(
20242024 " tion, you can force curl to pick up the user name and password\n"
20252025 " from your environment by simply specifying a single colon with\n"
20262026 " this option: \"-U :\".\n"
20272027 "\n"
2028 , stdout);
2029 fputs(
20282030 " If this option is used several times, the last one will be used.\n"
20292031 "\n"
20302032 " --url <URL>\n"
20312033 " Specify a URL to fetch. This option is mostly handy when you\n"
20322034 " want to specify URL(s) in a config file.\n"
20332035 "\n"
2034 , stdout);
2035 fputs(
20362036 " This option may be used any number of times. To control where\n"
20372037 " this URL is written, use the -o, --output or the -O, --remote-\n"
20382038 " name options.\n"
20392039 " -v, --verbose\n"
2040 , stdout);
2041 fputs(
20402042 " Makes the fetching more verbose/talkative. Mostly useful for\n"
20412043 " debugging. A line starting with '>' means \"header data\" sent by\n"
20422044 " curl, '<' means \"header data\" received by curl that is hidden in\n"
2043 , stdout);
2044 fputs(
20452045 " normal cases, and a line starting with '*' means additional info\n"
20462046 " provided by curl.\n"
20472047 "\n"
20482048 " Note that if you only want HTTP headers in the output, -i,\n"
20492049 " --include might be the option you're looking for.\n"
20502050 "\n"
2051 , stdout);
2052 fputs(
20512053 " If you think this option still doesn't give you enough details,\n"
20522054 " consider using --trace or --trace-ascii instead.\n"
20532055 "\n"
20542056 " This option overrides previous uses of --trace-ascii or --trace.\n"
20552057 "\n"
2056 , stdout);
2057 fputs(
20582058 " Use -s, --silent to make curl quiet.\n"
20592059 "\n"
20602060 " -w, --write-out <format>\n"
20612061 " Defines what to display on stdout after a completed and success-\n"
20622062 " ful operation. The format is a string that may contain plain\n"
2063 , stdout);
2064 fputs(
20632065 " text mixed with any number of variables. The string can be spec-\n"
20642066 " ified as \"string\", to get read from a particular file you spec-\n"
20652067 " ify it \"@filename\" and to tell curl to read the format from\n"
2066 , stdout);
2067 fputs(
20682068 " stdin you write \"@-\".\n"
20692069 "\n"
20702070 " The variables present in the output format will be substituted\n"
20712071 " by the value or text that curl thinks fit, as described below.\n"
2072 , stdout);
2073 fputs(
20722074 " All variables are specified as %{variable_name} and to output a\n"
20732075 " normal % you just write them as %%. You can output a newline by\n"
20742076 " using \\n, a carriage return with \\r and a tab space with \\t.\n"
20752077 "\n"
2076 , stdout);
2077 fputs(
20782078 " NOTE: The %-symbol is a special symbol in the win32-environment,\n"
20792079 " where all occurrences of % must be doubled when using this\n"
20802080 " option.\n"
20812081 "\n"
20822082 " The variables available at this point are:\n"
20832083 "\n"
2084 , stdout);
2085 fputs(
20842086 " url_effective The URL that was fetched last. This is most mean-\n"
20852087 " ingful if you've told curl to follow location:\n"
20862088 " headers.\n"
20872089 "\n"
2088 , stdout);
2089 fputs(
20902090 " http_code The numerical response code that was found in the\n"
20912091 " last retrieved HTTP(S) or FTP(s) transfer. In\n"
20922092 " 7.18.2 the alias response_code was added to show\n"
20932093 " the same info.\n"
20942094 "\n"
2095 , stdout);
2096 fputs(
20952097 " http_connect The numerical code that was found in the last\n"
20962098 " response (from a proxy) to a curl CONNECT\n"
20972099 " request. (Added in 7.12.4)\n"
20982100 "\n"
2099 , stdout);
2100 fputs(
21012101 " time_total The total time, in seconds, that the full opera-\n"
21022102 " tion lasted. The time will be displayed with mil-\n"
21032103 " lisecond resolution.\n"
21042104 "\n"
21052105 " time_namelookup\n"
2106 , stdout);
2107 fputs(
21062108 " The time, in seconds, it took from the start\n"
21072109 " until the name resolving was completed.\n"
21082110 "\n"
21092111 " time_connect The time, in seconds, it took from the start\n"
2110 , stdout);
2111 fputs(
21122112 " until the TCP connect to the remote host (or\n"
21132113 " proxy) was completed.\n"
21142114 "\n"
21152115 " time_appconnect\n"
21162116 " The time, in seconds, it took from the start\n"
2117 , stdout);
2118 fputs(
21172119 " until the SSL/SSH/etc connect/handshake to the\n"
21182120 " remote host was completed. (Added in 7.19.0)\n"
21192121 "\n"
21202122 " time_pretransfer\n"
2121 , stdout);
2122 fputs(
21232123 " The time, in seconds, it took from the start\n"
21242124 " until the file transfer was just about to begin.\n"
21252125 " This includes all pre-transfer commands and nego-\n"
2126 , stdout);
2127 fputs(
21262128 " tiations that are specific to the particular pro-\n"
21272129 " tocol(s) involved.\n"
21282130 "\n"
21292131 " time_redirect The time, in seconds, it took for all redirection\n"
2130 , stdout);
2131 fputs(
21322132 " steps include name lookup, connect, pretransfer\n"
21332133 " and transfer before the final transaction was\n"
21342134 " started. time_redirect shows the complete execu-\n"
2135 , stdout);
2136 fputs(
21352137 " tion time for multiple redirections. (Added in\n"
21362138 " 7.12.3)\n"
21372139 "\n"
21382140 " time_starttransfer\n"
21392141 " The time, in seconds, it took from the start\n"
2140 , stdout);
2141 fputs(
21422142 " until the first byte was just about to be trans-\n"
21432143 " ferred. This includes time_pretransfer and also\n"
21442144 " the time the server needed to calculate the\n"
2145 , stdout);
2146 fputs(
21452147 " result.\n"
21462148 "\n"
21472149 " size_download The total amount of bytes that were downloaded.\n"
21482150 "\n"
21492151 " size_upload The total amount of bytes that were uploaded.\n"
21502152 "\n"
2151 , stdout);
2152 fputs(
21532153 " size_header The total amount of bytes of the downloaded head-\n"
21542154 " ers.\n"
21552155 "\n"
21562156 " size_request The total amount of bytes that were sent in the\n"
21572157 " HTTP request.\n"
21582158 "\n"
2159 , stdout);
2160 fputs(
21592161 " speed_download The average download speed that curl measured for\n"
21602162 " the complete download. Bytes per second.\n"
21612163 "\n"
21622164 " speed_upload The average upload speed that curl measured for\n"
2163 , stdout);
2164 fputs(
21652165 " the complete upload. Bytes per second.\n"
21662166 "\n"
21672167 " content_type The Content-Type of the requested document, if\n"
21682168 " there was any.\n"
21692169 "\n"
2170 , stdout);
2171 fputs(
21702172 " num_connects Number of new connects made in the recent trans-\n"
21712173 " fer. (Added in 7.12.3)\n"
21722174 "\n"
21732175 " num_redirects Number of redirects that were followed in the\n"
21742176 " request. (Added in 7.12.3)\n"
21752177 "\n"
2176 , stdout);
2177 fputs(
21782178 " redirect_url When a HTTP request was made without -L to follow\n"
21792179 " redirects, this variable will show the actual URL\n"
2180 , stdout);
2181 fputs(
21802182 " a redirect would take you to. (Added in 7.18.2)\n"
21812183 "\n"
21822184 " ftp_entry_path The initial path libcurl ended up in when logging\n"
21832185 " on to the remote FTP server. (Added in 7.15.4)\n"
21842186 "\n"
21852187 " ssl_verify_result\n"
2186 , stdout);
2187 fputs(
21882188 " The result of the SSL peer certificate verifica-\n"
21892189 " tion that was requested. 0 means the verification\n"
21902190 " was successful. (Added in 7.19.0)\n"
21912191 "\n"
2192 , stdout);
2193 fputs(
21922194 " If this option is used several times, the last one will be used.\n"
21932195 "\n"
21942196 " -x, --proxy <[protocol://][user@password]proxyhost[:port]>\n"
21952197 " Use the specified HTTP proxy. If the port number is not speci-\n"
21962198 " fied, it is assumed at port 1080.\n"
21972199 "\n"
2198 , stdout);
2199 fputs(
22002200 " This option overrides existing environment variables that set\n"
22012201 " the proxy to use. If there's an environment variable setting a\n"
22022202 " proxy, you can set proxy to \"\" to override it.\n"
22032203 "\n"
2204 , stdout);
2205 fputs(
22042206 " All operations that are performed over a HTTP proxy will trans-\n"
22052207 " parently be converted to HTTP. It means that certain protocol\n"
22062208 " specific operations might not be available. This is not the case\n"
2207 , stdout);
2208 fputs(
22092209 " if you can tunnel through the proxy, as one with the -p, --prox-\n"
22102210 " ytunnel option.\n"
22112211 "\n"
22122212 " The proxy host can be specified the exact same way as the proxy\n"
2213 , stdout);
2214 fputs(
22132215 " environment variables, including the protocol prefix (http://)\n"
22142216 " and the embedded user + password.\n"
22152217 "\n"
22162218 " From 7.21.7, the proxy string may be specified with a proto-\n"
22172219 " col:// prefix to specify alternative proxy protocols. Use\n"
2218 , stdout);
2219 fputs(
22202220 " socks4://, socks4a://, socks5:// or socks5h:// to request the\n"
22212221 " specific SOCKS version to be used. No protocol specified,\n"
2222 , stdout);
2223 fputs(
22222224 " http:// and all others will be treated as HTTP proxies.\n"
22232225 "\n"
22242226 " If this option is used several times, the last one will be used.\n"
22262228 " -X, --request <command>\n"
22272229 " (HTTP) Specifies a custom request method to use when communicat-\n"
22282230 " ing with the HTTP server. The specified request will be used\n"
2229 , stdout);
2230 fputs(
22312231 " instead of the method otherwise used (which defaults to GET).\n"
22322232 " Read the HTTP 1.1 specification for details and explanations.\n"
2233 , stdout);
2234 fputs(
22332235 " Common additional HTTP requests include PUT and DELETE, but\n"
22342236 " related technologies like WebDAV offers PROPFIND, COPY, MOVE and\n"
22352237 " more.\n"
22372239 " (FTP) Specifies a custom FTP command to use instead of LIST when\n"
22382240 " doing file lists with FTP.\n"
22392241 "\n"
2240 , stdout);
2241 fputs(
22422242 " If this option is used several times, the last one will be used.\n"
22432243 "\n"
22442244 " --xattr\n"
22452245 " When saving output to a file, this option tells curl to store\n"
2246 , stdout);
2247 fputs(
22462248 " certain file metadata in extened file attributes. Currently, the\n"
22472249 " URL is stored in the xdg.origin.url attribute and, for HTTP, the\n"
22482250 " content type is stored in the mime_type attribute. If the file\n"
22492251 " system does not support extended attributes, a warning is\n"
2250 , stdout);
2251 fputs(
22522252 " issued.\n"
22532253 "\n"
22542254 " -y, --speed-time <time>\n"
22552255 " If a download is slower than speed-limit bytes per second during\n"
2256 , stdout);
2257 fputs(
22562258 " a speed-time period, the download gets aborted. If speed-time is\n"
22572259 " used, the default speed-limit will be 1 unless set with -Y.\n"
22582260 "\n"
22602262 " connects etc. If this is a concern for you, try the --connect-\n"
22612263 " timeout option.\n"
22622264 "\n"
2263 , stdout);
2264 fputs(
22652265 " If this option is used several times, the last one will be used.\n"
22662266 "\n"
22672267 " -Y, --speed-limit <speed>\n"
2268 , stdout);
2269 fputs(
22682270 " If a download is slower than this given speed (in bytes per sec-\n"
22692271 " ond) for speed-time seconds it gets aborted. speed-time is set\n"
22702272 " with -y and is 30 if not set.\n"
22722274 " If this option is used several times, the last one will be used.\n"
22732275 "\n"
22742276 " -z, --time-cond <date expression>\n"
2275 , stdout);
2276 fputs(
22772277 " (HTTP/FTP/FILE) Request a file that has been modified later than\n"
22782278 " the given time and date, or one that has been modified before\n"
2279 , stdout);
2280 fputs(
22792281 " that time. The date expression can be all sorts of date strings\n"
22802282 " or if it doesn't match any internal ones, it tries to get the\n"
22812283 " time from a given file name instead! See the curl_getdate(3) man\n"
22822284 " pages for date expression details.\n"
22832285 "\n"
2284 , stdout);
2285 fputs(
22862286 " Start the date expression with a dash (-) to make it request for\n"
22872287 " a document that is older than the given date/time, default is a\n"
2288 , stdout);
2289 fputs(
22882290 " document that is newer than the specified date/time.\n"
22892291 "\n"
22902292 " If this option is used several times, the last one will be used.\n"
22962298 " Manual. Display the huge help text.\n"
22972299 "\n"
22982300 " -V, --version\n"
2299 , stdout);
2300 fputs(
23012301 " Displays information about curl and the libcurl version it uses.\n"
23022302 " The first line includes the full version of curl, libcurl and\n"
2303 , stdout);
2304 fputs(
23032305 " other 3rd party libraries linked with the executable.\n"
23042306 "\n"
23052307 " The second line (starts with \"Protocols:\") shows all protocols\n"
23062308 " that libcurl reports to support.\n"
23072309 "\n"
23082310 " The third line (starts with \"Features:\") shows specific features\n"
2309 , stdout);
2310 fputs(
23112311 " libcurl reports to offer. Available features include:\n"
23122312 "\n"
23132313 " IPv6 You can use IPv6 with this.\n"
23162316 "\n"
23172317 " SSL HTTPS and FTPS are supported.\n"
23182318 "\n"
2319 , stdout);
2320 fputs(
23192321 " libz Automatic decompression of compressed files over HTTP is\n"
23202322 " supported.\n"
23212323 "\n"
23242326 " GSS-Negotiate\n"
23252327 " Negotiate authentication and krb5 for FTP is supported.\n"
23262328 "\n"
2327 , stdout);
2328 fputs(
23292329 " Debug This curl uses a libcurl built with Debug. This enables\n"
23302330 " more error-tracking and memory debugging etc. For curl-\n"
23312331 " developers only!\n"
23322332 "\n"
23332333 " AsynchDNS\n"
2334 , stdout);
2335 fputs(
23342336 " This curl uses asynchronous name resolves.\n"
23352337 "\n"
23362338 " SPNEGO SPNEGO Negotiate authentication is supported.\n"
23392341 " This curl supports transfers of large files, files larger\n"
23402342 " than 2GB.\n"
23412343 "\n"
2342 , stdout);
2343 fputs(
23442344 " IDN This curl supports IDN - international domain names.\n"
23452345 "\n"
23462346 " SSPI SSPI is supported. If you use NTLM and set a blank user\n"
2347 , stdout);
2348 fputs(
23472349 " name, curl will authenticate with your current user and\n"
23482350 " password.\n"
23492351 "\n"
23562358 " Default config file, see -K, --config for details.\n"
23572359 "\n"
23582360 "ENVIRONMENT\n"
2359 , stdout);
2360 fputs(
23612361 " The environment variables can be specified in lower case or upper case.\n"
2362 , stdout);
2363 fputs(
23622364 " The lower case version has precedence. http_proxy is an exception as it\n"
23632365 " is only available in lower case.\n"
23642366 "\n"
23682370 " http_proxy [protocol://]<host>[:port]\n"
23692371 " Sets the proxy server to use for HTTP.\n"
23702372 " HTTPS_PROXY [protocol://]<host>[:port]\n"
2371 , stdout);
2372 fputs(
23732373 " Sets the proxy server to use for HTTPS.\n"
23742374 "\n"
23752375 " [url-protocol]_PROXY [protocol://]<host>[:port]\n"
2376 , stdout);
2377 fputs(
23762378 " Sets the proxy server to use for [url-protocol], where the pro-\n"
23772379 " tocol is a protocol that curl supports and as specified in a\n"
23782380 " URL. FTP, FTPS, POP3, IMAP, SMTP, LDAP etc.\n"
23812383 " Sets the proxy server to use if no protocol-specific proxy is\n"
23822384 " set.\n"
23832385 "\n"
2384 , stdout);
2385 fputs(
23862386 " NO_PROXY <comma-separated list of hosts>\n"
23872387 " list of host names that shouldn't go through any proxy. If set\n"
2388 , stdout);
2389 fputs(
23882390 " to a asterisk '*' only, it matches all hosts.\n"
23892391 "\n"
23902392 "PROXY PROTOCOL PREFIXES\n"
23922394 " protocol:// prefix to specify alternative proxy protocols.\n"
23932395 "\n"
23942396 " If no protocol is specified in the proxy string or if the string\n"
2395 , stdout);
2396 fputs(
23972397 " doesn't match a supported one, the proxy will be treated as a HTTP\n"
23982398 " proxy.\n"
23992399 "\n"
24002400 " The supported proxy protocol prefixes are as follows:\n"
24012401 "\n"
24022402 " socks4://\n"
2403 , stdout);
2404 fputs(
24032405 " Makes it the equivalent of --socks4\n"
24042406 "\n"
24052407 " socks4a://\n"
24122414 " Makes it the equivalent of --socks5-hostname\n"
24132415 "\n"
24142416 "EXIT CODES\n"
2415 , stdout);
2416 fputs(
24172417 " There are a bunch of different error codes and their corresponding\n"
24182418 " error messages that may appear during bad conditions. At the time of\n"
24192419 " this writing, the exit codes are:\n"
24202420 "\n"
2421 , stdout);
2422 fputs(
24212423 " 1 Unsupported protocol. This build of curl has no support for this\n"
24222424 " protocol.\n"
24232425 "\n"
24262428 " 3 URL malformed. The syntax was not correct.\n"
24272429 "\n"
24282430 " 4 A feature or option that was needed to perform the desired\n"
2429 , stdout);
2430 fputs(
24312431 " request was not enabled or was explicitly disabled at build-\n"
24322432 " time. To make curl able to do this, you probably need another\n"
24332433 " build of libcurl!\n"
24342434 "\n"
2435 , stdout);
2436 fputs(
24352437 " 5 Couldn't resolve proxy. The given proxy host could not be\n"
24362438 " resolved.\n"
24372439 "\n"
24402442 " 7 Failed to connect to host.\n"
24412443 "\n"
24422444 " 8 FTP weird server reply. The server sent data curl couldn't\n"
2443 , stdout);
2444 fputs(
24452445 " parse.\n"
24462446 "\n"
24472447 " 9 FTP access denied. The server denied login or denied access to\n"
24482448 " the particular resource or directory you wanted to reach. Most\n"
2449 , stdout);
2450 fputs(
24492451 " often you tried to change to a directory that doesn't exist on\n"
24502452 " the server.\n"
24512453 "\n"
24532455 " PASS request.\n"
24542456 "\n"
24552457 " 13 FTP weird PASV reply, Curl couldn't parse the reply sent to the\n"
2456 , stdout);
2457 fputs(
24582458 " PASV request.\n"
24592459 "\n"
24602460 " 14 FTP weird 227 format. Curl couldn't parse the 227-line the\n"
24612461 " server sent.\n"
24622462 "\n"
2463 , stdout);
2464 fputs(
24632465 " 15 FTP can't get host. Couldn't resolve the host IP we got in the\n"
24642466 " 227-line.\n"
24652467 "\n"
24692471 " 18 Partial file. Only a part of the file was transferred.\n"
24702472 "\n"
24712473 " 19 FTP couldn't download/access the given file, the RETR (or simi-\n"
2472 , stdout);
2473 fputs(
24742474 " lar) command failed.\n"
24752475 "\n"
24762476 " 21 FTP quote error. A quote command returned error from the server.\n"
2477 , stdout);
2478 fputs(
24772479 " 22 HTTP page not retrieved. The requested url was not found or\n"
24782480 " returned another error with the HTTP error code being 400 or\n"
24792481 " above. This return code only appears if -f, --fail is used.\n"
24812483 " 23 Write error. Curl couldn't write data to a local filesystem or\n"
24822484 " similar.\n"
24832485 "\n"
2484 , stdout);
2485 fputs(
24862486 " 25 FTP couldn't STOR file. The server denied the STOR operation,\n"
24872487 " used for FTP uploading.\n"
24882488 "\n"
2489 , stdout);
2490 fputs(
24892491 " 26 Read error. Various reading problems.\n"
24902492 "\n"
24912493 " 27 Out of memory. A memory allocation request failed.\n"
24942496 " according to the conditions.\n"
24952497 "\n"
24962498 " 30 FTP PORT failed. The PORT command failed. Not all FTP servers\n"
2497 , stdout);
2498 fputs(
24992499 " support the PORT command, try doing a transfer using PASV\n"
25002500 " instead!\n"
25012501 "\n"
2502 , stdout);
2503 fputs(
25022504 " 31 FTP couldn't use REST. The REST command failed. This command is\n"
25032505 " used for resumed FTP transfers.\n"
25042506 "\n"
25082510 "\n"
25092511 " 35 SSL connect error. The SSL handshaking failed.\n"
25102512 "\n"
2511 , stdout);
2512 fputs(
25132513 " 36 FTP bad download resume. Couldn't continue an earlier aborted\n"
25142514 " download.\n"
25152515 "\n"
2516 , stdout);
2517 fputs(
25162518 " 37 FILE couldn't read file. Failed to open the file. Permissions?\n"
25172519 "\n"
25182520 " 38 LDAP cannot bind. LDAP bind operation failed.\n"
25242526 " 42 Aborted by callback. An application told curl to abort the oper-\n"
25252527 " ation.\n"
25262528 "\n"
2527 , stdout);
2528 fputs(
25292529 " 43 Internal error. A function was called with a bad parameter.\n"
25302530 "\n"
2531 , stdout);
2532 fputs(
25312533 " 45 Interface error. A specified outgoing interface could not be\n"
25322534 " used.\n"
25332535 "\n"
25382540 " passed a weird option to curl that was passed on to libcurl and\n"
25392541 " rejected. Read up in the manual!\n"
25402542 "\n"
2541 , stdout);
2542 fputs(
25432543 " 49 Malformed telnet option.\n"
25442544 "\n"
2545 , stdout);
2546 fputs(
25452547 " 51 The peer's SSL certificate or SSH MD5 fingerprint was not OK.\n"
25462548 "\n"
25472549 " 52 The server didn't reply anything, which here is considered an\n"
25572559 "\n"
25582560 " 58 Problem with the local certificate.\n"
25592561 "\n"
2560 , stdout);
2561 fputs(
25622562 " 59 Couldn't use specified SSL cipher.\n"
25632563 "\n"
2564 , stdout);
2565 fputs(
25642566 " 60 Peer certificate cannot be authenticated with known CA certifi-\n"
25652567 " cates.\n"
25662568 "\n"
25762578 "\n"
25772579 " 66 Failed to initialise SSL Engine.\n"
25782580 "\n"
2579 , stdout);
2580 fputs(
25812581 " 67 The user name, password, or similar was not accepted and curl\n"
25822582 " failed to log in.\n"
25832583 "\n"
2584 , stdout);
2585 fputs(
25842586 " 68 File not found on TFTP server.\n"
25852587 "\n"
25862588 " 69 Permission problem on TFTP server.\n"
25972599 "\n"
25982600 " 75 Character conversion failed.\n"
25992601 "\n"
2600 , stdout);
2601 fputs(
26022602 " 76 Character conversion functions required.\n"
26032603 "\n"
26042604 " 77 Problem with reading the SSL CA cert (path? access rights?).\n"
26052605 "\n"
2606 , stdout);
2607 fputs(
26062608 " 78 The resource referenced in the URL does not exist.\n"
26072609 "\n"
26082610 " 79 An unspecified error occurred during the SSH session.\n"
26142616 "\n"
26152617 " 83 Issuer check failed (added in 7.19.0).\n"
26162618 "\n"
2617 , stdout);
2618 fputs(
26192619 " 84 The FTP PRET command failed\n"
26202620 "\n"
26212621 " 85 RTSP: mismatch of CSeq numbers\n"
26222622 "\n"
26232623 " 86 RTSP: mismatch of Session Identifiers\n"
26242624 "\n"
2625 , stdout);
2626 fputs(
26252627 " 87 unable to parse FTP file list\n"
26262628 "\n"
26272629 " 88 FTP chunk callback reported error\n"
26312633 "\n"
26322634 "AUTHORS / CONTRIBUTORS\n"
26332635 " Daniel Stenberg is the main author, but the whole list of contributors\n"
2634 , stdout);
2635 fputs(
26362636 " is found in the separate THANKS file.\n"
26372637 "\n"
26382638 "WWW\n"
26442644 "SEE ALSO\n"
26452645 " ftp(1), wget(1)\n"
26462646 "\n"
2647 , stdout);
2648 fputs(
26472649 "LATEST VERSION\n"
26482650 "\n"
26492651 " You always find news about what's going on as well as the latest versions\n"
26582660 " curl http://www.netscape.com/\n"
26592661 "\n"
26602662 " Get the README file the user's home directory at funet's ftp-server:\n"
2661 , stdout);
2662 fputs(
26632663 "\n"
26642664 " curl ftp://ftp.funet.fi/README\n"
26652665 "\n"
26672667 "\n"
26682668 " curl http://www.weirdserver.com:8000/\n"
26692669 "\n"
2670 , stdout);
2671 fputs(
26702672 " Get a list of a directory of an FTP site:\n"
26712673 "\n"
26722674 " curl ftp://cool.haxx.se/\n"
26832685 "\n"
26842686 " curl ftps://files.are.secure.com/secrets.txt\n"
26852687 "\n"
2686 , stdout);
2687 fputs(
26882688 " or use the more appropriate FTPS way to get the same file:\n"
26892689 "\n"
26902690 " curl --ftp-ssl ftp://files.are.secure.com/secrets.txt\n"
26912691 "\n"
2692 , stdout);
2693 fputs(
26922694 " Get a file from an SSH server using SFTP:\n"
26932695 "\n"
26942696 " curl -u username sftp://shell.example.com/etc/issue\n"
27002702 "\n"
27012703 " Get the main page from an IPv6 web server:\n"
27022704 "\n"
2703 , stdout);
2704 fputs(
27052705 " curl -g \"http://[2001:1890:1112:1::20]/\"\n"
27062706 "\n"
27072707 "DOWNLOAD TO A FILE\n"
27082708 "\n"
27092709 " Get a web page and store in a local file:\n"
27102710 "\n"
2711 , stdout);
2712 fputs(
27112713 " curl -o thatpage.html http://www.netscape.com/\n"
27122714 "\n"
27132715 " Get a web page and store in a local file, make the local file get the name\n"
27182720 "\n"
27192721 " Fetch two files and store them with their remote names:\n"
27202722 "\n"
2721 , stdout);
2722 fputs(
27232723 " curl -O www.haxx.se/index.html -O curl.haxx.se/download.html\n"
27242724 "\n"
27252725 "USING PASSWORDS\n"
27282728 "\n"
27292729 " To ftp files using name+passwd, include them in the URL like:\n"
27302730 "\n"
2731 , stdout);
2732 fputs(
27312733 " curl ftp://name:passwd@machine.domain:port/full/path/to/file\n"
27322734 "\n"
27332735 " or specify them with the -u flag like\n"
27392741 " It is just like for FTP, but you may also want to specify and use\n"
27402742 " SSL-specific options for certificates etc.\n"
27412743 "\n"
2742 , stdout);
2743 fputs(
27442744 " Note that using FTPS:// as prefix is the \"implicit\" way as described in the\n"
27452745 " standards while the recommended \"explicit\" way is done by using FTP:// and\n"
27462746 " the --ftp-ssl option.\n"
27472747 "\n"
2748 , stdout);
2749 fputs(
27482750 " SFTP / SCP\n"
27492751 "\n"
27502752 " This is similar to FTP, but you can specify a private key to use instead of\n"
27512753 " a password. Note that the private key may itself be protected by a password\n"
27522754 " that is unrelated to the login password of the remote system. If you\n"
27532755 " provide a private key file you must also provide a public key file.\n"
2754 , stdout);
2755 fputs(
27562756 "\n"
27572757 " HTTP\n"
27582758 "\n"
27612761 "\n"
27622762 " curl http://name:passwd@machine.domain/full/path/to/file\n"
27632763 "\n"
2764 , stdout);
2765 fputs(
27642766 " or specify user and password separately like in\n"
27652767 "\n"
27662768 " curl -u name:passwd http://machine.domain/full/path/to/file\n"
27672769 "\n"
27682770 " HTTP offers many different methods of authentication and curl supports\n"
27692771 " several: Basic, Digest, NTLM and Negotiate. Without telling which method to\n"
2770 , stdout);
2771 fputs(
27722772 " use, curl defaults to Basic. You can also ask curl to pick the most secure\n"
27732773 " ones out of the ones that the server accepts for the given URL, by using\n"
27742774 " --anyauth.\n"
27752775 "\n"
2776 , stdout);
2777 fputs(
27762778 " NOTE! Since HTTP URLs don't support user and password, you can't use that\n"
27772779 " style when using Curl via a proxy. You _must_ use the -u style fetch\n"
27782780 " during such circumstances.\n"
27832785 "\n"
27842786 "PROXY\n"
27852787 "\n"
2786 , stdout);
2787 fputs(
27882788 " curl supports both HTTP and SOCKS proxy servers, with optional authentication.\n"
27892789 " It does not have special support for FTP proxy servers since there are no\n"
2790 , stdout);
2791 fputs(
27902792 " standards for those, but it can still be made to work with many of them. You\n"
27912793 " can also use both HTTP and SOCKS proxies to transfer files to and from FTP\n"
27922794 " servers.\n"
27952797 "\n"
27962798 " curl -x my-proxy:888 ftp://ftp.leachsite.com/README\n"
27972799 "\n"
2798 , stdout);
2799 fputs(
28002800 " Get a file from a HTTP server that requires user and password, using the\n"
28012801 " same proxy as above:\n"
28022802 "\n"
28032803 " curl -u user:passwd -x my-proxy:888 http://www.get.this/\n"
28042804 "\n"
2805 , stdout);
2806 fputs(
28052807 " Some proxies require special authentication. Specify by using -U as above:\n"
28062808 "\n"
28072809 " curl -U user:passwd -x my-proxy:888 http://www.get.this/\n"
28112813 "\n"
28122814 " curl --noproxy localhost,get.this -x my-proxy:888 http://www.get.this/\n"
28132815 "\n"
2814 , stdout);
2815 fputs(
28162816 " If the proxy is specified with --proxy1.0 instead of --proxy or -x, then\n"
28172817 " curl will use HTTP/1.0 instead of HTTP/1.1 for any CONNECT attempts.\n"
28182818 "\n"
2819 , stdout);
2820 fputs(
28192821 " curl also supports SOCKS4 and SOCKS5 proxies with --socks4 and --socks5.\n"
28202822 "\n"
28212823 " See also the environment variables Curl supports that offer further proxy\n"
28232825 "\n"
28242826 " Most FTP proxy servers are set up to appear as a normal FTP server from the\n"
28252827 " client's perspective, with special commands to select the remote FTP server.\n"
2826 , stdout);
2827 fputs(
28282828 " curl supports the -u, -Q and --ftp-account options that can be used to\n"
28292829 " set up transfers through many FTP proxies. For example, a file can be\n"
2830 , stdout);
2831 fputs(
28302832 " uploaded to a remote FTP server using a Blue Coat FTP proxy with the\n"
28312833 " options:\n"
28322834 "\n"
28352837 " ftp://my-ftp.proxy.server:21/remote/upload/path/\n"
28362838 "\n"
28372839 " See the manual for your FTP proxy to determine the form it expects to set up\n"
2838 , stdout);
2839 fputs(
28402840 " transfers, and curl's -v option to see exactly what curl is sending.\n"
28412841 "\n"
28422842 "RANGES\n"
28432843 "\n"
2844 , stdout);
2845 fputs(
28442846 " With HTTP 1.1 byte-ranges were introduced. Using this, a client can request\n"
28452847 " to get only one or more subparts of a specified document. Curl supports\n"
28462848 " this with the -r flag.\n"
28532855 "\n"
28542856 " curl -r -500 http://www.get.this/\n"
28552857 "\n"
2856 , stdout);
2857 fputs(
28582858 " Curl also supports simple ranges for FTP files as well. Then you can only\n"
28592859 " specify start and stop position.\n"
28602860 "\n"
2861 , stdout);
2862 fputs(
28612863 " Get the first 100 bytes of a document using FTP:\n"
28622864 "\n"
28632865 " curl -r 0-99 ftp://www.get.this/README\n"
28742876 "\n"
28752877 " curl -T uploadfile -u user:passwd ftp://ftp.upload.com/myfile\n"
28762878 "\n"
2877 , stdout);
2878 fputs(
28792879 " Upload a local file to the remote site, and use the local file name remote\n"
28802880 " too:\n"
28812881 "\n"
2882 , stdout);
2883 fputs(
28822884 " curl -T uploadfile -u user:passwd ftp://ftp.upload.com/\n"
28832885 "\n"
28842886 " Upload a local file to get appended to the remote file:\n"
28892891 " configured to allow that kind of tunneling. If it does, you can run curl in\n"
28902892 " a fashion similar to:\n"
28912893 "\n"
2892 , stdout);
2893 fputs(
28942894 " curl --proxytunnel -x proxy:port -T localfile ftp.upload.com\n"
28952895 "\n"
28962896 " HTTP\n"
28972897 "\n"
28982898 " Upload all data on stdin to a specified http site:\n"
28992899 "\n"
2900 , stdout);
2901 fputs(
29002902 " curl -T - http://www.upload.com/myfile\n"
29012903 "\n"
29022904 " Note that the http server must have been configured to accept PUT before\n"
29072909 "VERBOSE / DEBUG\n"
29082910 "\n"
29092911 " If curl fails where it isn't supposed to, if the servers don't let you in,\n"
2910 , stdout);
2911 fputs(
29122912 " if you can't understand the responses: use the -v flag to get verbose\n"
29132913 " fetching. Curl will output lots of info and what it sends and receives in\n"
2914 , stdout);
2915 fputs(
29142916 " order to let the user see all client-server interaction (but it won't show\n"
29152917 " you the actual data).\n"
29162918 "\n"
29232925 " curl --trace trace.txt www.haxx.se\n"
29242926 "\n"
29252927 "\n"
2926 , stdout);
2927 fputs(
29282928 "DETAILED INFORMATION\n"
29292929 "\n"
29302930 " Different protocols provide different ways of getting detailed information\n"
2931 , stdout);
2932 fputs(
29312933 " about specific files/documents. To get curl to show detailed information\n"
29322934 " about a single file, you should use -I/--head option. It displays all\n"
29332935 " available info on a single file for HTTP and FTP. The HTTP information is a\n"
29352937 "\n"
29362938 " For HTTP, you can get the header information (the same as -I would show)\n"
29372939 " shown before the data by using -i/--include. Curl understands the\n"
2938 , stdout);
2939 fputs(
29402940 " -D/--dump-header option when getting files from both FTP and HTTP, and it\n"
2941 , stdout);
2942 fputs(
29412943 " will then store the headers in the specified file.\n"
29422944 "\n"
29432945 " Store the HTTP headers in a separate file (headers.txt in the example):\n"
29502952 "\n"
29512953 "POST (HTTP)\n"
29522954 "\n"
2953 , stdout);
2954 fputs(
29552955 " It's easy to post data using curl. This is done using the -d <data>\n"
29562956 " option. The post data must be urlencoded.\n"
29572957 "\n"
2958 , stdout);
2959 fputs(
29582960 " Post a simple \"name\" and \"phone\" guestbook.\n"
29592961 "\n"
29602962 " curl -d \"name=Rafael%20Sagula&phone=3320780\" \\\n"
29652967 " Dig out all the <input> tags in the form that you want to fill in. (There's\n"
29662968 " a perl program called formfind.pl on the curl site that helps with this).\n"
29672969 "\n"
2968 , stdout);
2969 fputs(
29702970 " If there's a \"normal\" post, you use -d to post. -d takes a full \"post\n"
29712971 " string\", which is in the format\n"
29722972 "\n"
2973 , stdout);
2974 fputs(
29732975 " <variable1>=<data1>&<variable2>=<data2>&...\n"
29742976 "\n"
29752977 " The 'variable' names are the names set with \"name=\" in the <input> tags, and\n"
29762978 " the data is the contents you want to fill in for the inputs. The data *must*\n"
29772979 " be properly URL encoded. That means you replace space with + and that you\n"
29782980 " write weird letters with %XX where XX is the hexadecimal representation of\n"
2979 , stdout);
2980 fputs(
29812981 " the letter's ASCII code.\n"
29822982 "\n"
29832983 " Example:\n"
29842984 "\n"
29852985 " (page located at http://www.formpost.com/getthis/\n"
29862986 "\n"
2987 , stdout);
2988 fputs(
29872989 " <form action=\"post.cgi\" method=\"post\">\n"
29882990 " <input name=user size=10>\n"
29892991 " <input name=pass type=password size=10>\n"
29952997 "\n"
29962998 " To post to this, you enter a curl command line like:\n"
29972999 "\n"
2998 , stdout);
2999 fputs(
30003000 " curl -d \"user=foobar&pass=12345&id=blablabla&ding=submit\" (continues)\n"
30013001 " http://www.formpost.com/getthis/post.cgi\n"
30023002 "\n"
30033003 "\n"
3004 , stdout);
3005 fputs(
30043006 " While -d uses the application/x-www-form-urlencoded mime-type, generally\n"
30053007 " understood by CGI's and similar, curl also supports the more capable\n"
30063008 " multipart/form-data type. This latter type supports things like file upload.\n"
30073009 "\n"
30083010 " -F accepts parameters like -F \"name=contents\". If you want the contents to\n"
3009 , stdout);
3010 fputs(
30113011 " be read from a file, use <@filename> as contents. When specifying a file,\n"
30123012 " you can also specify the file content type by appending ';type=<mime type>'\n"
3013 , stdout);
3014 fputs(
30133015 " to the file name. You can also post the contents of several files in one\n"
30143016 " field. For example, the field name 'coolfiles' is used to send three files,\n"
30153017 " with different content types using the following syntax:\n"
30173019 " curl -F \"coolfiles=@fil1.gif;type=image/gif,fil2.txt,fil3.html\" \\\n"
30183020 " http://www.post.com/postit.cgi\n"
30193021 "\n"
3020 , stdout);
3021 fputs(
30223022 " If the content-type is not specified, curl will try to guess from the file\n"
30233023 " extension (it only knows a few), or use the previously specified type (from\n"
3024 , stdout);
3025 fputs(
30243026 " an earlier file if several files are specified in a list) or else it will\n"
3025 " using the default type 'text/plain'.\n"
3027 " use the default type 'application/octet-stream'.\n"
30263028 "\n"
30273029 " Emulate a fill-in form with -F. Let's say you fill in three fields in a\n"
30283030 " form. One field is a file name which to post, one field is your name and one\n"
3029 , stdout);
3030 fputs(
30313031 " field is a file description. We want to post the file we have written named\n"
30323032 " \"cooltext.txt\". To let curl do the posting of this data instead of your\n"
3033 , stdout);
3034 fputs(
30333035 " favourite browser, you have to read the HTML source of the form page and\n"
30343036 " find the names of the input fields. In our example, the input field names\n"
30353037 " are 'file', 'yourname' and 'filedescription'.\n"
30363038 "\n"
30373039 " curl -F \"file=@cooltext.txt\" -F \"yourname=Daniel\" \\\n"
30383040 " -F \"filedescription=Cool text file with cool text inside\" \\\n"
3039 , stdout);
3040 fputs(
30413041 " http://www.post.com/postit.cgi\n"
30423042 "\n"
30433043 " To send two files in one post you can do it in two ways:\n"
30443044 "\n"
3045 , stdout);
3046 fputs(
30453047 " 1. Send multiple files in a single \"field\" with a single field name:\n"
30463048 "\n"
30473049 " curl -F \"pictures=@dog.gif,cat.gif\"\n"
30523054 "\n"
30533055 " To send a field value literally without interpreting a leading '@'\n"
30543056 " or '<', or an embedded ';type=', use --form-string instead of\n"
3055 , stdout);
3056 fputs(
30573057 " -F. This is recommended when the value is obtained from a user or\n"
30583058 " some other unpredictable source. Under these circumstances, using\n"
3059 , stdout);
3060 fputs(
30593061 " -F instead of --form-string would allow a user to trick curl into\n"
30603062 " uploading a file.\n"
30613063 "\n"
30643066 " A HTTP request has the option to include information about which address\n"
30653067 " that referred to actual page. Curl allows you to specify the\n"
30663068 " referrer to be used on the command line. It is especially useful to\n"
3067 , stdout);
3068 fputs(
30693069 " fool or trick stupid servers or CGI scripts that rely on that information\n"
30703070 " being available or contain certain data.\n"
30713071 "\n"
30723072 " curl -e www.coolsite.com http://www.showme.com/\n"
30733073 "\n"
3074 , stdout);
3075 fputs(
30743076 " NOTE: The Referer: [sic] field is defined in the HTTP spec to be a full URL.\n"
30753077 "\n"
30763078 "USER AGENT\n"
30783080 " A HTTP request has the option to include information about the browser\n"
30793081 " that generated the request. Curl allows it to be specified on the command\n"
30803082 " line. It is especially useful to fool or trick stupid servers or CGI\n"
3081 , stdout);
3082 fputs(
30833083 " scripts that only accept certain browsers.\n"
30843084 "\n"
30853085 " Example:\n"
30873087 " curl -A 'Mozilla/3.0 (Win95; I)' http://www.nationsbank.com/\n"
30883088 "\n"
30893089 " Other common strings:\n"
3090 , stdout);
3091 fputs(
30903092 " 'Mozilla/3.0 (Win95; I)' Netscape Version 3 for Windows 95\n"
30913093 " 'Mozilla/3.04 (Win95; U)' Netscape Version 3 for Windows 95\n"
30923094 " 'Mozilla/2.02 (OS/2; U)' Netscape Version 2 for OS/2\n"
30933095 " 'Mozilla/4.04 [en] (X11; U; AIX 4.2; Nav)' NS for AIX\n"
30943096 " 'Mozilla/4.05 [en] (X11; U; Linux 2.0.32 i586)' NS for Linux\n"
30953097 "\n"
3096 , stdout);
3097 fputs(
30983098 " Note that Internet Explorer tries hard to be compatible in every way:\n"
30993099 " 'Mozilla/4.0 (compatible; MSIE 4.01; Windows 95)' MSIE for W95\n"
31003100 "\n"
3101 , stdout);
3102 fputs(
31013103 " Mozilla is not the only possible User-Agent name:\n"
31023104 " 'Konqueror/1.0' KDE File Manager desktop client\n"
31033105 " 'Lynx/2.7.1 libwww-FM/2.14' Lynx command line browser\n"
31063108 "\n"
31073109 " Cookies are generally used by web servers to keep state information at the\n"
31083110 " client's side. The server sets cookies by sending a response line in the\n"
3109 , stdout);
3110 fputs(
31113111 " headers that looks like 'Set-Cookie: <data>' where the data part then\n"
31123112 " typically contains a set of NAME=VALUE pairs (separated by semicolons ';'\n"
3113 , stdout);
3114 fputs(
31133115 " like \"NAME1=VALUE1; NAME2=VALUE2;\"). The server can also specify for what\n"
31143116 " path the \"cookie\" should be used for (by specifying \"path=value\"), when the\n"
31153117 " cookie should expire (\"expire=DATE\"), for what domain to use it\n"
31163118 " (\"domain=NAME\") and if it should be used on secure connections only\n"
31173119 " (\"secure\").\n"
31183120 "\n"
3119 , stdout);
3120 fputs(
31213121 " If you've received a page from a server that contains a header like:\n"
31223122 " Set-Cookie: sessionid=boo123; path=\"/foo\";\n"
31233123 "\n"
3124 , stdout);
3125 fputs(
31243126 " it means the server wants that first pair passed on when we get anything in\n"
31253127 " a path beginning with \"/foo\".\n"
31263128 "\n"
31303132 "\n"
31313133 " Curl also has the ability to use previously received cookies in following\n"
31323134 " sessions. If you get cookies from a server and store them in a file in a\n"
3133 , stdout);
3134 fputs(
31353135 " manner similar to:\n"
31363136 "\n"
31373137 " curl --dump-header headers www.example.com\n"
31383138 "\n"
3139 , stdout);
3140 fputs(
31393141 " ... you can then in a second connect to that (or another) site, use the\n"
31403142 " cookies from the 'headers' file like:\n"
31413143 "\n"
31463148 " save the incoming cookies using the well-known netscape cookie format like\n"
31473149 " this:\n"
31483150 "\n"
3149 , stdout);
3150 fputs(
31513151 " curl -c cookies.txt www.example.com\n"
31523152 "\n"
3153 , stdout);
3154 fputs(
31533155 " Note that by specifying -b you enable the \"cookie awareness\" and with -L\n"
31543156 " you can make curl follow a location: (which often is used in combination\n"
31553157 " with cookies). So that if a site sends cookies and a location, you can\n"
31583160 " curl -L -b empty.txt www.example.com\n"
31593161 "\n"
31603162 " The file to read cookies from must be formatted using plain HTTP headers OR\n"
3161 , stdout);
3162 fputs(
31633163 " as netscape's cookie file. Curl will determine what kind it is based on the\n"
3164 , stdout);
3165 fputs(
31643166 " file contents. In the above command, curl will parse the header and store\n"
31653167 " the cookies received from www.example.com. curl will send to the server the\n"
31663168 " stored cookies which match the request as it follows the location. The\n"
31693171 " Alas, to both read and write cookies from a netscape cookie file, you can\n"
31703172 " set both -b and -c to use the same file:\n"
31713173 "\n"
3172 , stdout);
3173 fputs(
31743174 " curl -b cookies.txt -c cookies.txt www.example.com\n"
31753175 "\n"
31763176 "PROGRESS METER\n"
31773177 "\n"
3178 , stdout);
3179 fputs(
31783180 " The progress meter exists to show a user that something actually is\n"
31793181 " happening. The different fields in the output have the following meaning:\n"
31803182 "\n"
31833185 " 0 151M 0 38608 0 0 9406 0 4:41:43 0:00:04 4:41:39 9287\n"
31843186 "\n"
31853187 " From left-to-right:\n"
3186 , stdout);
3187 fputs(
31883188 " % - percentage completed of the whole transfer\n"
3189 , stdout);
3190 fputs(
31893191 " Total - total size of the whole expected transfer\n"
31903192 " % - percentage completed of the download\n"
31913193 " Received - currently downloaded amount of bytes\n"
31953197 " Dload - the average transfer speed of the download\n"
31963198 " Average Speed\n"
31973199 " Upload - the average transfer speed of the upload\n"
3198 , stdout);
3199 fputs(
32003200 " Time Total - expected time to complete the operation\n"
3201 , stdout);
3202 fputs(
32013203 " Time Current - time passed since the invoke\n"
32023204 " Time Left - expected time left to completion\n"
32033205 " Curr.Speed - the average transfer speed the last 5 seconds (the first\n"
32083210 "\n"
32093211 "SPEED LIMIT\n"
32103212 "\n"
3211 , stdout);
3212 fputs(
32133213 " Curl allows the user to set the transfer speed conditions that must be met\n"
3214 , stdout);
3215 fputs(
32143216 " to let the transfer keep going. By using the switch -y and -Y you\n"
32153217 " can make curl abort transfers if the transfer speed is below the specified\n"
32163218 " lowest limit for a specified time.\n"
32213223 " curl -Y 3000 -y 60 www.far-away-site.com\n"
32223224 "\n"
32233225 " This can very well be used in combination with the overall time limit, so\n"
3224 , stdout);
3225 fputs(
32263226 " that the above operation must be completed in whole within 30 minutes:\n"
32273227 "\n"
3228 , stdout);
3229 fputs(
32283230 " curl -m 1800 -Y 3000 -y 60 www.far-away-site.com\n"
32293231 "\n"
32303232 " Forcing curl not to transfer data faster than a given rate is also possible,\n"
32343236 "\n"
32353237 " Make curl transfer data no faster than 10 kilobytes per second:\n"
32363238 "\n"
3237 , stdout);
3238 fputs(
32393239 " curl --limit-rate 10K www.far-away-site.com\n"
32403240 "\n"
32413241 " or\n"
32423242 "\n"
32433243 " curl --limit-rate 10240 www.far-away-site.com\n"
32443244 "\n"
3245 , stdout);
3246 fputs(
32453247 " Or prevent curl from uploading data faster than 1 megabyte per second:\n"
32463248 "\n"
32473249 " curl -T upload --limit-rate 1M ftp://uploadshereplease.com\n"
32493251 " When using the --limit-rate option, the transfer rate is regulated on a\n"
32503252 " per-second basis, which will cause the total transfer speed to become lower\n"
32513253 " than the given number. Sometimes of course substantially lower, if your\n"
3252 , stdout);
3253 fputs(
32543254 " transfer stalls during periods.\n"
32553255 "\n"
32563256 "CONFIG FILE\n"
32573257 "\n"
32583258 " Curl automatically tries to read the .curlrc file (or _curlrc file on win32\n"
3259 , stdout);
3260 fputs(
32593261 " systems) from the user's home dir on startup.\n"
32603262 "\n"
32613263 " The config file could be made up with normal command line switches, but you\n"
32623264 " can also specify the long options without the dashes to make it more\n"
32633265 " readable. You can separate the options and the parameter with spaces, or\n"
32643266 " with = or :. Comments can be used within the file. If the first letter on a\n"
3265 , stdout);
3266 fputs(
32673267 " line is a '#'-symbol the rest of the line is treated as a comment.\n"
32683268 "\n"
32693269 " If you want the parameter to contain spaces, you must enclose the entire\n"
3270 , stdout);
3271 fputs(
32703272 " parameter within double quotes (\"). Within those quotes, you specify a\n"
32713273 " quote as \\\".\n"
32723274 "\n"
32773279 " # We want a 30 minute timeout:\n"
32783280 " -m 1800\n"
32793281 " # ... and we use a proxy for all accesses:\n"
3280 , stdout);
3281 fputs(
32823282 " proxy = proxy.our.domain.com:8080\n"
32833283 "\n"
32843284 " White spaces ARE significant at the end of lines, but all white spaces\n"
3285 , stdout);
3286 fputs(
32853287 " leading up to the first characters of each line are ignored.\n"
32863288 "\n"
32873289 " Prevent curl from reading the default file by using -q as the first command\n"
32933295 " without URL by making a config file similar to:\n"
32943296 "\n"
32953297 " # default url to get\n"
3296 , stdout);
3297 fputs(
32983298 " url = \"http://help.with.curl.com/curlhelp.html\"\n"
32993299 "\n"
33003300 " You can specify another config file to be read by using the -K/--config\n"
3301 , stdout);
3302 fputs(
33013303 " flag. If you set config file name to \"-\" it'll read the config from stdin,\n"
33023304 " which can be handy if you want to hide options from being visible in process\n"
33033305 " tables etc:\n"
33073309 "EXTRA HEADERS\n"
33083310 "\n"
33093311 " When using curl in your own very special programs, you may end up needing\n"
3310 , stdout);
3311 fputs(
33123312 " to pass on your own custom headers when getting a web page. You can do\n"
33133313 " this by using the -H flag.\n"
33143314 "\n"
3315 , stdout);
3316 fputs(
33153317 " Example, send the header \"X-you-and-me: yes\" to the server when getting a\n"
33163318 " page:\n"
33173319 "\n"
33203322 " This can also be useful in case you want curl to send a different text in a\n"
33213323 " header than it normally does. The -H header you specify then replaces the\n"
33223324 " header curl would normally send. If you replace an internal header with an\n"
3323 , stdout);
3324 fputs(
33253325 " empty one, you prevent that header from being sent. To prevent the Host:\n"
33263326 " header from being used:\n"
33273327 "\n"
3328 , stdout);
3329 fputs(
33283330 " curl -H \"Host:\" www.server.com\n"
33293331 "\n"
33303332 "FTP and PATH NAMES\n"
33363338 " curl ftp://user:passwd@my.site.com/README\n"
33373339 "\n"
33383340 " But if you want the README file from the root directory of that very same\n"
3339 , stdout);
3340 fputs(
33413341 " site, you need to specify the absolute file name:\n"
33423342 "\n"
33433343 " curl ftp://user:passwd@my.site.com//README\n"
33443344 "\n"
3345 , stdout);
3346 fputs(
33453347 " (I.e with an extra slash in front of the file name.)\n"
33463348 "\n"
33473349 "SFTP and SCP and PATH NAMES\n"
33543356 "\n"
33553357 "FTP and firewalls\n"
33563358 "\n"
3357 , stdout);
3358 fputs(
33593359 " The FTP protocol requires one of the involved parties to open a second\n"
3360 , stdout);
3361 fputs(
33603362 " connection as soon as data is about to get transfered. There are two ways to\n"
33613363 " do this.\n"
33623364 "\n"
33673369 "\n"
33683370 " curl ftp.download.com\n"
33693371 "\n"
3370 , stdout);
3371 fputs(
33723372 " If the server for example, is behind a firewall that don't allow connections\n"
3373 , stdout);
3374 fputs(
33733375 " on other ports than 21 (or if it just doesn't support the PASV command), the\n"
33743376 " other way to do it is to use the PORT command and instruct the server to\n"
33753377 " connect to the client on the given (as parameters to the PORT command) IP\n"
33773379 "\n"
33783380 " The -P flag to curl supports a few different options. Your machine may have\n"
33793381 " several IP-addresses and/or network interfaces and curl allows you to select\n"
3380 , stdout);
3381 fputs(
33823382 " which of them to use. Default address can also be used:\n"
33833383 "\n"
3384 , stdout);
3385 fputs(
33843386 " curl -P - ftp.download.com\n"
33853387 "\n"
33863388 " Download with PORT but use the IP address of our 'le0' interface (this does\n"
33963398 "\n"
33973399 " Get a web page from a server using a specified port for the interface:\n"
33983400 "\n"
3399 , stdout);
3400 fputs(
34013401 " curl --interface eth0:1 http://www.netscape.com/\n"
34023402 "\n"
34033403 " or\n"
34043404 "\n"
3405 , stdout);
3406 fputs(
34053407 " curl --interface 192.168.1.10 http://www.netscape.com/\n"
34063408 "\n"
34073409 "HTTPS\n"
34153417 " curl https://www.secure-site.com\n"
34163418 "\n"
34173419 " Curl is also capable of using your personal certificates to get/post files\n"
3418 , stdout);
3419 fputs(
34203420 " from sites that require valid certificates. The only drawback is that the\n"
3421 , stdout);
3422 fputs(
34213423 " certificate needs to be in PEM-format. PEM is a standard and open format to\n"
34223424 " store certificates with, but it is not used by the most commonly used\n"
34233425 " browsers (Netscape and MSIE both use the so called PKCS#12 format). If you\n"
34243426 " want curl to use the certificates you use with your (favourite) browser, you\n"
34253427 " may need to download/compile a converter that can convert your browser's\n"
3426 , stdout);
3427 fputs(
34283428 " formatted certificates to PEM formatted ones. This kind of converter is\n"
3429 , stdout);
3430 fputs(
34293431 " included in recent versions of OpenSSL, and for older versions Dr Stephen\n"
34303432 " N. Henson has written a patch for SSLeay that adds this functionality. You\n"
34313433 " can get his patch (that requires an SSLeay installation) from his site at:\n"
34343436 " Example on how to automatically retrieve a document using a certificate with\n"
34353437 " a personal password:\n"
34363438 "\n"
3437 , stdout);
3438 fputs(
34393439 " curl -E /path/to/cert.pem:password https://secure.site.com/\n"
34403440 "\n"
3441 , stdout);
3442 fputs(
34413443 " If you neglect to specify the password on the command line, you will be\n"
34423444 " prompted for the correct password before any data can be received.\n"
34433445 "\n"
34453447 " of OpenSSL etc is using, therefore it is sometimes useful to specify what\n"
34463448 " SSL-version curl should use. Use -3, -2 or -1 to specify that exact SSL\n"
34473449 " version to use (for SSLv3, SSLv2 or TLSv1 respectively):\n"
3448 , stdout);
3449 fputs(
34503450 "\n"
34513451 " curl -2 https://secure.site.com/\n"
34523452 "\n"
3453 , stdout);
3454 fputs(
34533455 " Otherwise, curl will first attempt to use v3 and then v2.\n"
34543456 "\n"
34553457 " To use OpenSSL to convert your favourite browser's certificate into a PEM\n"
34623464 "\n"
34633465 " Press the 'export' button\n"
34643466 "\n"
3465 , stdout);
3466 fputs(
34673467 " enter your PIN code for the certs\n"
34683468 "\n"
3469 , stdout);
3470 fputs(
34693471 " select a proper place to save it\n"
34703472 "\n"
34713473 " Run the 'openssl' application to convert the certificate. If you cd to the\n"
37973799 #else
37983800 /*
37993801 * NEVER EVER edit this manually, fix the mkhelp.pl script instead!
3800 * Generation time: Sun Nov 6 00:17:32 2011
3802 * Generation time: Mon Jan 23 16:33:23 2012
38013803 */
38023804 #ifdef USE_MANUAL
38033805 #include "hugehelp.h"
38053807 #include "memdebug.h" /* keep this as LAST include */
38063808 static const unsigned char hugehelpgz[] = {
38073809 /* This mumbo-jumbo is the huge help text compressed with gzip.
3808 Thanks to this operation, the size of this data shrunk from 141188
3809 to 43244 bytes. You can disable the use of compressed help
3810 Thanks to this operation, the size of this data shrunk from 141262
3811 to 43296 bytes. You can disable the use of compressed help
38103812 texts by NOT passing -c to the mkhelp.pl tool. */
38113813 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0xed, 0xbd,
38123814 0x7b, 0x7b, 0x1b, 0xc7, 0x91, 0x2e, 0xfe, 0x3f, 0x3f, 0xc5, 0x04, 0xf9,
44934495 0x36, 0x0d, 0xc1, 0x51, 0x14, 0xad, 0xb7, 0x0b, 0xeb, 0xdb, 0xfb, 0x7f,
44944496 0x23, 0xd3, 0xd0, 0xd9, 0x86, 0xbf, 0x8d, 0x69, 0x48, 0x5a, 0x40, 0x0d,
44954497 0xc3, 0xdf, 0x54, 0x87, 0x62, 0x07, 0x35, 0x74, 0xa8, 0x37, 0x27, 0xff,
4496 0x75, 0x6d, 0x1a, 0x20, 0xd8, 0xdb, 0x0a, 0x46, 0x54, 0x6c, 0x53, 0xab,
4497 0xd6, 0x60, 0xca, 0x9d, 0x1a, 0x51, 0xb4, 0x42, 0x7a, 0xd5, 0xa5, 0x87,
4498 0x5a, 0x62, 0xa9, 0x06, 0xe3, 0xc0, 0xe0, 0xe9, 0xda, 0x1b, 0x34, 0x7c,
4499 0x13, 0xc3, 0x99, 0xc3, 0x3a, 0xa5, 0x1b, 0xa5, 0x93, 0xcc, 0xa2, 0x30,
4500 0x69, 0x76, 0xfa, 0xae, 0x48, 0x6e, 0xe2, 0xf2, 0x26, 0x5a, 0x55, 0x29,
4501 0x3c, 0xad, 0x6c, 0x0d, 0xcd, 0x1d, 0xe6, 0x47, 0x3f, 0xa5, 0x19, 0x96,
4502 0xed, 0x1b, 0x99, 0xcc, 0xb6, 0x78, 0x58, 0xd8, 0x70, 0xd2, 0xe7, 0x87,
4503 0xc6, 0x8f, 0x6e, 0x53, 0x2a, 0xa1, 0x4d, 0xfe, 0x4d, 0x60, 0x45, 0x34,
4504 0x7d, 0xfa, 0xc8, 0xc9, 0x86, 0xf3, 0x37, 0x4a, 0xae, 0x68, 0xba, 0xd2,
4505 0x20, 0x45, 0xc9, 0xb8, 0x62, 0xf4, 0x8c, 0xd4, 0xc8, 0x95, 0xfb, 0x77,
4506 0xc7, 0xd5, 0x5d, 0x4f, 0xb0, 0x52, 0xe8, 0x6c, 0xeb, 0xf2, 0x50, 0xfe,
4507 0x86, 0x22, 0x78, 0x05, 0xdf, 0x17, 0xed, 0x83, 0x6e, 0xd7, 0xd6, 0x2b,
4508 0x4e, 0x68, 0x2d, 0x39, 0x26, 0xcc, 0x63, 0xdb, 0x64, 0x36, 0x47, 0x61,
4509 0x0b, 0x8d, 0x61, 0x5f, 0x6f, 0xf1, 0x0d, 0xdd, 0xf2, 0x55, 0x90, 0x3f,
4510 0x53, 0x76, 0xb3, 0x07, 0x80, 0x15, 0x44, 0xe8, 0x25, 0x01, 0x79, 0x44,
4511 0xc8, 0x13, 0xfe, 0x71, 0xf5, 0x27, 0x82, 0xf6, 0x9d, 0x94, 0x33, 0x6d,
4512 0xf3, 0xe0, 0x97, 0xb3, 0x44, 0xb9, 0x85, 0x9b, 0xaa, 0x52, 0xd8, 0xe2,
4513 0xd5, 0x3d, 0x4a, 0xdf, 0x3c, 0xc9, 0x2c, 0xb4, 0x24, 0xa0, 0x0a, 0x05,
4514 0x85, 0x2b, 0xb1, 0x86, 0xf5, 0xf0, 0x4a, 0xd2, 0xdb, 0x5a, 0xfb, 0x60,
4515 0x96, 0xcc, 0x53, 0x3c, 0xc0, 0xc9, 0xf9, 0x9a, 0x8b, 0xa4, 0x5e, 0xd4,
4516 0x22, 0xa9, 0x56, 0x05, 0x50, 0x53, 0xa0, 0xe9, 0x78, 0x7d, 0xea, 0x1e,
4517 0x60, 0x6c, 0x18, 0x1c, 0x2d, 0x65, 0xb3, 0x39, 0x25, 0x8a, 0x03, 0xbb,
4518 0xb4, 0x98, 0x9d, 0x06, 0x6e, 0xe2, 0x8e, 0x3d, 0x38, 0xde, 0xff, 0x2d,
4519 0x3d, 0x14, 0x25, 0x84, 0x29, 0x51, 0x75, 0xba, 0x14, 0x0e, 0x5b, 0xbb,
4520 0xd4, 0xa0, 0xb0, 0x52, 0x03, 0x02, 0x0b, 0x50, 0xc9, 0x8d, 0x21, 0xae,
4521 0x94, 0x3e, 0x96, 0x7b, 0xa9, 0x79, 0xc6, 0x7b, 0x7b, 0x6b, 0xb0, 0x9c,
4522 0xca, 0x27, 0xa0, 0x90, 0x0e, 0x9e, 0x8c, 0x61, 0x19, 0x5f, 0x39, 0x72,
4523 0x21, 0x92, 0x64, 0x36, 0x3a, 0xf3, 0x29, 0x4d, 0xa1, 0xe0, 0xa1, 0xf0,
4524 0xb3, 0x2c, 0x6f, 0x87, 0x56, 0x56, 0x53, 0xde, 0x9c, 0x7c, 0x9f, 0x70,
4525 0x08, 0x45, 0x0e, 0x5c, 0x2b, 0x26, 0x25, 0x2a, 0xe7, 0xe9, 0x92, 0x37,
4526 0x6c, 0x91, 0xaf, 0xae, 0x6f, 0x68, 0x22, 0x13, 0xe8, 0x26, 0x1c, 0xcf,
4527 0x5d, 0x4e, 0xf3, 0x06, 0xef, 0x01, 0x2c, 0xe2, 0x3b, 0xe6, 0xc5, 0x9b,
4528 0x45, 0x9b, 0x8d, 0xf6, 0x9f, 0xee, 0xec, 0xa2, 0xbb, 0x4f, 0x77, 0x3e,
4529 0x0d, 0xd3, 0x3d, 0x1c, 0x2e, 0x5e, 0x79, 0x87, 0x34, 0x1c, 0xff, 0x38,
4530 0x8c, 0x70, 0xce, 0x97, 0x33, 0xcc, 0x6b, 0x42, 0x66, 0x23, 0x02, 0x85,
4531 0x9a, 0x2e, 0x30, 0x24, 0x6d, 0x87, 0xd6, 0x18, 0x7d, 0x85, 0xb5, 0x94,
4532 0xfc, 0x82, 0x66, 0xba, 0x63, 0x5c, 0x46, 0x96, 0xc2, 0xb6, 0x2e, 0x89,
4533 0xc0, 0xe8, 0x32, 0x3c, 0xe7, 0x1f, 0x52, 0x21, 0xba, 0x40, 0xc3, 0x21,
4534 0x39, 0xc0, 0xa1, 0xe6, 0x0c, 0x5c, 0xf2, 0x4d, 0x42, 0xad, 0xda, 0xb8,
4535 0xa8, 0xb6, 0x91, 0x1e, 0xa0, 0x60, 0x88, 0x29, 0xe7, 0xcf, 0x1b, 0xb9,
4536 0xf7, 0xc5, 0xab, 0xc3, 0x46, 0x73, 0x7b, 0x4f, 0x3e, 0xfb, 0x4c, 0x3b,
4537 0x91, 0x68, 0xe4, 0xd8, 0xf3, 0x3b, 0xf1, 0xc5, 0x5a, 0xf0, 0x96, 0x72,
4538 0xe2, 0x31, 0x27, 0x33, 0xd0, 0x69, 0x12, 0x4e, 0xe9, 0x38, 0xd8, 0xfb,
4539 0x3a, 0xa7, 0x7d, 0xab, 0x9e, 0x60, 0x78, 0x1a, 0x25, 0x23, 0x1a, 0x18,
4540 0xdb, 0xac, 0xc3, 0x5c, 0x6b, 0xbe, 0x37, 0xdb, 0x8a, 0x59, 0xf4, 0x45,
4541 0x2b, 0x3a, 0x77, 0x2d, 0xd9, 0x02, 0x7f, 0xe3, 0x73, 0xe0, 0x3a, 0xa9,
4542 0xda, 0xd8, 0x9f, 0x00, 0x44, 0x5d, 0x6b, 0x7c, 0x6d, 0x6e, 0x79, 0xc0,
4543 0xdb, 0xa3, 0xe8, 0xa5, 0x17, 0x72, 0xa2, 0xf9, 0xb8, 0xab, 0xb1, 0x6b,
4544 0x47, 0x5f, 0x40, 0x8c, 0x5e, 0x68, 0xb2, 0x44, 0xd6, 0x05, 0x56, 0xfe,
4545 0x42, 0xd9, 0x0a, 0xd4, 0xe9, 0x83, 0x34, 0xfa, 0xaa, 0x8a, 0x8d, 0xf2,
4546 0x1f, 0x87, 0x26, 0x43, 0xef, 0x61, 0x09, 0x2b, 0xbe, 0x5d, 0x79, 0x14,
4547 0x5b, 0x7e, 0x59, 0x29, 0x04, 0x02, 0xe4, 0x9d, 0x91, 0x20, 0x70, 0xa5,
4548 0x17, 0xa6, 0x49, 0x91, 0x04, 0x08, 0xee, 0x4d, 0xd7, 0x54, 0x20, 0x6c,
4549 0xd2, 0xd5, 0xbb, 0xe0, 0xdd, 0x60, 0xa2, 0x5a, 0x3b, 0xff, 0xf8, 0x7d,
4550 0xbc, 0x00, 0x69, 0xbd, 0x71, 0x10, 0xc2, 0xb0, 0xf4, 0xb1, 0x7e, 0xbd,
4551 0x6c, 0x79, 0x64, 0xc2, 0x40, 0xb7, 0x7d, 0xd4, 0xe7, 0x87, 0x9a, 0x3b,
4552 0x9f, 0x5f, 0xea, 0x5b, 0x86, 0x49, 0x68, 0x26, 0x42, 0x30, 0xa5, 0x3b,
4553 0x8e, 0x36, 0x44, 0x6c, 0x36, 0xfe, 0xd4, 0x6c, 0x4d, 0xc2, 0x3c, 0xbf,
4554 0x89, 0x8c, 0xee, 0xfd, 0xce, 0x3b, 0xcd, 0xf0, 0x95, 0xeb, 0xe9, 0xcb,
4555 0x2f, 0x6a, 0xad, 0xdd, 0xdf, 0x8f, 0x16, 0x0f, 0xf6, 0xbb, 0xb2, 0x56,
4556 0x83, 0xc3, 0x43, 0x2d, 0x95, 0x78, 0x49, 0x44, 0xca, 0xe7, 0x09, 0x84,
4557 0xfc, 0xcf, 0x9e, 0xf1, 0x9a, 0x8e, 0x67, 0x81, 0xf7, 0x25, 0x6b, 0xb9,
4558 0xb5, 0x74, 0x37, 0x5d, 0xe7, 0x89, 0x04, 0xb3, 0x26, 0x39, 0x89, 0x9b,
4559 0x09, 0x12, 0xe3, 0xb2, 0xab, 0x62, 0x35, 0xad, 0xda, 0xa7, 0xb5, 0x2f,
4560 0xf4, 0xa0, 0x49, 0x95, 0xe0, 0x29, 0xd1, 0x3a, 0x08, 0xf0, 0x46, 0xd7,
4561 0xb7, 0xbb, 0x31, 0x78, 0x19, 0x66, 0xbd, 0xb9, 0x13, 0xc1, 0xd3, 0xd3,
4562 0x1f, 0x48, 0x98, 0x59, 0xf1, 0xc2, 0x1e, 0xdf, 0xba, 0x76, 0x2a, 0x7b,
4563 0xf7, 0xc9, 0xe4, 0xe5, 0x17, 0xec, 0x77, 0x7e, 0x8f, 0xcc, 0x64, 0xe1,
4564 0xfb, 0x61, 0x39, 0xda, 0xe6, 0x7f, 0xf6, 0x22, 0xbe, 0xc6, 0x74, 0xcc,
4565 0x24, 0xc9, 0xdf, 0xba, 0x16, 0x83, 0x64, 0x92, 0xa0, 0xb5, 0xab, 0x3c,
4566 0x5f, 0xdb, 0x98, 0x95, 0xe0, 0xc0, 0x4c, 0x04, 0x61, 0x45, 0x89, 0xf2,
4567 0x79, 0xb1, 0x12, 0x51, 0xc2, 0x0a, 0xd5, 0xb6, 0x56, 0x17, 0x64, 0x75,
4568 0xf2, 0xe0, 0x48, 0x04, 0x0d, 0xbe, 0xf6, 0x72, 0x20, 0xf5, 0x7d, 0xd8,
4569 0x4a, 0x5a, 0x3f, 0x21, 0xfc, 0xf4, 0xcb, 0x2f, 0x90, 0xe9, 0xc9, 0x7f,
4570 0xfd, 0x8b, 0x7b, 0x9b, 0xff, 0x20, 0xb9, 0xa4, 0xdd, 0xbd, 0x76, 0x20,
4571 0xec, 0x52, 0xba, 0x5a, 0x15, 0xb8, 0x29, 0x26, 0xb2, 0xc9, 0x84, 0xfa,
4572 0xde, 0xb2, 0xe8, 0x55, 0x45, 0xbc, 0x3e, 0x78, 0xf3, 0xf6, 0xe0, 0xb4,
4573 0xfb, 0x44, 0x56, 0xf3, 0x2d, 0x0c, 0x6e, 0x39, 0x07, 0x06, 0x6c, 0xb8,
4574 0xf0, 0xae, 0xc0, 0x01, 0x4a, 0xd6, 0xf9, 0xcc, 0xc5, 0xff, 0x23, 0x1f,
4575 0x01, 0x3f, 0x75, 0x86, 0xb2, 0x91, 0x55, 0x10, 0x67, 0x61, 0x16, 0x41,
4576 0x5c, 0xde, 0x8a, 0xc0, 0xf6, 0xec, 0x7d, 0x7e, 0xbd, 0xa7, 0xfe, 0x3f,
4577 0x07, 0xb1, 0xe9, 0x20, 0xa8, 0x74, 0x7a, 0x82, 0x8f, 0x3a, 0xb3, 0xd3,
4578 0xe1, 0xd1, 0x1a, 0x04, 0x5c, 0xfd, 0x70, 0x15, 0xa0, 0x86, 0xca, 0x55,
4579 0x70, 0x88, 0x35, 0x9a, 0x3b, 0x38, 0x3c, 0xf4, 0x00, 0x87, 0x3a, 0x50,
4580 0xfa, 0x09, 0x03, 0xa5, 0xd7, 0xe1, 0xce, 0x1b, 0x26, 0x2e, 0xe8, 0x10,
4581 0x07, 0xaa, 0xaf, 0x90, 0xeb, 0x51, 0x4b, 0x81, 0xb7, 0x10, 0x64, 0xcb,
4582 0x86, 0x42, 0x48, 0x72, 0x55, 0x26, 0xad, 0x19, 0x9d, 0x83, 0xe9, 0x9a,
4583 0xa3, 0xc3, 0xc3, 0x2a, 0x07, 0x20, 0x29, 0x7a, 0xa1, 0xdd, 0xfc, 0xbc,
4584 0x73, 0x82, 0x39, 0xfb, 0x2c, 0x30, 0x58, 0x8c, 0x0f, 0x15, 0xcc, 0xaf,
4585 0x63, 0x75, 0xe0, 0x9d, 0x1f, 0x80, 0xcc, 0x40, 0x51, 0x38, 0x6a, 0x78,
4586 0x0e, 0x5a, 0x88, 0x12, 0xc9, 0x60, 0x07, 0x45, 0xb1, 0x4d, 0x8c, 0xa5,
4587 0x85, 0xd8, 0xc5, 0xc3, 0x6a, 0x77, 0x5c, 0xae, 0x16, 0x74, 0x84, 0xd3,
4588 0xd1, 0x35, 0xeb, 0x97, 0x24, 0x7b, 0x4c, 0x14, 0xda, 0x94, 0x28, 0x46,
4589 0x19, 0x00, 0x23, 0xa1, 0xcb, 0x0e, 0xdc, 0x16, 0x42, 0x7e, 0xba, 0x28,
4590 0x71, 0x67, 0x24, 0xd1, 0xb2, 0xd1, 0x9a, 0xd4, 0xb1, 0xe3, 0x13, 0xe6,
4591 0x8e, 0x3b, 0x78, 0x7b, 0xf9, 0x75, 0x2f, 0x0a, 0x28, 0x81, 0xeb, 0x18,
4592 0x36, 0x32, 0x3c, 0x8b, 0x34, 0xb9, 0x73, 0x60, 0x89, 0x42, 0x36, 0x6f,
4593 0x9b, 0x66, 0xa9, 0x11, 0x62, 0x6a, 0x48, 0xc0, 0xb3, 0xd1, 0xb3, 0xad,
4594 0xc6, 0xc2, 0xac, 0x4f, 0xfb, 0x6e, 0xd2, 0x18, 0xab, 0xb0, 0x6b, 0xda,
4595 0x31, 0xc7, 0x9d, 0xb7, 0x3d, 0x33, 0x8f, 0x58, 0x5f, 0xb1, 0x39, 0xa6,
4596 0x3b, 0x30, 0xd0, 0x1e, 0x11, 0x2e, 0x2e, 0x1b, 0xc6, 0x38, 0xbc, 0x07,
4597 0x6f, 0x44, 0x56, 0x3b, 0x16, 0x43, 0xf2, 0x76, 0x07, 0x40, 0x68, 0x83,
4598 0x04, 0xed, 0x12, 0xcc, 0x74, 0x24, 0x4c, 0x8f, 0x19, 0x12, 0x23, 0xb6,
4599 0x13, 0xd1, 0xed, 0x28, 0xf2, 0x40, 0x8f, 0xce, 0x54, 0xe9, 0x68, 0x91,
4600 0x4a, 0xc6, 0x4a, 0x90, 0x76, 0xdd, 0x94, 0x64, 0xb5, 0xee, 0x7f, 0x94,
4601 0xff, 0x76, 0x2b, 0x07, 0x1c, 0x34, 0x45, 0x6e, 0xe7, 0x8e, 0xbe, 0x22,
4602 0x3c, 0x0d, 0x92, 0x72, 0xe0, 0x99, 0x23, 0x61, 0xf5, 0x8a, 0x8b, 0x3c,
4603 0x6b, 0xe5, 0xb3, 0x50, 0x6b, 0x9b, 0xe3, 0x2d, 0xc3, 0x31, 0xc0, 0xc8,
4604 0xd2, 0xc6, 0xe2, 0xe2, 0x5a, 0xaf, 0x47, 0x8e, 0xe4, 0x30, 0x00, 0xbe,
4605 0x2b, 0x5e, 0x6e, 0xd8, 0x22, 0x16, 0xbc, 0x8e, 0x82, 0x9d, 0xd8, 0x56,
4606 0xd9, 0x50, 0x8b, 0xd3, 0xfb, 0x59, 0x37, 0x22, 0x53, 0x8e, 0x52, 0x64,
4607 0x03, 0x07, 0x85, 0x56, 0x0e, 0xbf, 0x3b, 0x0a, 0x28, 0x9a, 0x58, 0xff,
4608 0x61, 0x50, 0x10, 0x04, 0x41, 0x87, 0x67, 0xeb, 0x90, 0xba, 0xe6, 0xe9,
4609 0x44, 0x59, 0x9d, 0x57, 0xa8, 0x75, 0x96, 0x2c, 0x1d, 0x05, 0x00, 0xd8,
4610 0x26, 0x79, 0x3d, 0xa5, 0x3c, 0x0e, 0x0a, 0xe1, 0xe0, 0xde, 0xbe, 0xa6,
4611 0x77, 0xaa, 0x06, 0x1c, 0x5d, 0x00, 0xff, 0x8f, 0x29, 0x71, 0xb8, 0xa8,
4612 0xd9, 0xee, 0xa7, 0x4f, 0x3e, 0x8b, 0x4a, 0xc6, 0xff, 0xa4, 0xe1, 0x94,
4613 0x49, 0x2e, 0xce, 0x7a, 0x0c, 0xb6, 0x5a, 0x60, 0xe6, 0x1e, 0x53, 0x4c,
4614 0x1a, 0x5d, 0xbc, 0xf2, 0xfb, 0x04, 0x0e, 0x1b, 0xc5, 0xc7, 0xb4, 0x21,
4615 0xb9, 0x34, 0x89, 0x56, 0x75, 0x45, 0x2a, 0x6d, 0x60, 0x9e, 0xe4, 0x3a,
4616 0x3f, 0xaa, 0x57, 0x1f, 0x02, 0x3d, 0x10, 0xa9, 0x87, 0x8b, 0xe3, 0xcb,
4617 0x0b, 0xfa, 0xcf, 0xf8, 0xf2, 0xec, 0x62, 0x0d, 0x70, 0x9e, 0x2e, 0xed,
4618 0xac, 0xf6, 0x78, 0xd2, 0x58, 0x68, 0x98, 0x7a, 0x05, 0xd3, 0x5c, 0x4f,
4619 0x89, 0x86, 0x57, 0x56, 0x54, 0x08, 0x2e, 0x74, 0x8b, 0xe1, 0xba, 0x74,
4620 0x09, 0xcc, 0x56, 0x38, 0xd0, 0xab, 0x98, 0xf6, 0xc9, 0x63, 0x03, 0x93,
4621 0x35, 0x7f, 0x5c, 0x42, 0x30, 0x60, 0x16, 0x46, 0x1e, 0xb1, 0x53, 0xda,
4622 0xe8, 0xad, 0x52, 0x98, 0x7b, 0xf7, 0xd4, 0x1a, 0xc2, 0xdd, 0x1a, 0xf3,
4623 0x57, 0x52, 0x0a, 0xde, 0xdc, 0xb3, 0xb1, 0x71, 0x89, 0x0d, 0x09, 0x15,
4624 0xf4, 0xd8, 0xff, 0x78, 0xeb, 0xa8, 0x7d, 0x3e, 0x20, 0xbf, 0x71, 0xe9,
4625 0x9c, 0x01, 0x7c, 0x98, 0xe6, 0x8b, 0x44, 0xec, 0x42, 0x71, 0x2f, 0x99,
4626 0xd6, 0x29, 0x95, 0x4b, 0x2f, 0x15, 0x60, 0x5d, 0x1b, 0x54, 0xe8, 0x72,
4627 0x7c, 0x79, 0x95, 0xfb, 0x0e, 0x1c, 0x96, 0xab, 0x74, 0xc8, 0xba, 0x90,
4628 0x85, 0x33, 0xaf, 0x90, 0x3d, 0xdd, 0xb7, 0x5e, 0xf5, 0x9d, 0xa8, 0x35,
4629 0xb4, 0xf2, 0x6e, 0x53, 0x2b, 0x33, 0xb2, 0xae, 0x5b, 0xb3, 0x20, 0xa6,
4630 0x6b, 0xf8, 0x2c, 0x47, 0xfd, 0xe8, 0x32, 0xe7, 0x42, 0x6e, 0xa3, 0x73,
4631 0x7d, 0x4a, 0xd6, 0xb6, 0xa5, 0x0a, 0xa4, 0xf4, 0x84, 0x97, 0x6d, 0x5d,
4632 0x72, 0x01, 0xbb, 0xad, 0x9a, 0xda, 0xb4, 0x66, 0x3d, 0xb5, 0xf5, 0x67,
4633 0xc0, 0xcf, 0xe8, 0x90, 0x49, 0xc3, 0xf3, 0xed, 0x00, 0x50, 0xa8, 0x89,
4634 0xeb, 0xb5, 0x91, 0xef, 0xfe, 0x02, 0x8b, 0xe4, 0x51, 0x50, 0xf0, 0x2f,
4635 0xc2, 0x04, 0x47, 0x6f, 0x33, 0x05, 0xe7, 0x66, 0x91, 0xa7, 0xed, 0xf4,
4636 0x60, 0x42, 0x06, 0x9e, 0x83, 0x82, 0x9b, 0xcf, 0xab, 0xd6, 0x29, 0x26,
4637 0xe4, 0xa1, 0x56, 0x67, 0x0f, 0xee, 0x55, 0xb8, 0xb5, 0xed, 0x88, 0xd1,
4638 0x06, 0xf5, 0x72, 0x29, 0xa5, 0xbe, 0x3c, 0xf4, 0xad, 0x05, 0xc4, 0x2f,
4639 0xd4, 0x83, 0xdb, 0xda, 0x69, 0xe7, 0xe1, 0x1a, 0x8b, 0x06, 0xc4, 0x85,
4640 0xd4, 0xab, 0x0e, 0x86, 0x18, 0x0a, 0x26, 0x79, 0xfc, 0xad, 0x43, 0x4b,
4641 0x4a, 0xe6, 0x5f, 0x9b, 0x7c, 0x5b, 0x5c, 0xef, 0x00, 0x33, 0x2a, 0xdd,
4642 0x66, 0x1d, 0x23, 0x68, 0xf3, 0xdc, 0x3c, 0xee, 0x98, 0x6b, 0x0d, 0xe2,
4643 0x38, 0x4c, 0x97, 0x1f, 0xc6, 0x74, 0x1a, 0x9a, 0x94, 0xbb, 0x75, 0x72,
4644 0xee, 0x0b, 0x3f, 0x04, 0xf4, 0x41, 0xab, 0xeb, 0x6b, 0x54, 0x4b, 0x49,
4645 0xdb, 0xb9, 0x10, 0xa5, 0x77, 0x73, 0x69, 0x42, 0x1c, 0x19, 0x61, 0xdc,
4646 0x67, 0x37, 0x3a, 0xf8, 0x1b, 0xf1, 0x31, 0x15, 0xf4, 0xd2, 0x33, 0x09,
4647 0xac, 0x0d, 0x4c, 0x73, 0x38, 0xd7, 0x98, 0xd0, 0xc3, 0xaa, 0x78, 0x5a,
4648 0x19, 0xcd, 0x47, 0x9f, 0x82, 0x1e, 0xb7, 0xf0, 0x24, 0x96, 0xd3, 0x0e,
4649 0x43, 0xc7, 0xb6, 0xdc, 0x54, 0x8f, 0xf9, 0xf0, 0x5b, 0x35, 0x01, 0x7f,
4650 0x3a, 0xda, 0xdb, 0x7a, 0xec, 0x4a, 0xc2, 0xf6, 0x3e, 0x67, 0xd0, 0x92,
4651 0x6c, 0x4e, 0xe1, 0xbf, 0x16, 0xf8, 0xb6, 0x00, 0x80, 0x0b, 0x59, 0x59,
4652 0xdb, 0x00, 0xeb, 0x0b, 0xca, 0xf0, 0x14, 0x35, 0xd7, 0x8d, 0x76, 0x61,
4653 0x37, 0xca, 0x5d, 0x16, 0xcc, 0xad, 0x18, 0xac, 0xe3, 0x38, 0x3a, 0xa7,
4654 0xc3, 0xc7, 0xcd, 0x72, 0x00, 0x7d, 0x8d, 0x36, 0x11, 0x28, 0xa7, 0x7e,
4655 0x6c, 0x35, 0xcf, 0x49, 0x26, 0x6a, 0x89, 0xd3, 0xf0, 0x06, 0x44, 0xdb,
4656 0x72, 0x41, 0x3f, 0x61, 0xe7, 0x73, 0x41, 0x7d, 0x60, 0xe6, 0x78, 0xa3,
4657 0x5b, 0x57, 0xfb, 0x9b, 0x9d, 0x9c, 0xa6, 0x66, 0x37, 0x3a, 0x8f, 0x6f,
4658 0x05, 0x1a, 0x04, 0xe1, 0x14, 0x86, 0xa8, 0xd0, 0x6e, 0x45, 0x29, 0x20,
4659 0x50, 0x8f, 0xc6, 0x28, 0xfb, 0x85, 0x3b, 0x60, 0x7e, 0x9f, 0x81, 0x87,
4660 0xaf, 0x2d, 0x4d, 0xe8, 0x3c, 0xef, 0x9d, 0x51, 0x5d, 0xdb, 0xee, 0xed,
4661 0x8c, 0xde, 0x37, 0xb5, 0x6d, 0x59, 0xce, 0x87, 0xd3, 0xe9, 0xb4, 0x73,
4662 0xba, 0x58, 0xdf, 0x1e, 0x1e, 0x1e, 0x46, 0x9b, 0x87, 0xc8, 0xbf, 0x38,
4663 0xd4, 0x5e, 0x1e, 0xde, 0xb0, 0x3f, 0x60, 0xce, 0xb8, 0x8c, 0x9b, 0x15,
4664 0xf3, 0xcd, 0x72, 0x57, 0xf4, 0x88, 0x1a, 0x8f, 0x4f, 0xb7, 0x2f, 0x4f,
4665 0xc7, 0x4d, 0x20, 0x66, 0xfc, 0xc0, 0x77, 0x44, 0xa1, 0x6e, 0xad, 0x5d,
4666 0x6c, 0xc4, 0xae, 0x43, 0x72, 0xb3, 0x81, 0xc4, 0x4c, 0xae, 0xe4, 0x2b,
4667 0x9d, 0x6c, 0x1a, 0xab, 0xcc, 0x1c, 0xb9, 0x2e, 0xe4, 0x90, 0x91, 0x7a,
4668 0x63, 0xb8, 0x10, 0xa3, 0xac, 0x20, 0x65, 0x08, 0xbf, 0x94, 0xd1, 0x9b,
4669 0x83, 0x4b, 0x2e, 0x1a, 0x50, 0x29, 0x29, 0xc1, 0x1a, 0x98, 0xa8, 0x4b,
4670 0x8a, 0x07, 0x8e, 0x3a, 0x0e, 0x08, 0xf2, 0xec, 0x88, 0x80, 0x2a, 0xe2,
4671 0xac, 0x5c, 0x51, 0x4d, 0x82, 0xf7, 0xe8, 0xd4, 0x6b, 0x3a, 0xa3, 0x43,
4672 0x77, 0x40, 0x09, 0x10, 0x92, 0xff, 0x59, 0x36, 0x16, 0x64, 0xf7, 0x93,
4673 0xf6, 0xf1, 0x57, 0x7b, 0xfd, 0x47, 0x01, 0x15, 0x6f, 0xeb, 0x57, 0x7f,
4674 0xfa, 0xa7, 0x96, 0x09, 0x08, 0x21, 0xf5, 0xf9, 0xd2, 0x63, 0x26, 0x19,
4675 0x6d, 0xa8, 0x42, 0x03, 0x2a, 0x2f, 0x9a, 0x42, 0x52, 0x33, 0x53, 0x94,
4676 0x2e, 0x10, 0x75, 0x41, 0x8b, 0x3e, 0x03, 0x59, 0x2d, 0x1f, 0x04, 0xa6,
4677 0xfa, 0xef, 0xe3, 0x96, 0xda, 0x30, 0x4d, 0x11, 0xa4, 0x23, 0x71, 0x35,
4678 0x49, 0x89, 0xec, 0x39, 0x46, 0xc8, 0x22, 0x59, 0xce, 0x1f, 0x9c, 0x15,
4679 0xa7, 0x6d, 0xaf, 0xbb, 0xde, 0x85, 0x97, 0x81, 0x10, 0x6f, 0x6d, 0x1d,
4680 0x2c, 0xeb, 0xad, 0xe0, 0x43, 0x71, 0xda, 0xe9, 0xe1, 0x8c, 0xf5, 0xcb,
4681 0x0d, 0xde, 0xfe, 0xf6, 0x0a, 0xed, 0x75, 0xae, 0x90, 0x48, 0x69, 0xe7,
4682 0x7a, 0x5c, 0xe8, 0xbe, 0xd7, 0xbd, 0xe0, 0xe6, 0x01, 0x40, 0xfd, 0x79,
4683 0x7e, 0xcd, 0x05, 0x0f, 0x34, 0xa5, 0x49, 0x36, 0xbc, 0x23, 0xa6, 0x6c,
4684 0xfa, 0x33, 0x44, 0x84, 0xad, 0x68, 0x47, 0x23, 0x88, 0x21, 0xf3, 0xcf,
4685 0x5a, 0xc5, 0x89, 0xbe, 0x92, 0x04, 0x59, 0x2e, 0x40, 0xc7, 0x7a, 0x58,
4686 0x18, 0x71, 0xca, 0x35, 0x7f, 0x5e, 0xc1, 0x89, 0xa4, 0x69, 0x22, 0xc2,
4687 0x69, 0xaa, 0x61, 0x44, 0x8b, 0x66, 0xb9, 0x8b, 0x6b, 0x67, 0x55, 0x04,
4688 0x3a, 0xbf, 0x75, 0x8c, 0xed, 0x59, 0xdb, 0xd9, 0xd2, 0x23, 0x9b, 0x6b,
4689 0xe1, 0x56, 0x41, 0x60, 0x50, 0x4d, 0xc6, 0x56, 0xe2, 0xc0, 0x44, 0x78,
4690 0xbf, 0xee, 0x8c, 0xac, 0xe0, 0x6a, 0xc5, 0xe5, 0xa1, 0x0d, 0x90, 0x51,
4691 0x53, 0xf1, 0xec, 0x07, 0x56, 0xd0, 0xb6, 0xc4, 0x62, 0x1e, 0xaf, 0x9b,
4692 0xe3, 0xd3, 0xf2, 0x35, 0x80, 0x13, 0x92, 0x1a, 0x78, 0xbe, 0x20, 0xc3,
4693 0x81, 0xeb, 0x9a, 0x74, 0x22, 0xe5, 0x60, 0x2a, 0x15, 0xb1, 0x14, 0x47,
4694 0x74, 0xa7, 0xd3, 0x3c, 0xad, 0xd8, 0x3c, 0x63, 0xde, 0xdd, 0x53, 0x2d,
4695 0x76, 0xdc, 0xff, 0xa2, 0x0f, 0xe9, 0xeb, 0xbf, 0xe8, 0xb3, 0x26, 0x2b,
4696 0xe2, 0x36, 0xb2, 0x03, 0x67, 0x86, 0xe1, 0x7f, 0xfb, 0xe2, 0xdb, 0xec,
4697 0x5b, 0x27, 0xd4, 0xa6, 0x97, 0x9e, 0x21, 0x84, 0x9d, 0x29, 0xb8, 0x97,
4698 0x8b, 0xff, 0x92, 0x45, 0xd4, 0x71, 0xbd, 0xad, 0xe7, 0xc6, 0x49, 0x51,
4699 0x35, 0x04, 0x24, 0xfc, 0xc8, 0x65, 0x79, 0x8b, 0xa4, 0x5f, 0x22, 0x4d,
4700 0x52, 0x78, 0x7a, 0x11, 0xe6, 0xde, 0x58, 0x93, 0x49, 0xaa, 0xfd, 0x91,
4701 0x8e, 0x30, 0x68, 0x21, 0x9e, 0x4e, 0x53, 0x46, 0x14, 0xc3, 0x4e, 0xa4,
4702 0x5f, 0x92, 0x49, 0x23, 0xe2, 0x8d, 0x31, 0x23, 0x9d, 0x9d, 0x06, 0xdd,
4703 0x14, 0x3d, 0xab, 0x2b, 0x4e, 0x4a, 0xbe, 0xc9, 0x2e, 0x35, 0xbc, 0x66,
4704 0x03, 0xf1, 0x7a, 0x9e, 0x4f, 0xf2, 0xab, 0xab, 0x47, 0xec, 0x05, 0xc9,
4705 0xb4, 0x40, 0x1b, 0x22, 0xa4, 0x3d, 0x86, 0xff, 0xf3, 0x7b, 0x13, 0x54,
4706 0xbc, 0x94, 0xf2, 0x0e, 0x23, 0x71, 0xd8, 0x80, 0x58, 0xa3, 0x65, 0x05,
4707 0xd4, 0x3c, 0x24, 0x0f, 0x8d, 0x4a, 0xcd, 0xa8, 0xcd, 0x2c, 0x32, 0xab,
4708 0x50, 0x2f, 0xcf, 0xc2, 0x41, 0x9b, 0xf0, 0x3f, 0xfe, 0xf1, 0xe3, 0x4f,
4709 0x1d, 0x38, 0x5b, 0x50, 0xd0, 0x2a, 0xbe, 0x11, 0xa0, 0x6b, 0xc9, 0x6a,
4710 0xc4, 0x15, 0x83, 0xed, 0x10, 0xcf, 0x75, 0xab, 0x45, 0x7a, 0x02, 0x08,
4711 0x69, 0x5b, 0xc1, 0x95, 0xfe, 0x83, 0x56, 0xe0, 0x5a, 0x63, 0xce, 0x9c,
4712 0xc7, 0x89, 0x3c, 0x76, 0x1f, 0xb5, 0x71, 0x59, 0x62, 0x7a, 0xa9, 0x6f,
4713 0x6f, 0x28, 0x97, 0xeb, 0xeb, 0xe2, 0x78, 0xaa, 0x67, 0xdf, 0x5e, 0x9c,
4714 0xb8, 0x2b, 0x5f, 0xb0, 0x12, 0x5f, 0x61, 0x25, 0x5a, 0xd3, 0xe6, 0x59,
4715 0x64, 0x06, 0x4d, 0xa6, 0x0e, 0x9f, 0x67, 0xcf, 0xb7, 0x6e, 0x21, 0xec,
4716 0x6f, 0xd4, 0x7e, 0x98, 0xb5, 0x89, 0x70, 0x84, 0x12, 0xa3, 0x68, 0xd0,
4717 0xb2, 0x48, 0x8e, 0xb2, 0xab, 0x18, 0x26, 0x81, 0xf5, 0xaf, 0x8e, 0x3d,
4718 0xa9, 0xdb, 0x5a, 0x23, 0xd0, 0x25, 0x9c, 0xbb, 0x47, 0x25, 0x6d, 0xdf,
4719 0x15, 0x4e, 0xbd, 0x0f, 0xcb, 0x8c, 0x8c, 0x7c, 0xc1, 0x95, 0x6e, 0x3d,
4720 0x64, 0x59, 0xd9, 0x7e, 0xb6, 0x4e, 0x0d, 0x25, 0xdd, 0xff, 0xb7, 0xbe,
4721 0x27, 0xc1, 0xe8, 0xc2, 0x4c, 0x58, 0xf7, 0x5b, 0xa9, 0xa9, 0xc3, 0x93,
4722 0x81, 0xef, 0xa6, 0x84, 0x57, 0xe5, 0x80, 0x75, 0x95, 0x8a, 0x26, 0x1d,
4723 0xd4, 0x6d, 0xeb, 0xfa, 0xf1, 0xf5, 0xf1, 0xc1, 0x91, 0x0d, 0x76, 0xf4,
4724 0xbf, 0xe0, 0x1a, 0x69, 0x7e, 0x84, 0x49, 0x22, 0x74, 0x75, 0x2b, 0xbb,
4725 0x56, 0x62, 0xc1, 0xfc, 0xb9, 0xc1, 0xef, 0xb6, 0x7d, 0xd2, 0x4c, 0x23,
4726 0x0a, 0xf1, 0x55, 0xbe, 0x79, 0x65, 0xb5, 0x11, 0x20, 0x99, 0x9b, 0x8f,
4727 0xf0, 0x36, 0x19, 0x78, 0xee, 0x3a, 0x0b, 0x35, 0x05, 0xc5, 0x58, 0x03,
4728 0x79, 0x0e, 0xd3, 0x99, 0x5e, 0xc8, 0x7f, 0xd7, 0x1c, 0x12, 0xc7, 0xe0,
4729 0xf1, 0xd1, 0x47, 0x43, 0xfe, 0xa9, 0xeb, 0xa0, 0x74, 0xd4, 0x7d, 0x32,
4730 0x61, 0xfd, 0x7f, 0xcd, 0xd6, 0x13, 0x02, 0x6e, 0xa4, 0x0f, 0x9b, 0x83,
4731 0x0b, 0xca, 0xbe, 0x7b, 0x56, 0xef, 0x24, 0x68, 0xbd, 0x86, 0x21, 0xd7,
4732 0x6c, 0x22, 0x2b, 0x9a, 0x34, 0x6b, 0x15, 0xb4, 0x21, 0xcd, 0x51, 0x56,
4733 0x64, 0xa0, 0x58, 0xcf, 0xf8, 0xa5, 0x9b, 0x38, 0x60, 0xdf, 0xcb, 0x94,
4734 0x82, 0x0f, 0x79, 0xf0, 0x0e, 0x7e, 0x6e, 0x1e, 0x8e, 0x76, 0xd5, 0x10,
4735 0x87, 0x13, 0x50, 0x9a, 0xb7, 0x15, 0xd6, 0x02, 0x11, 0x5b, 0x4e, 0x71,
4736 0xd5, 0x8a, 0x9c, 0x9c, 0xd8, 0xa4, 0x9f, 0x0c, 0x41, 0x3d, 0xad, 0x33,
4737 0xa7, 0x56, 0xe4, 0xd6, 0xb9, 0x55, 0xd8, 0xb1, 0x58, 0x33, 0xc2, 0x79,
4738 0x8c, 0x86, 0x79, 0x42, 0x16, 0x15, 0x9d, 0x1b, 0xd3, 0xdb, 0xd6, 0x11,
4739 0xc6, 0x67, 0x6a, 0x59, 0xad, 0xae, 0xae, 0xc4, 0xf3, 0x64, 0x00, 0x4c,
4740 0x74, 0xd4, 0x17, 0x9c, 0xce, 0x47, 0x98, 0x7c, 0x9d, 0x33, 0x33, 0x21,
4741 0xe3, 0xe9, 0x3a, 0x2f, 0x8f, 0x0e, 0xc7, 0x73, 0x7d, 0x39, 0xb5, 0xcd,
4742 0x35, 0x17, 0x24, 0x97, 0x32, 0x29, 0xf8, 0x12, 0x0a, 0xec, 0x08, 0x6e,
4743 0x88, 0xf7, 0x6d, 0xed, 0xac, 0x05, 0x7e, 0x24, 0xfd, 0x92, 0xa9, 0xaf,
4744 0xd9, 0x56, 0x91, 0xec, 0x2f, 0x1d, 0xb6, 0x4e, 0x18, 0xa9, 0xfb, 0xeb,
4745 0xf4, 0xce, 0x8a, 0xa2, 0xa1, 0x67, 0x1d, 0x30, 0x7e, 0xeb, 0x84, 0xc5,
4746 0x8e, 0x35, 0x12, 0x20, 0x79, 0xc8, 0x11, 0xd3, 0x6f, 0x05, 0xcb, 0x39,
4747 0xcd, 0xe7, 0xc8, 0xb9, 0x8c, 0x51, 0x4b, 0x6f, 0x9f, 0x25, 0xbb, 0x19,
4748 0x4a, 0xf9, 0x3a, 0x2f, 0xab, 0xfd, 0x5e, 0xbd, 0x8a, 0x83, 0xda, 0x16,
4749 0x75, 0x11, 0x52, 0xe6, 0xaa, 0xa1, 0x9c, 0xe8, 0xe2, 0xbe, 0xa9, 0xca,
4750 0xce, 0x3a, 0x37, 0x0e, 0x99, 0xa7, 0xe5, 0x8f, 0x2b, 0xd3, 0xe9, 0x4c,
4751 0x04, 0xb4, 0x48, 0xb5, 0x57, 0xa8, 0x1c, 0x02, 0x12, 0xc8, 0xaf, 0xa9,
4752 0x1f, 0xdf, 0x0f, 0x0f, 0x57, 0x65, 0x1b, 0xc5, 0xba, 0x18, 0x7e, 0x8d,
4753 0x26, 0xff, 0xd2, 0x73, 0x17, 0x6f, 0x79, 0xd4, 0xff, 0x6a, 0xbf, 0xb7,
4754 0x06, 0x75, 0x1c, 0x72, 0x81, 0x94, 0xab, 0xc2, 0x6a, 0x33, 0xc2, 0xd3,
4755 0xae, 0x1d, 0x05, 0x03, 0xf2, 0x6c, 0xb6, 0xad, 0xf3, 0x6d, 0xe1, 0xc2,
4756 0xae, 0xbc, 0x18, 0xc5, 0xcc, 0x2f, 0x81, 0x0b, 0x9b, 0x0d, 0xf3, 0xab,
4757 0x21, 0x4a, 0x4e, 0x70, 0x79, 0x41, 0x0e, 0xc1, 0x04, 0xdb, 0x11, 0xcc,
4758 0x66, 0xc8, 0xf2, 0x98, 0xcd, 0xba, 0xce, 0x6b, 0x85, 0x27, 0x17, 0xee,
4759 0xea, 0xaa, 0x9d, 0xd1, 0x25, 0xdd, 0xe7, 0xeb, 0x8e, 0xbd, 0xee, 0xb8,
4760 0xb3, 0xb8, 0x48, 0x43, 0x5c, 0x14, 0x29, 0x69, 0x91, 0x16, 0x57, 0x3d,
4761 0x60, 0x60, 0x03, 0x39, 0xd3, 0x25, 0xe4, 0xc8, 0xfe, 0x84, 0x85, 0x78,
4762 0x91, 0xe0, 0x06, 0xa0, 0xbb, 0xff, 0x95, 0x54, 0x2c, 0x1a, 0x75, 0x05,
4763 0x8b, 0x7d, 0xfe, 0x41, 0xb3, 0xc0, 0x24, 0x92, 0xc4, 0x6a, 0xc9, 0xa6,
4764 0xeb, 0x78, 0x09, 0xd6, 0x45, 0x8d, 0x03, 0xdc, 0x3b, 0xce, 0x0f, 0xc5,
4765 0x64, 0xfb, 0x49, 0xdf, 0x16, 0xf3, 0xbd, 0x2b, 0xaa, 0xc2, 0x6f, 0x99,
4766 0xf6, 0x0b, 0x0c, 0xf9, 0x1b, 0x92, 0xd9, 0xe5, 0x6a, 0xb2, 0x98, 0x3d,
4767 0x8b, 0x5e, 0xd0, 0x1f, 0x9f, 0x77, 0x78, 0x01, 0x25, 0xd8, 0xa2, 0x86,
4768 0xb9, 0xda, 0x65, 0xf8, 0xfb, 0x93, 0x3d, 0x96, 0xd2, 0xf7, 0xd4, 0xe6,
4769 0x34, 0x05, 0xdd, 0xc3, 0x2c, 0xbd, 0x4e, 0xab, 0x52, 0x73, 0x3b, 0xf0,
4770 0xc2, 0xda, 0x5a, 0x63, 0x3c, 0x43, 0xbb, 0x7b, 0x9f, 0x45, 0x93, 0xb4,
4771 0x8a, 0x5e, 0x1f, 0x3d, 0x93, 0x72, 0x85, 0xe5, 0x6a, 0xe1, 0xab, 0x75,
4772 0x83, 0x7f, 0x38, 0xe2, 0xfe, 0xf5, 0x99, 0x43, 0x6d, 0x35, 0x99, 0xb7,
4773 0xca, 0x06, 0xdd, 0x26, 0x0f, 0x83, 0xa6, 0x4f, 0xed, 0xca, 0xfc, 0x7f,
4774 0x01, 0x6b, 0xb6, 0x13, 0x3a, 0x6e, 0xcd, 0xfc, 0x8f, 0xed, 0xdb, 0x05,
4775 0x8d, 0x9f, 0x7a, 0x50, 0x5a, 0xa9, 0xb3, 0xcb, 0x06, 0x7d, 0x36, 0x0b,
4776 0x02, 0xaf, 0xfc, 0xf8, 0xf0, 0x5c, 0xa8, 0x09, 0xc6, 0x8d, 0xb4, 0xef,
4777 0xc7, 0xa8, 0x76, 0x3f, 0xad, 0x7b, 0x19, 0xa4, 0x6c, 0xa9, 0xf1, 0xc9,
4778 0x0c, 0xe7, 0x49, 0x76, 0xbd, 0xae, 0x12, 0x65, 0x74, 0x82, 0x67, 0x1b,
4779 0x88, 0xb1, 0x53, 0xbc, 0x11, 0xe4, 0xd2, 0x8a, 0x2d, 0xc0, 0x5b, 0x21,
4780 0x9d, 0x72, 0x9d, 0xf3, 0x16, 0xd7, 0xeb, 0xca, 0xb3, 0x29, 0x5b, 0x81,
4781 0xd4, 0x62, 0x25, 0xb5, 0x2a, 0x0e, 0x96, 0x0c, 0x77, 0x8a, 0x76, 0x47,
4782 0xef, 0x07, 0x61, 0x69, 0x36, 0xe5, 0x4c, 0x47, 0x0d, 0xb6, 0x62, 0xd8,
4783 0xda, 0x2a, 0xd3, 0xaa, 0xd9, 0x1b, 0x6e, 0x5b, 0x80, 0x66, 0x73, 0x0e,
4784 0xb4, 0x14, 0x72, 0x84, 0xec, 0x91, 0x2e, 0xbe, 0x8e, 0x51, 0x55, 0x23,
4785 0x90, 0xbc, 0x14, 0x65, 0x7d, 0x85, 0x6f, 0x6a, 0xdd, 0xc0, 0xe5, 0xb7,
4786 0x01, 0x89, 0xb0, 0x19, 0x12, 0x7a, 0x31, 0x10, 0x8c, 0xa4, 0xc8, 0x5b,
4787 0xf0, 0xeb, 0x76, 0x09, 0x39, 0x6e, 0xc6, 0x6d, 0x60, 0x04, 0x6c, 0x64,
4788 0x0a, 0x86, 0x7c, 0x74, 0x0f, 0xd8, 0x14, 0x4c, 0xbc, 0xa6, 0x0f, 0xa0,
4789 0xa1, 0x68, 0xb4, 0xbb, 0x50, 0xb0, 0x83, 0x77, 0x8e, 0x46, 0xc1, 0xa8,
4790 0x4e, 0xcc, 0xda, 0xe9, 0x1a, 0x12, 0x33, 0x51, 0x6f, 0xbf, 0x3a, 0x39,
4791 0x3d, 0xde, 0x8a, 0x5e, 0x25, 0xc8, 0x58, 0xaf, 0xf7, 0x1b, 0x22, 0xf6,
4792 0x3b, 0xf9, 0x89, 0x2d, 0x91, 0xde, 0xda, 0xba, 0xc2, 0xec, 0xea, 0x63,
4793 0x82, 0x19, 0x2a, 0xab, 0x06, 0x83, 0x53, 0xb2, 0x38, 0x72, 0x20, 0xcc,
4794 0x8c, 0x6c, 0x1c, 0x76, 0x5e, 0xc0, 0xb6, 0xd9, 0x61, 0xbe, 0x07, 0x98,
4795 0x58, 0xcd, 0x33, 0x17, 0x9d, 0xc3, 0x23, 0xb5, 0xc0, 0x3b, 0xf7, 0x5d,
4796 0x91, 0x54, 0x61, 0xb5, 0xf4, 0x72, 0x5d, 0x55, 0xbc, 0x32, 0xfd, 0x59,
4797 0x60, 0xa7, 0x80, 0x27, 0x2f, 0xf2, 0x99, 0xe3, 0xa7, 0x13, 0x12, 0xfd,
4798 0x46, 0xa5, 0xe7, 0x21, 0x8e, 0xf1, 0x2b, 0x3e, 0x3c, 0x3a, 0xd3, 0x13,
4799 0xcf, 0x85, 0x8d, 0x8f, 0x0f, 0xfc, 0x30, 0xf2, 0x2f, 0xc7, 0xbc, 0xbf,
4800 0xf2, 0xb8, 0x56, 0x46, 0x0e, 0x86, 0xc4, 0x45, 0x1f, 0x3a, 0xe4, 0xc2,
4801 0xbe, 0x16, 0x89, 0x18, 0x84, 0x0e, 0x78, 0x1a, 0x2d, 0x94, 0x85, 0x00,
4802 0xc2, 0x0e, 0x32, 0x03, 0xff, 0x68, 0x95, 0x3a, 0x4e, 0x3f, 0x69, 0x55,
4803 0x42, 0xb8, 0x4d, 0x5a, 0x01, 0x6d, 0x05, 0x21, 0x05, 0x23, 0x23, 0x53,
4804 0x79, 0x67, 0x7f, 0x37, 0xac, 0xa1, 0x91, 0x69, 0x85, 0x28, 0x14, 0x96,
4805 0xf8, 0xed, 0x20, 0xe0, 0x7f, 0x63, 0xd1, 0xfc, 0xdb, 0x2a, 0xbb, 0x1d,
4806 0x6a, 0x69, 0x47, 0xa5, 0x3c, 0x2d, 0xbb, 0x77, 0xdf, 0x77, 0x2e, 0xd4,
4807 0x01, 0x94, 0x83, 0x00, 0xfe, 0xda, 0x35, 0x0e, 0xe3, 0x80, 0xfd, 0x6b,
4808 0xf0, 0x58, 0x45, 0x87, 0xd0, 0x82, 0x60, 0xc4, 0x35, 0xc9, 0xce, 0x94,
4809 0x21, 0x16, 0x7c, 0x67, 0xed, 0x59, 0xb1, 0x49, 0x6d, 0xba, 0x37, 0xf2,
4810 0xd4, 0x77, 0x2d, 0x8e, 0xdc, 0x52, 0x33, 0x80, 0x6e, 0xac, 0xc6, 0x04,
4811 0x6c, 0x70, 0x0d, 0x61, 0xc4, 0xc2, 0x25, 0xc5, 0x67, 0xbd, 0xab, 0x60,
4812 0x29, 0xac, 0x51, 0xcc, 0xf0, 0xd9, 0x66, 0x31, 0xbd, 0x94, 0xdc, 0xac,
4813 0xc8, 0xb8, 0xc6, 0x4b, 0x47, 0xed, 0xe4, 0x3a, 0x18, 0x35, 0x3a, 0x27,
4814 0x77, 0x12, 0x36, 0x10, 0xfa, 0xad, 0x7d, 0x39, 0x9d, 0xe7, 0x52, 0xe8,
4815 0xe2, 0x3e, 0xf4, 0x96, 0xfd, 0xbb, 0x9c, 0xf9, 0x7c, 0xa0, 0xe9, 0x4e,
4816 0x1f, 0x76, 0x00, 0xb1, 0x42, 0x4a, 0x4b, 0x63, 0x47, 0x42, 0x06, 0x08,
4817 0x8c, 0x89, 0xb3, 0xa0, 0x0d, 0x01, 0x64, 0x3a, 0x02, 0x25, 0x3d, 0xf0,
4818 0x3a, 0x89, 0x6c, 0x86, 0x01, 0xbd, 0x80, 0xd3, 0xd6, 0x47, 0xb4, 0x6d,
4819 0xf3, 0x32, 0x95, 0x75, 0x71, 0x58, 0xba, 0xe0, 0x32, 0x11, 0xb5, 0xf1,
4820 0x2e, 0x96, 0x75, 0xea, 0x18, 0x07, 0x1c, 0x02, 0xc8, 0xae, 0xc5, 0xc1,
4821 0x80, 0x6f, 0x45, 0xb7, 0x97, 0x5d, 0xf8, 0x25, 0xcd, 0x6d, 0x09, 0x46,
4822 0x19, 0xc0, 0x03, 0xf5, 0xae, 0x62, 0xc1, 0x21, 0xe3, 0xdf, 0x24, 0x9b,
4823 0xd6, 0x5a, 0xeb, 0x35, 0x4d, 0xae, 0xf1, 0x69, 0x98, 0x03, 0x2a, 0xce,
4824 0x3c, 0x4f, 0xc4, 0x72, 0x40, 0xd2, 0xd5, 0x7a, 0x84, 0x11, 0xf0, 0x02,
4825 0xc4, 0x49, 0x3a, 0x8a, 0x9d, 0x33, 0xf3, 0x37, 0xad, 0x91, 0x79, 0x7c,
4826 0x6b, 0x8c, 0xc2, 0x8d, 0x04, 0x1e, 0x4d, 0x7a, 0x93, 0x89, 0x8b, 0x19,
4827 0x52, 0xde, 0x94, 0xd6, 0x07, 0x97, 0xdb, 0xe4, 0x60, 0x21, 0x06, 0x0b,
4828 0x9e, 0xcf, 0x6b, 0xbd, 0x0a, 0x6a, 0x01, 0xac, 0x1d, 0x2c, 0xea, 0x8e,
4829 0x59, 0xf8, 0xb4, 0x36, 0xc9, 0xed, 0xf0, 0x69, 0x60, 0x92, 0x46, 0xbe,
4830 0xa8, 0x0f, 0x69, 0x5c, 0x64, 0xd3, 0x4a, 0x4d, 0x7a, 0x29, 0x4d, 0xa5,
4831 0xde, 0xd6, 0xc8, 0xe1, 0x1c, 0x25, 0x57, 0x02, 0xf0, 0xc6, 0x35, 0xa5,
4832 0x7f, 0x90, 0x0a, 0x77, 0x13, 0xbf, 0x7f, 0x3f, 0x2a, 0x13, 0xa9, 0x85,
4833 0x53, 0x96, 0x73, 0xa4, 0xdd, 0xd5, 0x6b, 0xfe, 0x0c, 0xbf, 0xd1, 0x82,
4834 0x5f, 0x57, 0xe9, 0x35, 0xe3, 0xed, 0xf0, 0xdf, 0xae, 0x24, 0x63, 0x97,
4835 0x5d, 0xac, 0x85, 0x93, 0xfc, 0x93, 0x5e, 0xed, 0x80, 0x8c, 0x44, 0x61,
4836 0x47, 0xa2, 0x7d, 0x46, 0xc6, 0x04, 0xde, 0x4a, 0x81, 0xb6, 0x97, 0xc1,
4837 0x91, 0xa6, 0x18, 0xea, 0x79, 0xe2, 0x81, 0xfe, 0xb5, 0x52, 0x77, 0xbe,
4838 0x51, 0x39, 0x2c, 0x5a, 0x4e, 0x20, 0x2b, 0x15, 0x67, 0x85, 0xa8, 0x71,
4839 0x63, 0x0b, 0xd5, 0xac, 0xea, 0x1d, 0xb9, 0x35, 0x30, 0xac, 0xda, 0xde,
4840 0xc8, 0xbb, 0x92, 0xe7, 0x68, 0x1f, 0x31, 0x25, 0x61, 0xd8, 0x87, 0x51,
4841 0x74, 0xb6, 0x0c, 0x04, 0xf8, 0x26, 0x49, 0x0b, 0xef, 0xe5, 0xf6, 0xe9,
4842 0x59, 0xd8, 0xcd, 0xed, 0xc1, 0xa2, 0xe6, 0x62, 0xbd, 0x8e, 0x82, 0xce,
4843 0xa0, 0x0c, 0x5b, 0x48, 0xef, 0xd5, 0x67, 0x26, 0xde, 0x50, 0x1a, 0x09,
4844 0xd9, 0x63, 0x64, 0xf7, 0xb5, 0x28, 0x56, 0xf4, 0x4a, 0x89, 0x4c, 0x3e,
4845 0xa6, 0x4e, 0x2c, 0x01, 0xe2, 0x17, 0x3e, 0x91, 0x87, 0x9a, 0x4f, 0x0d,
4846 0x6e, 0x6c, 0xb2, 0x1d, 0x36, 0x95, 0x26, 0x7b, 0xd0, 0xe5, 0xb2, 0x17,
4847 0x87, 0x10, 0x8b, 0x75, 0xc0, 0x5c, 0xab, 0x70, 0x9f, 0xa0, 0xfd, 0x2d,
4848 0x57, 0xc2, 0xda, 0x3b, 0xf7, 0x71, 0xf0, 0x74, 0x27, 0x50, 0x45, 0xe1,
4849 0x00, 0x5c, 0x4e, 0xba, 0x8b, 0x0a, 0x08, 0x0f, 0xfc, 0x04, 0x24, 0x00,
4850 0xaa, 0x93, 0x35, 0x97, 0xb1, 0xd1, 0x1c, 0xea, 0xda, 0x93, 0x9e, 0xf8,
4851 0x4e, 0x12, 0x1d, 0x67, 0xf9, 0x6a, 0x62, 0xd5, 0xee, 0x5b, 0xde, 0xb9,
4852 0x44, 0xea, 0x38, 0x96, 0xec, 0xf1, 0x63, 0x17, 0x5d, 0x07, 0xc3, 0xb2,
4853 0x4b, 0x35, 0xdc, 0x8f, 0xfe, 0xfa, 0xd7, 0x41, 0xf4, 0xd7, 0x1e, 0xfd,
4854 0x8f, 0xec, 0xc8, 0xbf, 0xd2, 0x7c, 0xfe, 0x55, 0xf8, 0x7a, 0xff, 0x7a,
4855 0x47, 0x4a, 0x09, 0x45, 0xfb, 0xca, 0x39, 0x67, 0xb8, 0x79, 0x2e, 0xd6,
4856 0x8e, 0x54, 0x51, 0x89, 0x5a, 0x2a, 0x09, 0x35, 0x1b, 0xf8, 0xb8, 0x09,
4857 0xf8, 0x6a, 0xdf, 0x02, 0xb6, 0xa0, 0x05, 0x5b, 0x2d, 0x32, 0x01, 0x51,
4858 0xeb, 0xb2, 0x43, 0xac, 0x5b, 0x47, 0x71, 0x1c, 0xf5, 0x7f, 0x6f, 0xa1,
4859 0x90, 0xca, 0xb0, 0x8e, 0x61, 0xdc, 0x17, 0xaf, 0x99, 0x5c, 0x07, 0x95,
4860 0xa8, 0xe3, 0xee, 0x82, 0x0a, 0x62, 0x2a, 0x9e, 0x65, 0xf0, 0xd9, 0x80,
4861 0x87, 0x5e, 0x5d, 0x60, 0x7a, 0xe4, 0xf3, 0xfd, 0x7e, 0x79, 0xf3, 0x80,
4862 0x03, 0x5b, 0xbb, 0xe4, 0x2a, 0xa0, 0x51, 0x2f, 0x3b, 0xb8, 0xb3, 0xdb,
4863 0xea, 0xcb, 0x73, 0xa9, 0xf8, 0x53, 0x87, 0x63, 0x29, 0xa1, 0x62, 0xa1,
4864 0x1e, 0xf6, 0x87, 0x7d, 0x1c, 0x18, 0x21, 0x5b, 0xe9, 0x9a, 0x72, 0x02,
4865 0x9e, 0xda, 0x43, 0xca, 0x09, 0x74, 0x96, 0x82, 0xb7, 0x62, 0xca, 0x92,
4866 0xfc, 0x62, 0xc5, 0xd6, 0x9d, 0x67, 0x11, 0x6e, 0xe0, 0xda, 0x60, 0xd4,
4867 0x00, 0x6a, 0xf3, 0x8a, 0x18, 0x05, 0x95, 0xbd, 0x9b, 0x56, 0x21, 0x43,
4868 0x3d, 0xf3, 0x5c, 0x7b, 0x3e, 0x2f, 0xdc, 0x2a, 0xd9, 0x5d, 0x81, 0x83,
4869 0xa3, 0x4c, 0xc9, 0xe0, 0x7c, 0xe8, 0x50, 0x45, 0x3e, 0x7f, 0x88, 0xbb,
4870 0x01, 0xbe, 0x57, 0xae, 0x83, 0x70, 0x9f, 0xa9, 0x2a, 0x19, 0xe7, 0x03,
4871 0x61, 0xf6, 0x34, 0x4b, 0x35, 0x48, 0x1b, 0xe8, 0x88, 0xc6, 0xb4, 0x8c,
4872 0x56, 0xee, 0xd3, 0xcb, 0xa8, 0xb7, 0x56, 0xd7, 0xf7, 0x9a, 0x2f, 0x9c,
4873 0x72, 0x2a, 0xb3, 0xae, 0xba, 0x90, 0x59, 0x4c, 0xe3, 0xcc, 0xf1, 0x03,
4874 0xcd, 0x91, 0x65, 0xab, 0xe5, 0x17, 0x1d, 0x49, 0x67, 0xa8, 0xa0, 0xd6,
4875 0xf8, 0xe5, 0xc4, 0xa1, 0x29, 0xbc, 0x4e, 0xba, 0x33, 0xb9, 0xec, 0xe9,
4876 0x3a, 0x8e, 0x7d, 0x33, 0x56, 0x39, 0xab, 0xec, 0x56, 0xd9, 0x86, 0xd4,
4877 0x98, 0xdb, 0xb4, 0x43, 0xf3, 0xef, 0x76, 0x50, 0x6e, 0xa9, 0xc7, 0x41,
4878 0xd0, 0x8a, 0x6b, 0xd2, 0x91, 0xc3, 0x63, 0xc8, 0x25, 0xc8, 0xa7, 0x70,
4879 0x19, 0xd3, 0x7b, 0xab, 0x6c, 0x66, 0xac, 0xb3, 0x2e, 0x7f, 0x79, 0xad,
4880 0x64, 0xf3, 0x77, 0xf1, 0x45, 0xa5, 0x3c, 0x72, 0xc5, 0xe5, 0x4d, 0xbb,
4881 0xc0, 0x7f, 0x53, 0xba, 0xf2, 0xeb, 0xa0, 0x8a, 0x69, 0xad, 0xcc, 0xee,
4882 0x96, 0x4b, 0x31, 0x43, 0x49, 0x26, 0xa9, 0x86, 0xa8, 0x3e, 0xc6, 0xde,
4883 0x4d, 0x2e, 0x29, 0xec, 0xbd, 0x7d, 0xae, 0xae, 0xa8, 0xca, 0xc1, 0x8f,
4884 0xb2, 0xad, 0x9b, 0x41, 0x10, 0xf0, 0xf5, 0xd9, 0xeb, 0x63, 0x87, 0x83,
4885 0x94, 0x2b, 0x29, 0xff, 0xa4, 0x93, 0xc3, 0x64, 0x84, 0x78, 0xb5, 0xe5,
4886 0x24, 0x0e, 0xda, 0x6c, 0xb2, 0x32, 0x45, 0x74, 0xf5, 0x5c, 0xde, 0xaf,
4887 0xd2, 0xd9, 0x26, 0x12, 0x47, 0xdf, 0xbe, 0x39, 0xf9, 0x7e, 0x28, 0x97,
4888 0x6e, 0xa9, 0x06, 0x6d, 0x99, 0x93, 0x96, 0x74, 0x29, 0x9e, 0x99, 0x96,
4889 0x41, 0xcc, 0x15, 0xab, 0x44, 0x6a, 0x42, 0x0e, 0x1e, 0x40, 0xf7, 0xd3,
4890 0x4c, 0xdc, 0xe5, 0xd2, 0x20, 0x9d, 0x1d, 0x67, 0x19, 0xa9, 0x70, 0xf0,
4891 0x07, 0x60, 0xd9, 0xbb, 0x30, 0x9d, 0xf5, 0x99, 0x88, 0x0e, 0xce, 0xcf,
4892 0x8f, 0x0e, 0x2e, 0x0f, 0xdc, 0xd8, 0x90, 0xb0, 0x0f, 0x5d, 0x87, 0x8b,
4893 0x14, 0x9b, 0x47, 0x5a, 0x12, 0xa0, 0xff, 0x07, 0x06, 0xfc, 0x37, 0xb5,
4894 0xdf, 0xf9, 0xc5, 0x19, 0x5f, 0x87, 0xff, 0xf0, 0xd7, 0x03, 0x5f, 0xdc,
4895 0x07, 0x9c, 0xff, 0xed, 0x12, 0x2b, 0x7b, 0x5b, 0xdc, 0xbf, 0x7b, 0xd7,
4896 0x3f, 0x0d, 0x00, 0x4b, 0x86, 0x66, 0xf4, 0x8e, 0x17, 0xb4, 0x98, 0x3a,
4897 0x03, 0xc5, 0x66, 0x03, 0x13, 0x80, 0xf4, 0xd4, 0xf5, 0x03, 0xc9, 0xbd,
4898 0x4e, 0x35, 0xfe, 0x02, 0x9b, 0xac, 0x39, 0xd9, 0xd5, 0x64, 0x1a, 0x56,
4899 0xd0, 0x5d, 0xec, 0x19, 0x62, 0xf9, 0x9a, 0xf1, 0x4c, 0x35, 0x59, 0x7a,
4900 0x9a, 0xcb, 0xe3, 0x69, 0xba, 0x44, 0x03, 0x09, 0xd0, 0x2f, 0x17, 0xf6,
4901 0xe7, 0x91, 0xf6, 0xd6, 0xf3, 0x3f, 0xb7, 0xf6, 0x8e, 0x78, 0xaa, 0x49,
4902 0xce, 0x4d, 0x1e, 0x5b, 0x13, 0xf2, 0x7b, 0x52, 0x7c, 0x43, 0xcb, 0x59,
4903 0x93, 0x81, 0xd3, 0x0f, 0x5a, 0x0f, 0x55, 0x8e, 0xe5, 0x96, 0x4d, 0xa5,
4904 0xb6, 0x2f, 0x59, 0xf5, 0x54, 0xa8, 0xa0, 0x9a, 0x16, 0xb3, 0xa6, 0x31,
4905 0xeb, 0x53, 0xa8, 0x8b, 0x81, 0x24, 0xa8, 0xb6, 0x6f, 0xcc, 0xbc, 0xb4,
4906 0xf4, 0x68, 0xb9, 0x62, 0xef, 0x02, 0xff, 0x6b, 0x7b, 0x77, 0xb4, 0xd3,
4907 0x6b, 0xf7, 0x1e, 0x40, 0x47, 0x78, 0x70, 0x8c, 0x62, 0x4d, 0x58, 0xf3,
4908 0xf2, 0x0f, 0x77, 0x50, 0x2b, 0x47, 0xc6, 0x19, 0x62, 0x58, 0x5d, 0x7d,
4909 0x19, 0x9e, 0xb5, 0x3c, 0x6d, 0xe2, 0x2d, 0xf6, 0x2a, 0x39, 0xcb, 0x91,
4910 0xbc, 0x17, 0xf3, 0x9d, 0x03, 0x5e, 0x83, 0x5e, 0xf7, 0x04, 0x67, 0x33,
4911 0x89, 0x7c, 0x35, 0xe6, 0xf9, 0xd1, 0x0a, 0x30, 0xeb, 0xb3, 0x94, 0x9c,
4912 0x0c, 0xb8, 0x1f, 0xaf, 0xd5, 0x76, 0x35, 0x17, 0xf3, 0x6d, 0x42, 0x76,
4913 0xdf, 0x1c, 0x99, 0x37, 0xec, 0xf4, 0x59, 0x57, 0x5e, 0xb1, 0x86, 0x33,
4914 0x48, 0x14, 0x59, 0x89, 0x37, 0xe2, 0x7a, 0x39, 0x45, 0x3e, 0x51, 0xd5,
4915 0xf5, 0x4d, 0x17, 0x62, 0x18, 0x83, 0xe9, 0xac, 0x75, 0x88, 0x28, 0x88,
4916 0x10, 0x71, 0x0e, 0x56, 0x58, 0xae, 0x17, 0x1c, 0x79, 0x98, 0x24, 0xce,
4917 0xd0, 0x96, 0x4f, 0x58, 0xbe, 0x28, 0xed, 0xd1, 0xf4, 0x2e, 0x9d, 0xad,
4918 0x5a, 0x61, 0xbb, 0xe6, 0xeb, 0x28, 0x60, 0x9b, 0x96, 0x61, 0x36, 0x09,
4919 0x3c, 0x10, 0xfc, 0x44, 0xee, 0xfc, 0x53, 0xa8, 0x9b, 0x80, 0x4d, 0xd5,
4920 0xf2, 0xb8, 0x5d, 0x09, 0x47, 0x92, 0x1c, 0x86, 0x97, 0x87, 0xe7, 0xef,
4921 0xbe, 0x39, 0x3e, 0x3e, 0x3f, 0x39, 0x3a, 0x3d, 0x56, 0x33, 0xc0, 0xfd,
4922 0xe8, 0xcd, 0xe5, 0xb7, 0xa7, 0x46, 0x9b, 0x64, 0xcb, 0xd4, 0xf2, 0xd9,
4923 0x30, 0x1c, 0x85, 0x9b, 0x3b, 0x4d, 0xb3, 0xd5, 0xfb, 0x01, 0x4a, 0xa1,
4924 0x93, 0x2c, 0x1f, 0x9c, 0x7c, 0x3f, 0x88, 0xbe, 0x3e, 0x1f, 0xbe, 0xfd,
4925 0xbe, 0x95, 0x8c, 0x1e, 0x00, 0x40, 0x49, 0x09, 0x35, 0x2f, 0xfb, 0x0e,
4926 0x0f, 0x0a, 0xc2, 0x4f, 0x3f, 0x76, 0xbb, 0x65, 0x76, 0x54, 0xc0, 0xf8,
4927 0xc8, 0xf8, 0x77, 0x5d, 0xa4, 0x42, 0xcf, 0x95, 0x8b, 0x7d, 0x63, 0xf5,
4928 0x3b, 0x0c, 0xb7, 0x78, 0xc1, 0x49, 0x6d, 0xa3, 0x50, 0xb0, 0x1e, 0xa2,
4929 0x17, 0xf4, 0x47, 0x17, 0x7d, 0xc6, 0xf6, 0x78, 0xfc, 0x35, 0x17, 0xfd,
4930 0x13, 0x4a, 0x3f, 0x7e, 0xd2, 0x25, 0x2b, 0x8f, 0x0c, 0xd4, 0xa5, 0x21,
4931 0x51, 0xcd, 0x75, 0xd3, 0x94, 0xd9, 0xa2, 0x75, 0xbf, 0x72, 0x2d, 0xd8,
4932 0xd9, 0x6c, 0x17, 0xa9, 0x6e, 0x93, 0xf5, 0x57, 0xe4, 0x0d, 0xa1, 0x8f,
4933 0x7e, 0x98, 0xa1, 0xaa, 0x35, 0x46, 0x7e, 0x76, 0xe4, 0x2c, 0x67, 0xf5,
4934 0x0c, 0x73, 0x2b, 0x18, 0xa0, 0x4c, 0x5b, 0x07, 0x0f, 0x87, 0x30, 0x58,
4935 0x2d, 0x83, 0xd6, 0x52, 0x92, 0xf2, 0xa3, 0xe3, 0x8b, 0x81, 0xb0, 0x56,
4936 0x85, 0x8c, 0x55, 0x9e, 0xa3, 0x4d, 0xa3, 0x9d, 0xa4, 0x06, 0x3b, 0xa3,
4937 0xf0, 0x60, 0x7d, 0xfc, 0xef, 0x23, 0xab, 0xba, 0x2d, 0x26, 0xd1, 0x8b,
4938 0x39, 0xbd, 0x38, 0xef, 0x4e, 0xea, 0x53, 0x72, 0x75, 0xcf, 0x10, 0xdf,
4939 0xe0, 0x24, 0x50, 0x23, 0x4f, 0xeb, 0x32, 0x73, 0x3b, 0x76, 0xf5, 0x6e,
4940 0x71, 0xd1, 0x55, 0x70, 0xd5, 0xa0, 0xd8, 0x6d, 0x33, 0x03, 0xaa, 0x0f,
4941 0x60, 0x61, 0x7f, 0x10, 0xf5, 0x99, 0x77, 0x81, 0xff, 0x0b, 0x45, 0xa9,
4942 0xc4, 0xfa, 0xfd, 0x41, 0x9b, 0xdd, 0xb8, 0xaf, 0xd3, 0xde, 0x1f, 0x31,
4943 0xa0, 0x57, 0x50, 0x01, 0x08, 0x20, 0x03, 0x20, 0xce, 0x3c, 0x79, 0xe8,
4944 0x8b, 0x15, 0x86, 0xe7, 0x2b, 0x82, 0xcf, 0xb6, 0x2a, 0x5b, 0x57, 0x78,
4945 0xd7, 0x5c, 0x3d, 0xfb, 0x6c, 0x5d, 0x4d, 0xc8, 0x50, 0x21, 0x28, 0x60,
4946 0x1a, 0x76, 0x90, 0x92, 0x0b, 0x09, 0xcf, 0x8b, 0x24, 0xdd, 0x5b, 0x11,
4947 0x80, 0xa7, 0x82, 0x32, 0xfb, 0x6a, 0x3c, 0x3e, 0x38, 0x3f, 0x69, 0x4e,
4948 0x35, 0xfd, 0x74, 0xf8, 0x06, 0x34, 0xed, 0xd4, 0x87, 0x2d, 0x93, 0x15,
4949 0x1f, 0xa4, 0xe2, 0xee, 0x23, 0x9b, 0x8a, 0x8f, 0x75, 0x06, 0xf9, 0x32,
4950 0x66, 0x6e, 0xf8, 0x2d, 0xdf, 0xe8, 0xd8, 0x65, 0xd9, 0x41, 0xf0, 0xad,
4951 0xd4, 0x70, 0x8a, 0xd5, 0x28, 0xa2, 0x5a, 0xc9, 0x61, 0x32, 0x57, 0x7e,
4952 0x43, 0x99, 0x9a, 0x83, 0x53, 0x37, 0x2d, 0xab, 0x21, 0x47, 0x2b, 0xd6,
4953 0xe7, 0xe2, 0x2a, 0x4c, 0xdc, 0xd2, 0x14, 0x03, 0xaa, 0x48, 0xd1, 0x19,
4954 0xc2, 0x51, 0x0c, 0x34, 0x0d, 0x2e, 0xd4, 0xac, 0x89, 0x86, 0x2d, 0x6c,
4955 0x08, 0x5f, 0xa5, 0xef, 0xd2, 0xe4, 0x9e, 0x33, 0x44, 0x8f, 0x3d, 0x9d,
4956 0x86, 0xc6, 0xee, 0xd2, 0x1a, 0x0b, 0x32, 0x5d, 0x76, 0xa7, 0x37, 0x64,
4957 0x68, 0x0d, 0x01, 0xbb, 0xeb, 0x30, 0xc5, 0xc2, 0x12, 0x79, 0xcd, 0x6e,
4958 0x71, 0x26, 0xd5, 0xd4, 0x42, 0x6b, 0x46, 0xd7, 0x1f, 0xa0, 0xde, 0xb9,
4959 0x13, 0x6b, 0x32, 0x28, 0x85, 0xfe, 0xcc, 0xe5, 0x48, 0xe2, 0x82, 0x99,
4960 0x17, 0xc6, 0xa2, 0xf6, 0x21, 0xeb, 0x42, 0x33, 0x35, 0x33, 0x21, 0xcd,
4961 0x7e, 0x73, 0x3a, 0xf6, 0xb8, 0xff, 0x4a, 0xd9, 0x90, 0xe1, 0x56, 0x18,
4962 0xb3, 0xf1, 0xf8, 0x6a, 0x4d, 0xdd, 0xd0, 0x52, 0x4b, 0x7e, 0x23, 0x24,
4963 0x8b, 0x80, 0xa3, 0x58, 0xc1, 0x69, 0x51, 0x4b, 0xe1, 0xe0, 0xd6, 0xff,
4964 0xa2, 0xf8, 0x3c, 0x4e, 0x74, 0x6b, 0x6b, 0x29, 0x8d, 0x0d, 0x32, 0xa7,
4965 0x47, 0x58, 0xea, 0x16, 0xdb, 0x1a, 0xdc, 0x12, 0xe9, 0x94, 0x2f, 0xd5,
4966 0xb7, 0xa1, 0x41, 0x53, 0x63, 0x59, 0xee, 0x8c, 0xf3, 0x81, 0x87, 0x77,
4967 0xcb, 0x53, 0x57, 0xb9, 0x32, 0x6f, 0x22, 0xaf, 0x0e, 0xd8, 0xa9, 0xe0,
4968 0x31, 0x56, 0xbb, 0x64, 0x0d, 0x76, 0x94, 0x35, 0x15, 0x2c, 0x2e, 0x33,
4969 0x40, 0xfa, 0xfa, 0xe8, 0x91, 0x23, 0x78, 0xde, 0x64, 0x6b, 0x65, 0x1a,
4970 0x42, 0x42, 0x9a, 0x24, 0xcb, 0x1d, 0xb9, 0xde, 0x2c, 0x7b, 0x4f, 0xbe,
4971 0xff, 0x3e, 0xaa, 0x53, 0xba, 0x6c, 0x0d, 0x6a, 0xfb, 0xa5, 0x51, 0xba,
4972 0x87, 0x34, 0x5d, 0xde, 0x21, 0x5f, 0x06, 0xf4, 0x53, 0xdc, 0x0c, 0xc7,
4973 0x5c, 0x70, 0xcb, 0x18, 0x39, 0x10, 0x9e, 0xd5, 0xce, 0x54, 0xf8, 0x5d,
4974 0x18, 0xf3, 0x6d, 0x2b, 0x41, 0x1f, 0x3c, 0x1d, 0x38, 0xa0, 0x90, 0xc4,
4975 0x98, 0x10, 0x8b, 0x0e, 0xa7, 0xaa, 0x74, 0xbb, 0x95, 0x94, 0xef, 0x7d,
4976 0x36, 0xea, 0xe2, 0xc5, 0x6e, 0xd3, 0xcd, 0x08, 0x7a, 0x12, 0x23, 0x82,
4977 0xe4, 0x48, 0x69, 0x42, 0xf6, 0x9d, 0x04, 0x65, 0x4f, 0xd6, 0x95, 0xeb,
4978 0x36, 0x47, 0x04, 0xc2, 0x82, 0x72, 0xea, 0x31, 0xb6, 0x48, 0xa4, 0x06,
4979 0x05, 0xbc, 0x7d, 0xdc, 0x22, 0x5c, 0x2d, 0x7e, 0x7c, 0xd0, 0xc1, 0x0f,
4980 0x0b, 0xf2, 0xea, 0xc0, 0xb7, 0x84, 0x08, 0xa1, 0x62, 0xa2, 0x25, 0xc7,
4981 0xfa, 0xcf, 0xf5, 0x3a, 0x18, 0xca, 0x2a, 0x21, 0xa2, 0xd7, 0x55, 0xec,
4982 0x63, 0x58, 0x15, 0x2b, 0xcc, 0x10, 0x2f, 0x08, 0x27, 0x9e, 0x72, 0x12,
4983 0x93, 0xf1, 0x2d, 0xf0, 0x59, 0x6e, 0xd1, 0x50, 0x94, 0x16, 0x0f, 0x4c,
4984 0xaa, 0x76, 0xb4, 0xc7, 0xc6, 0x25, 0xf9, 0xcd, 0xf0, 0x51, 0x34, 0x4a,
4985 0x2b, 0xa2, 0x34, 0x38, 0x1e, 0x2b, 0xd7, 0x15, 0x07, 0xf7, 0x4e, 0x19,
4986 0x69, 0xa1, 0x0c, 0x27, 0xcc, 0xac, 0x6f, 0x87, 0x2b, 0x55, 0x98, 0x0f,
4987 0x4b, 0x10, 0x5b, 0xf4, 0x5f, 0x1d, 0x5f, 0x36, 0xb7, 0x16, 0xb0, 0xf3,
4988 0x7a, 0x97, 0x01, 0x82, 0x93, 0xfe, 0x7d, 0xfe, 0xf6, 0x72, 0xcb, 0xdf,
4989 0x57, 0x45, 0x4a, 0x03, 0xa7, 0x8a, 0xb5, 0xde, 0xc1, 0x2d, 0x25, 0x28,
4990 0x49, 0xc5, 0xda, 0x03, 0xe6, 0xea, 0x36, 0xc4, 0x3d, 0x19, 0xc5, 0x4f,
4991 0x76, 0x76, 0x07, 0xf4, 0xc7, 0x1e, 0xdc, 0x02, 0x4f, 0x76, 0x9e, 0x38,
4992 0x9f, 0xab, 0x3d, 0xd5, 0xd2, 0xb5, 0x48, 0xd7, 0x88, 0x4b, 0xad, 0x2a,
4993 0x26, 0xd7, 0xc2, 0xe8, 0xc9, 0xfb, 0xf7, 0xf8, 0xd5, 0xa0, 0x56, 0x8a,
4994 0x7e, 0xe8, 0x70, 0x61, 0xae, 0xab, 0x6b, 0xb6, 0x96, 0x9f, 0x71, 0xdc,
4995 0xef, 0x57, 0x99, 0x04, 0xd1, 0xd9, 0x90, 0x06, 0xe6, 0x32, 0x34, 0x7e,
4996 0xe8, 0xbc, 0xc6, 0x47, 0x3a, 0x59, 0x5c, 0x0f, 0x84, 0x04, 0x3e, 0xdc,
4997 0xe4, 0x2c, 0xa8, 0x5c, 0x5f, 0x97, 0x51, 0xc9, 0x7c, 0xce, 0x6b, 0x5e,
4998 0xdb, 0xa2, 0x56, 0x28, 0x17, 0x7f, 0xef, 0x60, 0x4b, 0x46, 0x34, 0x97,
4999 0x21, 0x06, 0xc2, 0xe2, 0x8b, 0x2f, 0x0f, 0xa5, 0xb7, 0x1a, 0x57, 0xc2,
5000 0x8c, 0x58, 0x1c, 0x44, 0xd1, 0xb3, 0x8e, 0x99, 0xbb, 0xe3, 0x68, 0xb1,
5001 0x88, 0x00, 0x59, 0x2e, 0x73, 0xa1, 0x99, 0x90, 0xec, 0x75, 0x39, 0xf0,
5002 0xa5, 0x5b, 0x82, 0x13, 0xf3, 0xc1, 0x7f, 0x7e, 0xaf, 0x55, 0x53, 0xed,
5003 0xcd, 0xd9, 0xe5, 0xf1, 0xbe, 0xf2, 0x56, 0x48, 0xee, 0x73, 0xa5, 0x68,
5004 0xb3, 0xf9, 0x83, 0x19, 0x0d, 0xcc, 0x0b, 0x62, 0x22, 0x68, 0x37, 0x44,
5005 0x46, 0x41, 0xd0, 0xf5, 0xa4, 0xbd, 0xb5, 0x84, 0x08, 0x89, 0xcf, 0x37,
5006 0x94, 0x1a, 0x1c, 0xf0, 0x6d, 0x4c, 0x0e, 0x9c, 0x9c, 0xd5, 0x67, 0x6c,
5007 0xb4, 0x99, 0xea, 0x6c, 0xa0, 0x6f, 0x5d, 0x17, 0xf1, 0x62, 0x0d, 0x17,
5008 0x8e, 0xa5, 0xf8, 0xfb, 0x12, 0xf4, 0x1c, 0xce, 0x2e, 0x2d, 0xe3, 0xf0,
5009 0x1d, 0x8e, 0xd1, 0xd9, 0x6c, 0xf3, 0xc9, 0x96, 0x98, 0xdc, 0x92, 0x1f,
5010 0xc0, 0x18, 0xb4, 0xfc, 0x5f, 0x2f, 0xea, 0xa9, 0x4e, 0x58, 0x5f, 0xa4,
5011 0xb7, 0x6b, 0x59, 0x1d, 0x44, 0xfb, 0xb1, 0x34, 0x29, 0xe8, 0x90, 0x21,
5012 0x6e, 0x41, 0x2f, 0xc8, 0x4e, 0x49, 0x66, 0x6b, 0x23, 0x7a, 0xb0, 0x30,
5013 0x48, 0x5b, 0xa4, 0x8b, 0xd5, 0xc2, 0xa3, 0xa5, 0x98, 0xe0, 0xb7, 0x4a,
5014 0xda, 0x35, 0x80, 0xd5, 0xfa, 0x6e, 0xc5, 0x2e, 0x14, 0x07, 0xa3, 0x23,
5015 0x0c, 0x8c, 0x21, 0xc0, 0x00, 0x62, 0xd1, 0x69, 0x7c, 0x3a, 0xa4, 0x4b,
5016 0xf1, 0xd5, 0x32, 0x56, 0x74, 0x26, 0x58, 0x1f, 0x96, 0xa0, 0xe6, 0xa2,
5017 0x5a, 0x37, 0x50, 0x2b, 0x43, 0x62, 0xe8, 0x02, 0xc0, 0xa5, 0x53, 0x80,
5018 0xa3, 0xbe, 0xd4, 0xc4, 0x7d, 0x3a, 0xab, 0x6e, 0xba, 0xb9, 0x4a, 0x65,
5019 0x1e, 0x31, 0xee, 0x48, 0x08, 0x02, 0x18, 0x14, 0x89, 0xa9, 0x02, 0xce,
5020 0x69, 0x5b, 0x7c, 0x1c, 0x2e, 0xd7, 0x95, 0xcc, 0xa5, 0xd5, 0x15, 0x13,
5021 0x5b, 0xb5, 0x63, 0x32, 0x8a, 0x2f, 0x1f, 0xd9, 0x16, 0x45, 0xe6, 0xca,
5022 0x6d, 0x9f, 0xd5, 0x4e, 0xff, 0x1b, 0x35, 0xe0, 0x85, 0xcd, 0x05, 0x67,
5023 0xac, 0xe0, 0x99, 0x81, 0xf5, 0xbc, 0x4d, 0xe7, 0xed, 0x12, 0xc2, 0x0f,
5024 0x08, 0x5c, 0x45, 0xfd, 0x85, 0xe4, 0x81, 0xbc, 0xee, 0x6b, 0xbc, 0x39,
5025 0x65, 0x1a, 0x08, 0x45, 0x61, 0x0d, 0x94, 0xa9, 0xaa, 0x7f, 0x2d, 0x9f,
5026 0xf9, 0xca, 0x3f, 0xd4, 0x68, 0xce, 0x03, 0xb7, 0xcc, 0x5b, 0x57, 0xee,
5027 0x47, 0x7b, 0x3b, 0x3b, 0xdf, 0x90, 0x6e, 0x94, 0xea, 0xea, 0xbb, 0x5f,
5028 0x75, 0xce, 0x90, 0x4c, 0x10, 0x96, 0x58, 0x63, 0x7d, 0xf1, 0x1d, 0x7c,
5029 0x6a, 0x3a, 0x69, 0x18, 0x11, 0x1f, 0x55, 0xb3, 0x55, 0xe0, 0x06, 0x91,
5030 0xc9, 0x5f, 0xb3, 0x54, 0xf0, 0xb8, 0x34, 0x13, 0x91, 0x17, 0xc0, 0xea,
5031 0xf2, 0xea, 0xdd, 0xd0, 0xdf, 0x18, 0x71, 0x66, 0x0b, 0x8b, 0xef, 0x74,
5032 0x24, 0x66, 0x92, 0xc1, 0xc0, 0x5c, 0x42, 0xab, 0x02, 0x3b, 0x99, 0x81,
5033 0x51, 0x52, 0xf8, 0x8a, 0xbd, 0x40, 0x88, 0xcd, 0x08, 0x5b, 0x82, 0x2f,
5034 0x2e, 0x5e, 0xd5, 0x86, 0x33, 0xea, 0x2e, 0x20, 0x8b, 0xb3, 0xd9, 0x95,
5035 0x4c, 0xff, 0x81, 0x0d, 0x19, 0x74, 0x40, 0xf6, 0x89, 0x8b, 0xf0, 0x48,
5036 0x54, 0x29, 0x84, 0xc4, 0x34, 0x07, 0xcb, 0x36, 0x97, 0x92, 0xca, 0xb3,
5037 0x7d, 0x0e, 0xb7, 0x0d, 0xc6, 0xc8, 0xc4, 0x89, 0x4b, 0x2d, 0x57, 0xc3,
5038 0x1d, 0x91, 0x96, 0xa1, 0x6f, 0xe7, 0xfc, 0xc0, 0x9c, 0x6f, 0x1a, 0x79,
5039 0x0b, 0x43, 0x3c, 0x5f, 0xc2, 0x75, 0xe5, 0x4e, 0x91, 0xa0, 0x53, 0x9c,
5040 0x06, 0x37, 0x45, 0x29, 0x24, 0x46, 0x53, 0xff, 0x86, 0xb7, 0x72, 0x30,
5041 0x2f, 0x49, 0x1a, 0xfe, 0x0b, 0x12, 0xe0, 0xcf, 0x7f, 0x1c, 0xd2, 0x9f,
5042 0x3f, 0x75, 0x54, 0xb6, 0x8b, 0x83, 0x68, 0xb1, 0x21, 0xf7, 0x0b, 0x4f,
5043 0xab, 0x8e, 0x76, 0x24, 0xe7, 0x4d, 0x7e, 0x5b, 0x06, 0x84, 0xf4, 0x5d,
5044 0x75, 0x1e, 0xbc, 0xd7, 0x70, 0xb3, 0x04, 0x97, 0x6c, 0x18, 0xdb, 0x13,
5045 0x6c, 0xa3, 0x35, 0xc4, 0xe6, 0x4d, 0x26, 0x2a, 0x06, 0xf8, 0x90, 0xa6,
5046 0xd4, 0x4c, 0x63, 0x3e, 0xd3, 0x1c, 0x68, 0xc2, 0x97, 0x07, 0xa5, 0xf1,
5047 0x4e, 0x56, 0xe5, 0x03, 0x53, 0x6b, 0x88, 0x97, 0xb4, 0xcc, 0x1d, 0x4d,
5048 0x15, 0x26, 0x10, 0xdd, 0x6f, 0xc3, 0x4c, 0x98, 0xfd, 0x41, 0xc0, 0x79,
5049 0x55, 0x9e, 0xd3, 0xa7, 0x8b, 0x82, 0x6c, 0x2c, 0x5d, 0x6a, 0x4d, 0xe7,
5050 0x08, 0x8e, 0x08, 0xef, 0xfe, 0xa4, 0xb6, 0x57, 0xcb, 0x0e, 0x5c, 0x08,
5051 0xa7, 0x76, 0xb5, 0xe8, 0x76, 0x6a, 0x79, 0x93, 0x76, 0x6f, 0x30, 0x3b,
5052 0xf1, 0xb1, 0xab, 0xcb, 0x29, 0xeb, 0xcd, 0xfa, 0x4d, 0x47, 0x36, 0x8b,
5053 0x9e, 0xfc, 0x42, 0xac, 0xea, 0x8e, 0xce, 0x35, 0xa9, 0x7a, 0xd1, 0x9f,
5054 0x3d, 0xb5, 0x94, 0xd0, 0xd8, 0xc3, 0x1c, 0x0e, 0x6e, 0x40, 0x28, 0x11,
5055 0xce, 0x29, 0x6d, 0xde, 0x92, 0xce, 0x3b, 0xf5, 0x3f, 0x3f, 0x93, 0x17,
5056 0xae, 0x80, 0x57, 0xca, 0xa9, 0x9f, 0xb3, 0xd5, 0x14, 0x37, 0x51, 0x46,
5057 0xc0, 0x30, 0x4b, 0xec, 0x44, 0xe8, 0x6c, 0x2c, 0x7f, 0x92, 0x9b, 0x76,
5058 0x86, 0x6c, 0x3b, 0x93, 0xc0, 0x11, 0x5a, 0xe3, 0x41, 0xfc, 0x43, 0x7c,
5059 0x65, 0x7c, 0x72, 0x70, 0xf0, 0xc3, 0xd1, 0xe8, 0x35, 0x6f, 0x12, 0xd9,
5060 0xd5, 0x1a, 0x2a, 0x50, 0x09, 0xb3, 0xb0, 0x25, 0xff, 0xbe, 0x72, 0xe1,
5061 0xe1, 0x58, 0xaa, 0xb7, 0xc1, 0xc4, 0xfc, 0x92, 0xd1, 0x6b, 0x8d, 0xf6,
5062 0x42, 0x82, 0x4b, 0x54, 0xb8, 0x63, 0xcb, 0xfa, 0x51, 0x4f, 0xf9, 0x6b,
5063 0x3d, 0x4c, 0x45, 0x67, 0x65, 0xca, 0x90, 0xa5, 0xb3, 0x2a, 0xda, 0xc8,
5064 0xf2, 0xa9, 0x69, 0x48, 0xf9, 0x3c, 0x09, 0x8a, 0x34, 0x74, 0x70, 0x67,
5065 0xb0, 0xce, 0x19, 0x05, 0x8c, 0x33, 0x01, 0x50, 0x58, 0x2b, 0x07, 0xa6,
5066 0xc6, 0x54, 0x3d, 0x41, 0x85, 0xdb, 0xbf, 0xe5, 0x13, 0xbd, 0x99, 0xf1,
5067 0xed, 0xa2, 0x8b, 0xe4, 0xe7, 0x0a, 0xf0, 0x49, 0xd2, 0xb1, 0xa4, 0xdf,
5068 0x25, 0x72, 0xce, 0x1d, 0xca, 0x92, 0x8a, 0xb5, 0x0d, 0xc0, 0x95, 0x72,
5069 0xab, 0xa6, 0x13, 0x46, 0x2a, 0x69, 0x01, 0x31, 0x27, 0x70, 0xa5, 0x16,
5070 0xf1, 0x81, 0xe3, 0xf3, 0xd7, 0x5d, 0x80, 0xc9, 0xe1, 0xf8, 0xf0, 0x9a,
5071 0x7b, 0xc7, 0xaf, 0xa8, 0xb9, 0x16, 0x4c, 0x9e, 0x8a, 0x91, 0xbe, 0x50,
5072 0x60, 0x68, 0xdb, 0x09, 0xfb, 0x5a, 0x6a, 0x43, 0x99, 0xb9, 0x13, 0x1b,
5073 0x2f, 0x91, 0x27, 0x9f, 0x50, 0x59, 0x97, 0x43, 0x64, 0x01, 0xaa, 0x5d,
5074 0xf1, 0xf1, 0xb5, 0xd3, 0xfc, 0x4a, 0xe3, 0x30, 0x6c, 0x8d, 0xaa, 0x41,
5075 0x22, 0xb0, 0xb3, 0x55, 0xeb, 0xe6, 0x7b, 0x54, 0x39, 0x00, 0xde, 0xf6,
5076 0x05, 0x0e, 0xec, 0xcf, 0x1f, 0x01, 0x52, 0x98, 0x31, 0x86, 0xc7, 0x37,
5077 0xcd, 0x66, 0xd9, 0xf2, 0x44, 0x89, 0xb2, 0x1b, 0x8c, 0xdd, 0x00, 0x97,
5078 0xdd, 0x2e, 0xf5, 0x8a, 0x47, 0xfd, 0xc5, 0x3c, 0xad, 0xc3, 0xbe, 0xb1,
5079 0x06, 0xc8, 0x70, 0x19, 0xd4, 0xf3, 0x9b, 0xd7, 0x54, 0x2c, 0x93, 0x1a,
5080 0xec, 0x7c, 0xe0, 0x85, 0x57, 0x25, 0x10, 0xde, 0xc2, 0x7b, 0x90, 0xbc,
5081 0x07, 0xa6, 0x81, 0x2e, 0x15, 0x9f, 0x3c, 0x19, 0x75, 0xdb, 0xfc, 0x97,
5082 0x35, 0xe0, 0xb1, 0x5d, 0x29, 0x05, 0x02, 0xc0, 0x89, 0x46, 0x9c, 0x91,
5083 0xcb, 0x6c, 0x5e, 0xe1, 0xe8, 0xe4, 0x8e, 0xd3, 0x91, 0xa6, 0x8d, 0x9c,
5084 0x1a, 0x71, 0x2e, 0x55, 0x6b, 0x29, 0x33, 0xac, 0x1e, 0x95, 0xbf, 0xdc,
5085 0xf0, 0x28, 0x5b, 0x08, 0x2d, 0x49, 0x74, 0x41, 0xee, 0x88, 0xe4, 0xa6,
5086 0xb6, 0x26, 0x4a, 0x2d, 0x73, 0x9c, 0xcc, 0x0e, 0x2a, 0xc8, 0xd5, 0x87,
5087 0x92, 0xa2, 0x15, 0xed, 0x01, 0x21, 0x25, 0x7b, 0xcf, 0x00, 0xff, 0xbe,
5088 0xac, 0xd5, 0x76, 0x6c, 0x0a, 0x6f, 0x31, 0x5d, 0x56, 0xff, 0xad, 0xc2,
5089 0x6b, 0xfa, 0xfb, 0xc3, 0xac, 0x87, 0x21, 0x2a, 0xa6, 0x8b, 0x57, 0x8b,
5090 0xf4, 0x76, 0xba, 0x64, 0x1e, 0xbb, 0xf2, 0x17, 0x6f, 0x06, 0x75, 0x4c,
5091 0xc0, 0xda, 0xe8, 0xb0, 0x33, 0xfc, 0x75, 0xc4, 0xec, 0x69, 0xbe, 0xfb,
5092 0xd9, 0x59, 0xc1, 0x47, 0xa4, 0xbb, 0x97, 0xbb, 0x52, 0xba, 0x70, 0x00,
5093 0xd0, 0x89, 0xd8, 0x4a, 0xa4, 0x75, 0xee, 0x38, 0xe7, 0x61, 0x5a, 0x47,
5094 0x5b, 0x84, 0x58, 0x53, 0x52, 0xe7, 0x79, 0xee, 0x2c, 0xf5, 0x0e, 0x95,
5095 0x18, 0x74, 0xa7, 0x04, 0x00, 0x36, 0x8a, 0x27, 0x74, 0xcb, 0x98, 0xad,
5096 0x16, 0xbd, 0x51, 0xf4, 0xe5, 0x83, 0x61, 0x4e, 0x54, 0x93, 0xc1, 0xa2,
5097 0x6b, 0x9d, 0x9a, 0xa8, 0xd6, 0x96, 0x47, 0xcf, 0x76, 0x6a, 0xad, 0x8d,
5098 0x30, 0x09, 0x0d, 0x57, 0xc0, 0x70, 0xd7, 0xa5, 0x07, 0x32, 0x80, 0x42,
5099 0xee, 0x77, 0x4d, 0x88, 0x3b, 0x89, 0xc4, 0x6f, 0xa8, 0x6e, 0x33, 0xa9,
5100 0xef, 0x5a, 0x15, 0xd3, 0xd6, 0x81, 0x77, 0xeb, 0x93, 0x26, 0x4b, 0xa9,
5101 0x72, 0xc5, 0x0a, 0x68, 0x84, 0x87, 0x49, 0x1c, 0xde, 0xe9, 0x5f, 0x72,
5102 0x07, 0x03, 0xd9, 0x0a, 0xf1, 0x14, 0x1d, 0xd1, 0xfe, 0x7e, 0xe9, 0xe0,
5103 0x09, 0xea, 0xf2, 0xe6, 0x3d, 0x0f, 0x66, 0x88, 0xae, 0x42, 0xb4, 0x8e,
5104 0xa4, 0xec, 0x61, 0xd9, 0x8a, 0x0f, 0x0a, 0x1c, 0x5d, 0x46, 0xcd, 0x8d,
5105 0x20, 0x59, 0x42, 0x60, 0x2f, 0xde, 0x13, 0xea, 0xea, 0xb3, 0x85, 0x9e,
5106 0x20, 0x21, 0x6c, 0xee, 0xe8, 0x5d, 0xab, 0xe0, 0x2f, 0x3b, 0x00, 0x31,
5107 0xc6, 0xcd, 0xa7, 0x5b, 0x70, 0xb6, 0x57, 0xcb, 0xcd, 0xdd, 0x2d, 0x7c,
5108 0xce, 0x88, 0x48, 0x0d, 0x01, 0xda, 0x05, 0x3e, 0xf2, 0xe5, 0xdb, 0x0e,
5109 0x7d, 0xb2, 0x14, 0x2b, 0x47, 0x10, 0x8d, 0xb1, 0xc3, 0x0d, 0x3a, 0x2c,
5110 0x56, 0x98, 0xac, 0x79, 0xfa, 0xf9, 0x6e, 0xdd, 0xa1, 0xf8, 0x25, 0x41,
5111 0x72, 0xc9, 0x30, 0x8f, 0x52, 0x28, 0xc4, 0x37, 0x3d, 0xab, 0x1d, 0xb7,
5112 0xca, 0x69, 0xef, 0x52, 0x5c, 0x83, 0x66, 0x6f, 0x3e, 0x1b, 0xe2, 0xc0,
5113 0xbf, 0x2e, 0xf2, 0x36, 0x81, 0x05, 0x63, 0xf4, 0x78, 0x0e, 0xb6, 0x0c,
5114 0x49, 0xd5, 0x59, 0x3c, 0xa2, 0xc7, 0x88, 0xa4, 0x5e, 0x58, 0x27, 0xc8,
5115 0x40, 0x4f, 0xcd, 0xfb, 0x4e, 0x6d, 0x49, 0x5b, 0xa2, 0x7a, 0x10, 0xfd,
5116 0x7d, 0x95, 0x4e, 0x6f, 0xb1, 0xb6, 0x08, 0x40, 0x01, 0xe0, 0x92, 0x38,
5117 0xaf, 0x22, 0x69, 0x01, 0xf6, 0x9b, 0xe2, 0x7c, 0x80, 0x9d, 0x0d, 0xfb,
5118 0xd0, 0xa4, 0xac, 0xa3, 0x70, 0x0b, 0x8c, 0x60, 0x73, 0x5d, 0x80, 0xbb,
5119 0x26, 0xd7, 0x13, 0x16, 0x91, 0x19, 0xf1, 0x15, 0xcf, 0x72, 0x06, 0x29,
5120 0x30, 0x4e, 0x43, 0xa4, 0x60, 0x1d, 0x13, 0x6b, 0x7f, 0xf1, 0xc0, 0xe4,
5121 0x04, 0xfd, 0x3a, 0x25, 0x6b, 0x9f, 0xac, 0x3b, 0x3a, 0x06, 0xfb, 0x36,
5122 0xbf, 0x0d, 0x3c, 0x5f, 0x9b, 0x42, 0x71, 0xcd, 0xa7, 0x45, 0xb4, 0xe5,
5123 0x13, 0xbe, 0x75, 0x69, 0xdc, 0x6f, 0xc1, 0x37, 0x03, 0x09, 0xf9, 0x4f,
5124 0x56, 0xec, 0xbf, 0xee, 0x2c, 0xdb, 0xa9, 0xce, 0x2e, 0x79, 0x42, 0xfd,
5125 0x66, 0x81, 0xf7, 0xab, 0x64, 0xdc, 0xe8, 0x22, 0xa4, 0xea, 0x47, 0xb1,
5126 0xdd, 0xb2, 0xad, 0x4d, 0x56, 0x52, 0x35, 0xac, 0x91, 0xc1, 0xd7, 0x88,
5127 0x2e, 0xc9, 0x67, 0x38, 0x0f, 0x29, 0x6c, 0xbe, 0xcb, 0x87, 0x88, 0xd7,
5128 0x5d, 0x52, 0x88, 0x9e, 0xcf, 0x95, 0x96, 0x44, 0x97, 0x54, 0x4e, 0x69,
5129 0xc2, 0x91, 0xd5, 0x31, 0x45, 0xc0, 0xcd, 0x8a, 0xcc, 0xd0, 0x41, 0x47,
5130 0x64, 0xc8, 0x2e, 0x5f, 0x29, 0xef, 0x6d, 0x12, 0x10, 0x4d, 0x4d, 0xd6,
5131 0x3a, 0x2b, 0xda, 0x02, 0x67, 0x91, 0xde, 0x81, 0x52, 0xa8, 0x45, 0xff,
5132 0xd9, 0xd5, 0x3b, 0x5f, 0x72, 0x36, 0xae, 0xfc, 0x04, 0x76, 0x23, 0x50,
5133 0x7d, 0xb5, 0x43, 0xa3, 0xe1, 0x46, 0x15, 0xf1, 0x59, 0x88, 0xb3, 0xf4,
5134 0x29, 0x5b, 0x70, 0x20, 0x19, 0x01, 0x75, 0x6b, 0xcb, 0x0a, 0x27, 0x2e,
5135 0xad, 0xac, 0x7c, 0x13, 0xa5, 0x5e, 0x83, 0xc4, 0xfe, 0x8e, 0x9e, 0xa8,
5136 0x1e, 0x1e, 0x76, 0xa0, 0x33, 0xeb, 0x01, 0x3d, 0x0e, 0x6d, 0x86, 0xe4,
5137 0x2e, 0x78, 0x6d, 0x50, 0xa3, 0x77, 0x11, 0x5a, 0x00, 0xc1, 0x58, 0x74,
5138 0xe0, 0xc3, 0x99, 0x40, 0x72, 0x93, 0x8e, 0xb6, 0x7c, 0xbe, 0xe2, 0x2c,
5139 0x3c, 0xad, 0xda, 0x4d, 0xd3, 0xba, 0x65, 0xbb, 0x49, 0xf6, 0x5f, 0x50,
5140 0xd5, 0x51, 0x94, 0x58, 0x27, 0xe3, 0x06, 0xfc, 0x87, 0x21, 0x17, 0xb7,
5141 0xc4, 0x54, 0xcd, 0xce, 0xe0, 0xd3, 0x27, 0x68, 0x6e, 0x09, 0x2c, 0xe1,
5142 0x5d, 0x6e, 0x6a, 0xb6, 0x65, 0xe7, 0xda, 0x29, 0x16, 0xce, 0x87, 0x61,
5143 0x70, 0xe0, 0x28, 0xf0, 0x44, 0xc9, 0xfa, 0x25, 0x1c, 0x4c, 0x38, 0xe9,
5144 0xf8, 0x63, 0x8f, 0xfa, 0x57, 0xeb, 0x66, 0xcc, 0x6e, 0x48, 0x8e, 0xdb,
5145 0x39, 0xd7, 0xbe, 0x9c, 0x12, 0x1c, 0xf7, 0x5a, 0x16, 0x5c, 0xbb, 0xa6,
5146 0xac, 0xe6, 0x0f, 0xe8, 0xd5, 0x62, 0xc5, 0x19, 0x06, 0xad, 0x70, 0x35,
5147 0xad, 0xca, 0x7c, 0x25, 0xd4, 0x59, 0xec, 0x4c, 0x93, 0xb2, 0x4a, 0x7c,
5148 0xbf, 0x8a, 0x27, 0xbc, 0x38, 0x93, 0x07, 0x37, 0x4e, 0xc3, 0xee, 0xf2,
5149 0xb9, 0xe0, 0x90, 0x1c, 0x6d, 0xf1, 0x58, 0x53, 0x02, 0xf4, 0x5b, 0xd5,
5150 0xad, 0x2d, 0xb1, 0x10, 0xba, 0x14, 0x6f, 0x2c, 0x88, 0xdb, 0x91, 0xa7,
5151 0xcc, 0x94, 0xec, 0xaa, 0x6c, 0x67, 0x65, 0xbb, 0xce, 0xb0, 0x62, 0xe4,
5152 0xf3, 0x85, 0x43, 0x01, 0xb1, 0x95, 0x65, 0x92, 0xbb, 0xa1, 0xbc, 0xae,
5153 0xcd, 0xf2, 0xf9, 0x55, 0xef, 0xac, 0x82, 0x11, 0xd6, 0x24, 0x9a, 0x1e,
5154 0x6b, 0xe1, 0x84, 0xa8, 0x86, 0x5c, 0x68, 0x1d, 0xc2, 0x7c, 0x40, 0xd5,
5155 0x9e, 0xe8, 0xa6, 0xc1, 0xe0, 0x20, 0x10, 0x2d, 0x52, 0x7a, 0xad, 0x35,
5156 0x91, 0x5e, 0xa7, 0xd3, 0x22, 0x2f, 0xf3, 0x2b, 0xb9, 0xdc, 0xd8, 0x21,
5157 0xe6, 0x02, 0xd6, 0xcc, 0x68, 0x11, 0x33, 0x86, 0xb4, 0x6d, 0x57, 0xa8,
5158 0xb5, 0xc6, 0x6b, 0x85, 0x24, 0x36, 0xba, 0xbd, 0x2c, 0x54, 0x23, 0xb1,
5159 0x23, 0xb4, 0x12, 0x3f, 0x70, 0xec, 0xe0, 0x38, 0xb0, 0x07, 0x0c, 0xdb,
5160 0xf2, 0xec, 0xf1, 0x78, 0x28, 0x2f, 0x85, 0x16, 0x40, 0x32, 0xe7, 0xe5,
5161 0x4c, 0x8b, 0x52, 0x69, 0x31, 0x07, 0x09, 0x61, 0xd9, 0x6b, 0xdd, 0xbd,
5162 0xb3, 0x30, 0x14, 0xd8, 0x73, 0xe1, 0x33, 0x0d, 0x2b, 0x0f, 0x32, 0x64,
5163 0xe3, 0xe4, 0xf8, 0xf2, 0x55, 0x34, 0x2b, 0x62, 0x1a, 0x3e, 0xfe, 0x1c,
5164 0x4e, 0x8a, 0xe4, 0xe7, 0xb8, 0x45, 0x3c, 0x51, 0x2e, 0x79, 0x91, 0x86,
5165 0x0c, 0x70, 0x1c, 0xee, 0x3c, 0x1d, 0x55, 0xef, 0x3b, 0x31, 0x1d, 0x21,
5166 0xfa, 0x41, 0x2b, 0xca, 0xf8, 0xe5, 0xd2, 0xac, 0xfc, 0x02, 0x45, 0xdf,
5167 0xdf, 0x3f, 0xb4, 0xb8, 0xba, 0xba, 0x18, 0x29, 0x45, 0x2d, 0xe2, 0x79,
5168 0x2f, 0x25, 0x1f, 0xc0, 0x30, 0x3c, 0x0e, 0x91, 0x11, 0x48, 0x4c, 0x1d,
5169 0xf4, 0xd2, 0xae, 0x92, 0xf3, 0x38, 0x04, 0xc6, 0x20, 0x2f, 0x98, 0x40,
5170 0xa0, 0xcd, 0x65, 0x5c, 0xfa, 0xab, 0x56, 0x99, 0x16, 0xc5, 0xc1, 0xd4,
5171 0x64, 0xb3, 0x3b, 0x1c, 0xdb, 0x26, 0x56, 0x1d, 0x78, 0x1e, 0x51, 0xc8,
5172 0x81, 0x69, 0xea, 0x38, 0xba, 0xe2, 0xbb, 0xc0, 0x70, 0x65, 0x2c, 0x06,
5173 0xdd, 0x79, 0x9d, 0x56, 0x74, 0xdb, 0x98, 0xe9, 0x1a, 0x52, 0x86, 0xfb,
5174 0xba, 0x05, 0xdf, 0x46, 0x52, 0x42, 0x5b, 0x92, 0x5d, 0x9a, 0xc6, 0xcf,
5175 0x90, 0x14, 0xf6, 0x7e, 0x5f, 0xe4, 0x3c, 0xc9, 0xb8, 0xa2, 0x8c, 0x48,
5176 0x37, 0xf4, 0xa9, 0x33, 0x99, 0xea, 0xb6, 0x91, 0x4b, 0x3f, 0x1c, 0xae,
5177 0xba, 0x7b, 0x47, 0xba, 0x90, 0xed, 0x58, 0x49, 0xb8, 0xd2, 0x02, 0x7c,
5178 0xff, 0xc2, 0x05, 0x26, 0xb8, 0x9d, 0xfd, 0x22, 0xaa, 0x9e, 0x50, 0x15,
5179 0x05, 0x70, 0xca, 0xc7, 0xcc, 0x2b, 0x55, 0xee, 0x1e, 0x7a, 0xc9, 0x14,
5180 0x14, 0x40, 0x3e, 0x28, 0xda, 0xe2, 0xf2, 0xf0, 0x3c, 0x70, 0x0b, 0x0f,
5181 0xa2, 0x16, 0x76, 0x64, 0xf2, 0xe0, 0xf3, 0x18, 0x00, 0x07, 0xcf, 0x5c,
5182 0xeb, 0x8b, 0xff, 0x46, 0x93, 0xc3, 0x8f, 0x20, 0xb0, 0x3a, 0xdc, 0x0f,
5183 0x1b, 0x53, 0xa3, 0xa9, 0xb6, 0xe9, 0xac, 0x1b, 0xea, 0xa8, 0x33, 0x64,
5184 0xd4, 0xac, 0x3a, 0x47, 0x9c, 0xdf, 0x69, 0x29, 0xcd, 0x27, 0x47, 0xd4,
5185 0x1b, 0x36, 0x80, 0xaf, 0xa9, 0x73, 0xfe, 0x92, 0xdc, 0x36, 0xdc, 0xbd,
5186 0xcb, 0x04, 0x07, 0x26, 0xaa, 0x55, 0xf9, 0x60, 0x3b, 0xb7, 0x91, 0x84,
5187 0x24, 0x41, 0x5a, 0xda, 0x45, 0xf3, 0xe9, 0xbb, 0x59, 0x2d, 0xd8, 0x19,
5188 0x54, 0x68, 0x50, 0xfc, 0x66, 0x55, 0x48, 0x16, 0x8f, 0x26, 0x9a, 0x2a,
5189 0xef, 0x57, 0x91, 0x70, 0x9f, 0xeb, 0x1d, 0x2e, 0x3b, 0x14, 0x53, 0xc1,
5190 0x51, 0xe9, 0x64, 0xa1, 0x88, 0xa8, 0x49, 0x91, 0xdf, 0xd2, 0xde, 0xe5,
5191 0xd7, 0x70, 0x5f, 0xe1, 0xd9, 0x97, 0xb3, 0xc1, 0x9c, 0xcc, 0x74, 0x92,
5192 0x0b, 0x3d, 0x4a, 0x07, 0x1d, 0x92, 0xa3, 0x40, 0x55, 0xb8, 0xab, 0x37,
5193 0x42, 0x85, 0xa4, 0x4e, 0x8a, 0x12, 0xab, 0xf2, 0x84, 0x4f, 0x86, 0xcb,
5194 0x3e, 0xf9, 0xf8, 0x6f, 0xcb, 0xbd, 0x6b, 0xe4, 0x82, 0xff, 0x7d, 0x32,
5195 0xe4, 0xc4, 0x22, 0x94, 0xa1, 0x8e, 0x25, 0xaf, 0x09, 0x93, 0x1c, 0x02,
5196 0x2f, 0x48, 0xaa, 0x44, 0xbd, 0x33, 0x62, 0xac, 0xe9, 0x0c, 0x02, 0x4f,
5197 0xe7, 0xd0, 0x27, 0x46, 0xfa, 0x7a, 0xc4, 0x12, 0xa7, 0x10, 0xb7, 0xfe,
5198 0xcc, 0x13, 0x0b, 0xc7, 0x72, 0xb6, 0x20, 0x89, 0xa3, 0x6d, 0xde, 0xb1,
5199 0x31, 0xec, 0x8c, 0x25, 0xb9, 0xd0, 0xc2, 0x28, 0xe4, 0xe5, 0x41, 0x2e,
5200 0x39, 0x92, 0x19, 0xd4, 0xc5, 0xf6, 0xa7, 0x30, 0x13, 0x4f, 0xbe, 0xd4,
5201 0xd2, 0x24, 0x42, 0xb6, 0xe7, 0xe2, 0x26, 0x82, 0x08, 0x70, 0x40, 0x73,
5202 0x66, 0x62, 0x0a, 0x75, 0x06, 0xba, 0x36, 0x8a, 0x8e, 0x39, 0x08, 0xd2,
5203 0x71, 0xbf, 0x34, 0xf8, 0x32, 0xc6, 0x98, 0x2a, 0xcd, 0x89, 0x24, 0xf8,
5204 0xe9, 0x6d, 0x3d, 0x8e, 0xe4, 0xc2, 0xe8, 0x12, 0x5d, 0x5d, 0xb9, 0xba,
5205 0xce, 0xbb, 0x76, 0x59, 0x29, 0x6f, 0x82, 0x92, 0x35, 0xba, 0x1f, 0x39,
5206 0x9a, 0xbd, 0x57, 0x1e, 0xb2, 0x33, 0x90, 0xf0, 0x9d, 0x5c, 0x83, 0x3b,
5207 0x0c, 0x77, 0xf4, 0x26, 0xf2, 0x0f, 0x0d, 0x82, 0xbf, 0xef, 0x7f, 0xb6,
5208 0x63, 0x50, 0x14, 0x26, 0x4c, 0x08, 0x9f, 0x41, 0x4c, 0xaa, 0xe3, 0xfa,
5209 0x06, 0x62, 0x85, 0xbc, 0x72, 0x8f, 0x36, 0xd9, 0x31, 0x9f, 0x8f, 0x9e,
5210 0x6e, 0xd5, 0xe4, 0xa5, 0x9a, 0x2f, 0xda, 0xf6, 0xe0, 0x9b, 0xcb, 0xd3,
5211 0xd7, 0x51, 0xcb, 0x0e, 0x14, 0x4f, 0x05, 0x7e, 0x57, 0xff, 0xd5, 0xbf,
5212 0x62, 0x0f, 0xd2, 0x2f, 0x4e, 0x4e, 0xc6, 0xb0, 0x06, 0x15, 0xe3, 0xd8,
5213 0x0a, 0x35, 0x8b, 0x15, 0x08, 0x11, 0x24, 0x4b, 0x30, 0xa9, 0xd8, 0xf2,
5214 0xa0, 0xbf, 0x57, 0xf9, 0x34, 0x9f, 0x33, 0xe6, 0x9f, 0x5f, 0x4a, 0xb4,
5215 0xdc, 0x36, 0xee, 0xcc, 0xcc, 0x7a, 0x38, 0x87, 0x56, 0x5a, 0x26, 0x2d,
5216 0xa8, 0xc0, 0x52, 0x93, 0xda, 0x9c, 0x4a, 0x51, 0xd2, 0x3c, 0x3e, 0x2b,
5217 0xb8, 0xac, 0xe7, 0x4c, 0x4f, 0x9a, 0x14, 0x8c, 0xa5, 0x6c, 0x60, 0xa8,
5218 0x1b, 0xec, 0x36, 0x45, 0x5e, 0x49, 0x2b, 0xdf, 0x42, 0x4b, 0x65, 0x38,
5219 0x75, 0x68, 0x9e, 0xa0, 0x6c, 0x96, 0x17, 0xf0, 0x8b, 0x06, 0xbc, 0x4e,
5220 0xcc, 0x8a, 0xb8, 0x02, 0x1e, 0x80, 0xbb, 0xf7, 0xd0, 0x71, 0x53, 0xba,
5221 0xc9, 0x25, 0x16, 0x8f, 0x69, 0x66, 0xad, 0x24, 0x00, 0x5a, 0xa0, 0xeb,
5222 0x84, 0x0c, 0x48, 0x04, 0xc2, 0xab, 0x92, 0x70, 0xa1, 0xba, 0xf0, 0x71,
5223 0xae, 0x30, 0x9e, 0xc0, 0xa1, 0x3d, 0x6b, 0xd6, 0x51, 0x7a, 0xbd, 0x8e,
5224 0xc2, 0x0f, 0x71, 0xc2, 0xa6, 0xc5, 0xc9, 0x3d, 0x72, 0xc6, 0xa6, 0xa8,
5225 0x99, 0x26, 0x2d, 0x6c, 0x47, 0xfe, 0x59, 0xcd, 0xd4, 0x24, 0x69, 0xfb,
5226 0x17, 0x60, 0xd8, 0x38, 0x40, 0xcc, 0xc0, 0xd4, 0x32, 0xeb, 0xdf, 0xb6,
5227 0x3d, 0xd3, 0x81, 0x25, 0xb9, 0x1e, 0x3c, 0xcd, 0xa3, 0xf9, 0x5f, 0xc0,
5228 0x5e, 0xe8, 0x76, 0x5e, 0xce, 0xf6, 0xa5, 0x7a, 0x66, 0x3a, 0x91, 0x6b,
5229 0xdf, 0x21, 0xb3, 0xd8, 0x7c, 0x37, 0xb9, 0x3e, 0x14, 0x12, 0xdf, 0x95,
5230 0xd5, 0x2c, 0x67, 0x1a, 0x20, 0xc3, 0x62, 0x14, 0x76, 0x94, 0xff, 0xc7,
5231 0x3f, 0xda, 0x28, 0xd3, 0x1f, 0x7f, 0x12, 0xff, 0x9e, 0xe4, 0x6f, 0xf9,
5232 0x90, 0x84, 0xc9, 0x51, 0xe9, 0x59, 0x49, 0x79, 0xc5, 0x38, 0x63, 0x5a,
5233 0x86, 0x28, 0xfb, 0xa9, 0x69, 0xb7, 0x6a, 0x00, 0x41, 0xcf, 0x61, 0xed,
5234 0x9b, 0x1d, 0x02, 0x20, 0x66, 0x0a, 0x0a, 0x1f, 0xab, 0x8b, 0x6b, 0x02,
5235 0x92, 0x7f, 0x49, 0xc8, 0x5b, 0x47, 0x8f, 0x66, 0xe9, 0x8e, 0xca, 0xbb,
5236 0x65, 0x59, 0x8b, 0x9c, 0x67, 0x26, 0x11, 0x24, 0xf4, 0x9f, 0x8f, 0x99,
5237 0x53, 0xa9, 0x3f, 0xd1, 0xa6, 0x9e, 0x91, 0x85, 0xd6, 0x94, 0xb1, 0xff,
5238 0xa0, 0x2d, 0x36, 0xa8, 0xee, 0xf3, 0x7f, 0x8c, 0x38, 0xdc, 0x0d, 0x2d,
5239 0x3c, 0xcc, 0xa5, 0x34, 0xd6, 0xbb, 0xdf, 0xef, 0xf2, 0x7d, 0xab, 0xd7,
5240 0x2e, 0x08, 0x86, 0x19, 0xb0, 0x35, 0x77, 0x49, 0xa0, 0x6b, 0x98, 0x6e,
5241 0xea, 0x9f, 0xe3, 0xaf, 0x0c, 0xf8, 0x3c, 0xf8, 0xc7, 0x88, 0xff, 0xfc,
5242 0x71, 0x77, 0xf8, 0xec, 0x27, 0xf7, 0xd5, 0xdf, 0xef, 0xbe, 0xfb, 0xfd,
5243 0x5e, 0xaf, 0xb3, 0x7e, 0x1a, 0x5f, 0x49, 0x57, 0x46, 0xa1, 0x6b, 0x56,
5244 0xbc, 0x96, 0x4b, 0x95, 0xa8, 0x91, 0x5e, 0xf9, 0x3d, 0xb3, 0x23, 0x48,
5245 0x63, 0xdb, 0x10, 0x45, 0x76, 0x05, 0x7e, 0x80, 0xa1, 0x2d, 0xac, 0x3e,
5246 0x14, 0x5c, 0x68, 0xb4, 0x18, 0x8f, 0x78, 0x72, 0x80, 0x39, 0x31, 0x9f,
5247 0x72, 0xcb, 0x7d, 0x8d, 0x24, 0xdc, 0xd9, 0x03, 0x1d, 0x7a, 0xc2, 0x4a,
5248 0x33, 0x72, 0xc1, 0x34, 0x33, 0x25, 0xad, 0x90, 0xaa, 0xe4, 0xa8, 0x6f,
5249 0xba, 0xe3, 0x9f, 0x33, 0x99, 0xb7, 0xba, 0xdc, 0x43, 0xde, 0x2f, 0xe7,
5250 0x65, 0x5e, 0x4b, 0xc5, 0x60, 0x27, 0x8b, 0xb0, 0xfb, 0xa3, 0xab, 0xc9,
5251 0x0c, 0xf3, 0x81, 0xed, 0x13, 0xeb, 0x90, 0x82, 0xf2, 0xd8, 0x5a, 0x42,
5252 0xcd, 0x91, 0xae, 0xe1, 0x57, 0xf7, 0x09, 0x4c, 0xd9, 0x16, 0xa9, 0xd9,
5253 0x99, 0xf3, 0x72, 0x89, 0x07, 0x2d, 0xe0, 0xde, 0x0b, 0x5f, 0x0f, 0x82,
5254 0x61, 0x89, 0xf8, 0xf8, 0x90, 0x2c, 0x57, 0xb5, 0xf3, 0xe0, 0x46, 0x5b,
5255 0x5d, 0x00, 0xb2, 0xb0, 0x2d, 0x4b, 0xfa, 0x57, 0xa4, 0x4f, 0x54, 0x0a,
5256 0xd5, 0xaf, 0x5c, 0x15, 0x85, 0x97, 0x86, 0xb5, 0xff, 0xba, 0x8c, 0x54,
5257 0x57, 0xe3, 0x67, 0xe0, 0xf8, 0xb0, 0x92, 0x79, 0xd9, 0x96, 0x8d, 0x43,
5258 0x86, 0xf5, 0x32, 0xb7, 0x43, 0x85, 0xa4, 0x8b, 0x41, 0x18, 0xe5, 0x76,
5259 0x70, 0xf3, 0xf8, 0xce, 0x97, 0x85, 0xb4, 0x3d, 0xaa, 0x10, 0xaa, 0x76,
5260 0xfa, 0xb2, 0x86, 0x21, 0xea, 0x9e, 0x0b, 0x17, 0xa3, 0x8e, 0x1d, 0xcf,
5261 0xb6, 0x47, 0x8b, 0x07, 0x79, 0x23, 0x5d, 0x3a, 0x14, 0xd4, 0x8b, 0x50,
5262 0x4f, 0x82, 0xeb, 0x6e, 0xf4, 0x20, 0x88, 0x66, 0x69, 0xfa, 0x23, 0x3f,
5263 0x2b, 0xf9, 0xf0, 0x5d, 0xb4, 0x8e, 0x4e, 0xdb, 0xb4, 0xe9, 0x85, 0xb8,
5264 0x58, 0xed, 0xef, 0xba, 0x76, 0xe8, 0x3f, 0xbb, 0x41, 0x3f, 0xb8, 0x43,
5265 0x87, 0xcb, 0x81, 0x9d, 0x8f, 0x15, 0x63, 0x9f, 0xe6, 0x5d, 0xfe, 0x0b,
5266 0xd2, 0xca, 0x08, 0x78, 0xcb, 0xa9, 0x6b, 0xc7, 0xd2, 0xe6, 0xf0, 0xbd,
5267 0x7b, 0xb7, 0x2b, 0x93, 0x01, 0x80, 0xaa, 0x16, 0xe4, 0x20, 0x1b, 0x5a,
5268 0x53, 0xb0, 0xa0, 0x8c, 0x4d, 0x51, 0x4b, 0x74, 0x49, 0x1a, 0x00, 0x3a,
5269 0xe2, 0x6a, 0xdc, 0x1a, 0xd1, 0x08, 0x7f, 0x67, 0x0d, 0x0f, 0x2b, 0x8f,
5270 0x77, 0x41, 0x6b, 0x39, 0x37, 0xb4, 0x7c, 0x5a, 0x29, 0xeb, 0x3e, 0x68,
5271 0xdd, 0xb0, 0xd5, 0x1c, 0x18, 0x47, 0xa9, 0x12, 0xe9, 0x2b, 0xad, 0x3a,
5272 0x94, 0xf4, 0xd5, 0x78, 0x49, 0x1f, 0x8a, 0x05, 0x56, 0x04, 0x46, 0x22,
5273 0xb7, 0x5c, 0x52, 0xee, 0x58, 0xbd, 0x5c, 0x87, 0x67, 0x6f, 0xde, 0x1c,
5274 0x1f, 0x5e, 0x7a, 0xcc, 0x78, 0x07, 0x9e, 0xc1, 0x99, 0x13, 0x2e, 0x9e,
5275 0xaf, 0x66, 0x8b, 0xe0, 0xf2, 0x15, 0x7a, 0xa5, 0xee, 0x04, 0x73, 0xbb,
5276 0xeb, 0x16, 0x64, 0x33, 0xa1, 0xfb, 0xd0, 0x13, 0x19, 0x8a, 0x33, 0x49,
5277 0x13, 0xd0, 0xb9, 0xb2, 0xa9, 0xaa, 0xf2, 0x60, 0x69, 0x5d, 0xfd, 0x19,
5278 0x01, 0x01, 0xae, 0x83, 0x23, 0x28, 0x75, 0x3f, 0xec, 0xd8, 0x7a, 0xe5,
5279 0x2b, 0x2d, 0x2e, 0x90, 0x17, 0xdb, 0x7c, 0x7b, 0x49, 0x32, 0x00, 0x88,
5280 0x73, 0xd8, 0xe8, 0xf7, 0x56, 0x48, 0xaf, 0x3d, 0x87, 0x5a, 0x58, 0x4f,
5281 0x52, 0xd7, 0xa8, 0x71, 0x07, 0xac, 0x50, 0x63, 0x72, 0xe1, 0xb3, 0x36,
5282 0x70, 0xb9, 0xf3, 0xd5, 0x0c, 0x38, 0x7e, 0xd5, 0x22, 0xb2, 0xe1, 0xdf,
5283 0x4f, 0x0d, 0xca, 0x2f, 0x6c, 0x09, 0x8e, 0xa0, 0xcb, 0xd8, 0xfa, 0x59,
5284 0x6a, 0x6c, 0x1e, 0x41, 0xf3, 0xb2, 0x2e, 0x9f, 0x44, 0x4a, 0xf4, 0xf5,
5285 0x83, 0x1b, 0xa3, 0x03, 0x5d, 0x08, 0xec, 0xbb, 0xa8, 0x0c, 0xa7, 0x5b,
5286 0x2b, 0xb7, 0x84, 0x2a, 0x8f, 0xeb, 0xe8, 0xbe, 0xc4, 0xd4, 0xab, 0x50,
5287 0x9e, 0x24, 0x64, 0xb3, 0xb3, 0x16, 0x85, 0xe9, 0x29, 0xad, 0x1a, 0xfd,
5288 0xe4, 0xb5, 0xaa, 0x37, 0xe7, 0x96, 0xa8, 0x95, 0xdd, 0xd8, 0x3a, 0xf8,
5289 0x1d, 0xb5, 0x5d, 0x77, 0x95, 0xaa, 0x74, 0xc4, 0xf5, 0xb2, 0x98, 0xf5,
5290 0xae, 0xa7, 0x81, 0xd5, 0x5a, 0x62, 0xaa, 0x7b, 0x9b, 0x66, 0x22, 0xe8,
5291 0x70, 0x5b, 0x59, 0xd8, 0x11, 0xa9, 0xb6, 0x38, 0xaf, 0xd7, 0xe6, 0xdb,
5292 0x2c, 0x7d, 0x8f, 0x1b, 0x76, 0x3b, 0xfd, 0xd8, 0x35, 0xb5, 0xbe, 0x57,
5293 0xbd, 0xdd, 0xe7, 0x7b, 0xa3, 0xdd, 0x4f, 0x3e, 0x1b, 0xed, 0xee, 0x8c,
5294 0x76, 0x7b, 0x21, 0x1a, 0x05, 0x01, 0x44, 0x0e, 0xf9, 0x85, 0xed, 0x74,
5295 0x5c, 0x7f, 0xbb, 0x6e, 0xd9, 0xe1, 0x07, 0x16, 0x0f, 0xa3, 0x20, 0x0c,
5296 0xdb, 0xfa, 0x84, 0x86, 0x6a, 0x9b, 0x2d, 0x0f, 0x03, 0x85, 0x0f, 0x51,
5297 0x5b, 0x72, 0xcc, 0xba, 0xab, 0x4a, 0x90, 0xe5, 0x83, 0xba, 0xea, 0x40,
5298 0x5d, 0x0c, 0xd1, 0x01, 0xa4, 0xa9, 0xbb, 0x66, 0x90, 0xfb, 0xbe, 0xb3,
5299 0xfa, 0xff, 0x69, 0x2c, 0x07, 0x7b, 0xe8, 0xdc, 0x36, 0x54, 0x2f, 0x93,
5300 0xf3, 0x65, 0x72, 0x6d, 0x21, 0x4d, 0x04, 0x73, 0x45, 0xc6, 0x46, 0xce,
5301 0xa7, 0x07, 0xe7, 0x71, 0xa8, 0x7b, 0xad, 0x36, 0x92, 0x35, 0x87, 0xa2,
5302 0x44, 0x3e, 0x3f, 0x25, 0x54, 0xb8, 0x68, 0xd9, 0xe5, 0x27, 0x85, 0x85,
5303 0xa5, 0xf8, 0x82, 0x84, 0x17, 0x19, 0x88, 0x9b, 0x84, 0x21, 0x31, 0x7e,
5304 0xe7, 0xcf, 0x7f, 0xf6, 0x3a, 0x6a, 0xcc, 0xf0, 0x33, 0x2d, 0xfb, 0x00,
5305 0xff, 0xc0, 0x33, 0x7f, 0x11, 0x10, 0x90, 0x7e, 0xd4, 0xdb, 0xff, 0x11,
5306 0x20, 0xb5, 0x9f, 0x86, 0x3f, 0xd2, 0x3f, 0x7f, 0xea, 0x39, 0x45, 0x09,
5307 0x3c, 0x84, 0x18, 0x41, 0x6e, 0xf0, 0xb2, 0x44, 0x03, 0x8c, 0xa5, 0x72,
5308 0x35, 0xaa, 0x90, 0xd1, 0xc2, 0xae, 0x5b, 0xec, 0x46, 0x41, 0x36, 0xfb,
5309 0xac, 0x87, 0xd8, 0x00, 0xee, 0xb8, 0x29, 0x93, 0xa4, 0xb8, 0xb9, 0x14,
5310 0xd6, 0x21, 0xff, 0xd2, 0xc0, 0xd8, 0x17, 0xf9, 0x62, 0x52, 0x88, 0x5d,
5311 0x67, 0x10, 0x78, 0x55, 0xcf, 0x9c, 0x51, 0xe0, 0x8a, 0x24, 0xea, 0xcf,
5312 0x36, 0x5c, 0xf6, 0x19, 0xc3, 0x30, 0xad, 0xa2, 0x91, 0xc4, 0xe5, 0xc4,
5313 0xcb, 0x95, 0xb8, 0x90, 0x79, 0x9a, 0xb1, 0x1d, 0x6c, 0x8a, 0xb8, 0x48,
5314 0xcb, 0x5b, 0x1e, 0xa2, 0x42, 0x8d, 0x25, 0x7d, 0x74, 0x23, 0x00, 0x85,
5315 0xa0, 0x6f, 0x06, 0xcf, 0xe5, 0xa0, 0x92, 0x51, 0x61, 0x85, 0x5e, 0x16,
5316 0xd6, 0x64, 0xd1, 0x8b, 0xe5, 0x4d, 0x41, 0xed, 0x3e, 0x92, 0xb5, 0x4f,
5317 0x4f, 0xc9, 0x33, 0x4e, 0x6a, 0x83, 0xb4, 0xf4, 0xdf, 0x10, 0xee, 0xc9,
5318 0xe9, 0x3d, 0x4f, 0x76, 0x76, 0x9b, 0xe6, 0x28, 0x94, 0xbc, 0xa1, 0x3c,
5319 0x0a, 0x54, 0xb9, 0x27, 0x19, 0xe5, 0xb2, 0x8e, 0xd1, 0xde, 0x27, 0xbb,
5320 0x9f, 0x6c, 0x93, 0xfe, 0x78, 0x32, 0xda, 0x0b, 0xe9, 0x9b, 0x68, 0x73,
5321 0xd1, 0xd7, 0x2b, 0xa9, 0x02, 0xdf, 0x9d, 0xda, 0xc5, 0xbe, 0x57, 0x6a,
5322 0x2e, 0xa8, 0xad, 0xa0, 0xcc, 0x92, 0xfe, 0x42, 0x1d, 0x73, 0x16, 0x5a,
5323 0x88, 0xdc, 0x1a, 0x75, 0x14, 0x0c, 0x62, 0x3b, 0x86, 0xbb, 0xa2, 0xfe,
5324 0x97, 0x15, 0x88, 0xc2, 0x56, 0x93, 0x94, 0x0e, 0xfc, 0x8a, 0xab, 0xe0,
5325 0x31, 0xe5, 0x5d, 0x32, 0x71, 0xfc, 0x96, 0x92, 0xbc, 0x14, 0x94, 0xd2,
5326 0x5c, 0x83, 0x9b, 0x37, 0xdf, 0x41, 0x48, 0x61, 0x28, 0x00, 0xb1, 0x54,
5327 0x08, 0xd8, 0xc0, 0x57, 0xc8, 0x47, 0x31, 0x97, 0xb1, 0xf9, 0xda, 0x08,
5328 0xe0, 0xe2, 0xee, 0x63, 0x49, 0x10, 0xde, 0xe2, 0x87, 0x8e, 0x25, 0x79,
5329 0x0f, 0x53, 0x09, 0x67, 0xa3, 0xfe, 0x40, 0x4a, 0x53, 0x89, 0x53, 0x86,
5330 0xa5, 0x99, 0xc7, 0xdd, 0x45, 0x3a, 0x6c, 0x2e, 0xb8, 0xba, 0x9e, 0x52,
5331 0x02, 0x0c, 0x06, 0x2e, 0x8b, 0xcb, 0x55, 0xa2, 0x7b, 0xd0, 0x07, 0x0e,
5332 0xc6, 0xde, 0xe9, 0x15, 0x7a, 0x8c, 0xa6, 0x59, 0x04, 0x62, 0xef, 0x7f,
5333 0x27, 0x81, 0xd8, 0xfb, 0x7f, 0x02, 0xf1, 0xdf, 0x29, 0x10, 0xcf, 0x1b,
5334 0x02, 0xc1, 0x97, 0x05, 0xd2, 0x60, 0x76, 0x67, 0xf8, 0xbc, 0x53, 0x34,
5335 0x8c, 0xa3, 0x2b, 0x38, 0xc5, 0x24, 0xb4, 0x80, 0xe2, 0x45, 0xfe, 0xbe,
5336 0xa1, 0xd6, 0x58, 0xe9, 0xd3, 0x8b, 0xdb, 0x7c, 0xf4, 0x5c, 0x77, 0x39,
5337 0x9e, 0x8f, 0xa2, 0x73, 0xf7, 0x1a, 0xfb, 0xb7, 0xf8, 0x67, 0x2b, 0x84,
5338 0x2c, 0xe6, 0xc9, 0x15, 0xd6, 0x01, 0x87, 0xd0, 0x00, 0xbf, 0xc4, 0x19,
5339 0xc9, 0x2c, 0x25, 0xcd, 0xe1, 0x49, 0x94, 0x43, 0xa2, 0x08, 0x68, 0x45,
5340 0xaa, 0xff, 0x5a, 0x8f, 0xe4, 0xa2, 0xcd, 0x19, 0x61, 0x74, 0x50, 0xf6,
5341 0x07, 0x51, 0xc8, 0xe0, 0xd6, 0x55, 0x6d, 0xfb, 0x2a, 0x7d, 0x2f, 0x4e,
5342 0xb1, 0x9f, 0x93, 0x22, 0x8f, 0x0c, 0x00, 0xa0, 0x19, 0xaa, 0x60, 0x5f,
5343 0xb5, 0x33, 0xc0, 0xff, 0x90, 0xbf, 0xdb, 0x32, 0x21, 0xff, 0x0c, 0x6e,
5344 0x67, 0x49, 0x4a, 0xe6, 0x1c, 0x0a, 0xeb, 0x0f, 0xcb, 0xc2, 0x6c, 0x96,
5345 0x9a, 0x5f, 0xc6, 0xcf, 0x9c, 0xd9, 0x3b, 0xc0, 0x20, 0x56, 0x1d, 0xf5,
5346 0x65, 0x79, 0x66, 0x36, 0xab, 0x8e, 0x12, 0xba, 0xe9, 0x95, 0x64, 0x77,
5347 0x49, 0x77, 0x1c, 0x1b, 0xdc, 0xa8, 0xc3, 0x08, 0x3b, 0x4a, 0xf8, 0x4a,
5348 0x1b, 0x76, 0x68, 0x20, 0xe5, 0xb1, 0xf4, 0x5a, 0xe7, 0xa2, 0xcf, 0x3e,
5349 0x6a, 0xe4, 0xbb, 0xd8, 0xee, 0x52, 0xbd, 0xcf, 0x55, 0x47, 0x20, 0xfa,
5350 0xa5, 0x9b, 0x06, 0x11, 0xd9, 0xfa, 0x64, 0x6c, 0x82, 0xfd, 0xd1, 0xdc,
5351 0x4a, 0xf8, 0xe4, 0xc7, 0x4c, 0x03, 0xee, 0xc3, 0xb8, 0x91, 0x95, 0xab,
5352 0xc9, 0xdf, 0xd4, 0xdc, 0x67, 0x84, 0x92, 0x10, 0x65, 0x86, 0x9c, 0xdc,
5353 0xc2, 0x3a, 0xb8, 0x9a, 0xa8, 0x17, 0xa4, 0xdd, 0x1c, 0xfd, 0x10, 0x1e,
5354 0x2f, 0xc7, 0x7c, 0xa8, 0x72, 0xa6, 0xd1, 0x33, 0xee, 0x53, 0x6b, 0x50,
5355 0x41, 0x08, 0xa8, 0xb5, 0xee, 0xb6, 0x9f, 0xd8, 0x1c, 0x2c, 0x95, 0x3b,
5356 0x2e, 0x5c, 0x2c, 0x37, 0x9b, 0x6a, 0xa1, 0x58, 0xb0, 0x8b, 0x1f, 0x5f,
5357 0xdb, 0x16, 0x89, 0xeb, 0x80, 0xbd, 0x90, 0xe5, 0xe0, 0xcf, 0xfc, 0x9f,
5358 0x6e, 0x6b, 0xb8, 0xc6, 0xb8, 0x61, 0x91, 0x71, 0x7e, 0x1c, 0x7b, 0x03,
5359 0xaf, 0xaf, 0xfb, 0xc0, 0x4b, 0xfe, 0xad, 0x7c, 0xe1, 0xf1, 0xb6, 0xe1,
5360 0x67, 0xfc, 0x05, 0x1f, 0x78, 0x9b, 0x49, 0x8e, 0x42, 0xa8, 0x21, 0x96,
5361 0x9a, 0xe5, 0x84, 0xd2, 0x37, 0x71, 0x91, 0x49, 0x60, 0x3b, 0xac, 0xeb,
5362 0x52, 0x72, 0x62, 0x60, 0xd5, 0xc1, 0x94, 0xca, 0xdc, 0x33, 0x73, 0xd6,
5363 0xb2, 0x73, 0x86, 0xbd, 0xa9, 0xd7, 0xd8, 0xd8, 0x06, 0x2c, 0x08, 0xbc,
5364 0xcc, 0x2b, 0xf3, 0x77, 0x45, 0x33, 0x36, 0x2c, 0x0b, 0x3e, 0x22, 0xba,
5365 0xe8, 0x81, 0x6c, 0x21, 0x7c, 0xe9, 0x16, 0x6e, 0x19, 0xf7, 0xeb, 0xd5,
5366 0x92, 0x85, 0x27, 0xc4, 0x20, 0xc1, 0x86, 0x74, 0x92, 0x8b, 0x4f, 0x37,
5367 0xc3, 0x45, 0x88, 0x66, 0xe0, 0xc4, 0x73, 0xac, 0x09, 0x77, 0x79, 0xca,
5368 0x8c, 0x3a, 0x51, 0x52, 0x14, 0x1d, 0x85, 0x9d, 0x3e, 0x2e, 0xa9, 0x60,
5369 0x10, 0x70, 0xfc, 0xc6, 0x65, 0x88, 0x05, 0x6d, 0xc7, 0x6a, 0xfd, 0x9d,
5370 0x2a, 0x06, 0xff, 0x32, 0x53, 0x69, 0x64, 0x71, 0x65, 0x5b, 0xcc, 0x2f,
5371 0x03, 0xba, 0x29, 0x5c, 0x7b, 0x0c, 0x4c, 0x9d, 0x26, 0xed, 0xf0, 0x17,
5372 0xfc, 0xb5, 0xdd, 0xf9, 0x48, 0x8d, 0x64, 0x85, 0xbd, 0xd6, 0x79, 0x22,
5373 0xe9, 0x0a, 0x1f, 0x3c, 0x55, 0x82, 0x14, 0x69, 0xa7, 0x02, 0xc0, 0xd8,
5374 0xe4, 0xa4, 0x45, 0x4f, 0xcc, 0xd8, 0x27, 0x0f, 0x8c, 0xba, 0x52, 0xaa,
5375 0x4c, 0x92, 0x25, 0x4b, 0xeb, 0x3e, 0xd4, 0xab, 0x05, 0xbb, 0x7d, 0x48,
5376 0xd5, 0x97, 0x12, 0x9c, 0xff, 0x85, 0x43, 0x79, 0xff, 0x30, 0x8c, 0xb3,
5377 0x07, 0x8e, 0x85, 0x3d, 0x72, 0x2c, 0xb2, 0x22, 0x07, 0x08, 0x9b, 0x24,
5378 0x26, 0x15, 0x7a, 0xc2, 0x06, 0x68, 0xc8, 0xe2, 0xa6, 0xe0, 0x8f, 0x20,
5379 0x1d, 0xb3, 0x6a, 0x79, 0x76, 0xb4, 0x72, 0xa9, 0x7a, 0x76, 0x2a, 0x9f,
5380 0x92, 0x6d, 0x31, 0x70, 0xe3, 0xda, 0x96, 0x52, 0x3e, 0x92, 0x50, 0x29,
5381 0xf5, 0x96, 0xd9, 0x5f, 0xdc, 0x6d, 0x80, 0x6d, 0x3b, 0x02, 0x88, 0x82,
5382 0xb9, 0x3d, 0x87, 0xa4, 0xeb, 0x96, 0x8d, 0x8c, 0xca, 0x27, 0x5d, 0x43,
5383 0x06, 0x25, 0xfd, 0x07, 0xec, 0x00, 0xfe, 0xfe, 0xda, 0x0c, 0xc0, 0x60,
5384 0xa4, 0x36, 0xb2, 0x75, 0x61, 0x21, 0x19, 0xa5, 0x0e, 0xf2, 0xad, 0x60,
5385 0x7a, 0xd1, 0x22, 0xc8, 0x31, 0x58, 0xcd, 0xf0, 0xb4, 0x04, 0x5f, 0x12,
5386 0x2c, 0x5f, 0x6b, 0xc0, 0xbe, 0xb8, 0x0a, 0xe3, 0x64, 0xf0, 0xa4, 0xdb,
5387 0x11, 0xa6, 0x7d, 0xbb, 0x57, 0x85, 0x87, 0xd4, 0x8e, 0x6c, 0x96, 0xf2,
5388 0x21, 0xee, 0x58, 0x5a, 0xc7, 0x5e, 0xca, 0x1c, 0xcd, 0x10, 0x62, 0xfd,
5389 0xa0, 0x58, 0xa3, 0xe3, 0x12, 0x8e, 0xed, 0x9c, 0xa3, 0x7f, 0x7a, 0x92,
5390 0xe4, 0xfb, 0x1d, 0xb3, 0xa4, 0x1f, 0xeb, 0x24, 0x08, 0xd1, 0x69, 0xc2,
5391 0x2c, 0xb5, 0x46, 0xb4, 0x0e, 0x53, 0xba, 0x66, 0x50, 0xeb, 0x50, 0xa5,
5392 0xcd, 0xb5, 0xef, 0xca, 0xa6, 0x7c, 0x44, 0xcc, 0x65, 0x74, 0x59, 0x0d,
5393 0x03, 0x59, 0x1b, 0x60, 0x13, 0xa3, 0xe3, 0x9e, 0x54, 0xc6, 0xa0, 0x70,
5394 0x8c, 0x8f, 0x5f, 0x85, 0x5c, 0xe0, 0xfa, 0x23, 0x07, 0xdc, 0x01, 0x9d,
5395 0x88, 0xfe, 0xc5, 0x55, 0x04, 0x48, 0xa3, 0x36, 0x44, 0x7c, 0xa5, 0x36,
5396 0x94, 0x0e, 0x37, 0x5d, 0x6b, 0xf1, 0x76, 0x47, 0x3b, 0xd0, 0xb6, 0xef,
5397 0x1f, 0x10, 0x9b, 0xdc, 0xe7, 0x73, 0xeb, 0xa7, 0xa6, 0xd2, 0x7d, 0xab,
5398 0x6a, 0xd6, 0xfb, 0x67, 0x31, 0x2e, 0x7e, 0x57, 0x3b, 0x65, 0xf4, 0x4e,
5399 0xb5, 0x54, 0x72, 0xd9, 0x47, 0x8f, 0xf2, 0xe1, 0x21, 0x53, 0xcb, 0xe8,
5400 0xf0, 0x38, 0x71, 0x1c, 0xef, 0xef, 0xee, 0x7c, 0xb6, 0xd3, 0xcd, 0x36,
5401 0x01, 0x1b, 0xc2, 0xc7, 0xce, 0x1d, 0x59, 0x25, 0xec, 0x43, 0x63, 0x31,
5402 0x09, 0xc2, 0x22, 0x7a, 0x48, 0x72, 0x54, 0xa4, 0x4b, 0xf3, 0x23, 0x46,
5403 0x92, 0xaa, 0xf7, 0x50, 0x5d, 0x6e, 0x2e, 0x93, 0xde, 0xa2, 0x09, 0xce,
5404 0x8d, 0xef, 0x62, 0x05, 0x1d, 0x69, 0x9b, 0xbe, 0xd2, 0x5e, 0x6d, 0x6e,
5405 0xcc, 0x78, 0xaf, 0x55, 0xa6, 0x33, 0xad, 0xa2, 0x0f, 0xee, 0xd6, 0x16,
5406 0x65, 0x35, 0x79, 0x84, 0xcb, 0xf1, 0x6b, 0x26, 0x39, 0x14, 0xc4, 0x07,
5407 0x68, 0x09, 0x3f, 0x96, 0xc9, 0x71, 0x4d, 0xc5, 0xa8, 0xff, 0x76, 0x1a,
5408 0xc7, 0xbf, 0x5b, 0x7b, 0x56, 0x29, 0xc0, 0x53, 0xb7, 0x7b, 0xca, 0xfa,
5409 0x3c, 0xab, 0x15, 0xf5, 0x51, 0xf6, 0x1d, 0xb9, 0x7c, 0x83, 0x71, 0xb7,
5410 0xcd, 0xed, 0xe6, 0xf9, 0xfd, 0x5d, 0x3a, 0x17, 0x0a, 0xf8, 0xc6, 0x33,
5411 0xe3, 0x31, 0x54, 0xe6, 0x28, 0x44, 0xf8, 0x42, 0xc2, 0xf4, 0x36, 0x5d,
5412 0x82, 0x25, 0x91, 0x69, 0x37, 0xba, 0x08, 0xb0, 0xcb, 0x24, 0x2e, 0xc8,
5413 0xaa, 0xe2, 0x58, 0x6e, 0x30, 0xb8, 0xff, 0xc1, 0xcd, 0x82, 0x2f, 0x9f,
5414 0xeb, 0x3b, 0xa0, 0xf3, 0x5d, 0x61, 0x9d, 0xed, 0x31, 0x62, 0x3b, 0x63,
5415 0x54, 0x7b, 0x67, 0x5c, 0xee, 0x24, 0xad, 0x8a, 0x58, 0xf1, 0xcf, 0xca,
5416 0xfd, 0x16, 0xc4, 0x9c, 0x50, 0x58, 0x8b, 0x2f, 0xc7, 0xe3, 0x75, 0x0c,
5417 0x70, 0xa4, 0xfb, 0xfe, 0x07, 0xbe, 0xaa, 0x0d, 0x88, 0xed, 0x82, 0x0c,
5418 0xd4, 0x2f, 0x8f, 0x5f, 0x9d, 0x5d, 0x1c, 0xd7, 0x73, 0x8e, 0x85, 0x9f,
5419 0xab, 0xab, 0x44, 0xe1, 0xe6, 0xdf, 0x00, 0x7d, 0x86, 0xe5, 0x14, 0x12,
5420 0x8e, 0x9f, 0x7f, 0x77, 0xe4, 0x3a, 0x97, 0x66, 0xc6, 0x9f, 0xe7, 0x5a,
5421 0x1c, 0x18, 0x39, 0x7c, 0x2b, 0xc5, 0x22, 0x9e, 0x56, 0x4c, 0xb2, 0xaa,
5422 0xb9, 0x94, 0xae, 0x7b, 0xc2, 0xec, 0x81, 0xca, 0x78, 0x5a, 0x84, 0x5d,
5423 0x80, 0x96, 0x65, 0xc9, 0x2e, 0x0a, 0xd7, 0x6c, 0x47, 0xf5, 0x84, 0xf4,
5424 0xbd, 0x54, 0xb5, 0x55, 0x35, 0xc7, 0xc0, 0x01, 0xc6, 0x12, 0xb0, 0x91,
5425 0x93, 0x1b, 0xe1, 0xbd, 0x7d, 0x05, 0xd8, 0x12, 0xcc, 0x82, 0x7c, 0xa5,
5426 0x55, 0xa3, 0x48, 0x28, 0xa2, 0x84, 0xf7, 0x55, 0x82, 0xc8, 0x33, 0x15,
5427 0x33, 0x8b, 0x21, 0x87, 0xd4, 0x85, 0xd1, 0xdf, 0x84, 0xfd, 0xf2, 0x4a,
5428 0xd8, 0x50, 0xd6, 0x51, 0xb3, 0xd8, 0xf7, 0x37, 0x4b, 0xd2, 0x2c, 0xbe,
5429 0xcb, 0x6e, 0xfe, 0xac, 0x70, 0xeb, 0x9f, 0xfb, 0xfe, 0x52, 0xde, 0xc1,
5430 0xa6, 0xe8, 0x48, 0x45, 0xd5, 0x33, 0xc2, 0x22, 0x33, 0x72, 0x41, 0xe7,
5431 0xee, 0xb2, 0x9e, 0x36, 0xf2, 0x51, 0x77, 0x8e, 0xba, 0x63, 0xde, 0x13,
5432 0xa6, 0x71, 0xf3, 0x5e, 0x1b, 0x77, 0xb6, 0xab, 0x77, 0x2f, 0x8d, 0x0c,
5433 0x1e, 0xe3, 0xa1, 0x09, 0x28, 0x14, 0x1c, 0x8c, 0x27, 0x9e, 0x28, 0x09,
5434 0xea, 0x0f, 0x86, 0xa1, 0x07, 0x6b, 0x44, 0xf9, 0x90, 0x55, 0x08, 0x16,
5435 0xe2, 0x5e, 0x35, 0xcd, 0x8b, 0xa2, 0x7d, 0xff, 0x60, 0x69, 0xf2, 0xb2,
5436 0x5b, 0xc2, 0x7b, 0xf8, 0xfc, 0xd9, 0x73, 0xde, 0x7a, 0x28, 0x52, 0xa8,
5437 0x09, 0x85, 0x8a, 0x05, 0x04, 0x0d, 0x59, 0xad, 0xc0, 0x68, 0x4b, 0x1f,
5438 0x98, 0x04, 0xe8, 0xb5, 0x60, 0x92, 0xcc, 0x85, 0x02, 0x6e, 0x1c, 0x34,
5439 0x33, 0x5a, 0x7b, 0x8d, 0x5a, 0x57, 0x32, 0x10, 0x7a, 0x4e, 0x0b, 0x3a,
5440 0xd3, 0x0a, 0xc4, 0xb7, 0x8a, 0x64, 0x8e, 0x83, 0xde, 0xb9, 0x35, 0x37,
5441 0x67, 0x61, 0xbb, 0x54, 0x84, 0x60, 0x37, 0x61, 0xc6, 0xf0, 0xf6, 0xa7,
5442 0x1e, 0x22, 0xa0, 0xb0, 0xf9, 0xa7, 0x2d, 0x97, 0x75, 0x6c, 0xb2, 0xc9,
5443 0x01, 0xaa, 0x34, 0x5b, 0x25, 0x61, 0x6e, 0x7d, 0xf7, 0x60, 0xb1, 0x9c,
5444 0x98, 0xbc, 0x26, 0xd6, 0x5d, 0xd8, 0xcb, 0xab, 0x7c, 0x19, 0xc5, 0x46,
5445 0x84, 0xaf, 0x4b, 0xdf, 0x46, 0x04, 0xf1, 0x38, 0x00, 0xab, 0xd4, 0x12,
5446 0xc8, 0x76, 0x80, 0x91, 0xd1, 0x91, 0x21, 0x5c, 0x6f, 0xb2, 0x38, 0x08,
5447 0xf6, 0x8f, 0xab, 0x2d, 0x5d, 0x76, 0x35, 0x27, 0x05, 0x44, 0xc2, 0x45,
5448 0x11, 0x40, 0xac, 0xed, 0x24, 0xa3, 0x4d, 0xc1, 0xb6, 0x56, 0xcd, 0xa7,
5449 0x6a, 0xad, 0x29, 0x25, 0x76, 0xd4, 0x95, 0x96, 0xac, 0x83, 0xa6, 0x99,
5450 0x74, 0x96, 0xcc, 0xae, 0x61, 0x59, 0x3d, 0xc8, 0x7d, 0x3e, 0xa1, 0xfd,
5451 0x40, 0x3f, 0x5c, 0xa2, 0x86, 0x00, 0x40, 0x98, 0xc2, 0x1d, 0xda, 0xa2,
5452 0x8e, 0x57, 0xc4, 0x31, 0x4b, 0x42, 0xf4, 0xca, 0xa7, 0x33, 0xa8, 0x97,
5453 0x4c, 0x58, 0x35, 0xaf, 0x80, 0x38, 0xf6, 0xbb, 0x11, 0x63, 0xc2, 0x77,
5454 0xd7, 0x08, 0x5d, 0xcb, 0xb1, 0x33, 0xbd, 0xb9, 0x2e, 0x96, 0x92, 0xf1,
5455 0xdb, 0x55, 0xe0, 0x21, 0x30, 0x6e, 0xe4, 0x49, 0x5b, 0x50, 0xc7, 0xfb,
5456 0x2d, 0xaf, 0x9e, 0x1c, 0xd9, 0x0e, 0x0d, 0xd0, 0x4a, 0xb4, 0xd8, 0xdd,
5457 0xcd, 0x79, 0xb4, 0x8e, 0xec, 0x55, 0x7f, 0xaa, 0xb8, 0xd6, 0xbc, 0x2d,
5458 0x37, 0x79, 0xf0, 0xbf, 0xe9, 0x6e, 0x4e, 0xdb, 0x10, 0x88, 0x86, 0xb4,
5459 0x60, 0xcd, 0x42, 0x5c, 0xac, 0xea, 0x25, 0x8b, 0x02, 0x73, 0x39, 0xd8,
5460 0x47, 0xda, 0x15, 0x54, 0x6f, 0x16, 0xf9, 0x4c, 0x82, 0xf7, 0x1f, 0x9a,
5461 0x0b, 0x7e, 0xd0, 0xe6, 0x42, 0x7d, 0x94, 0x65, 0x38, 0x2e, 0x34, 0xc2,
5462 0x35, 0x33, 0xcb, 0x75, 0x7a, 0xa0, 0x69, 0x6d, 0x8a, 0x71, 0x83, 0xe6,
5463 0xf1, 0x72, 0x38, 0x84, 0x2c, 0xca, 0xa7, 0x55, 0x30, 0x02, 0x7e, 0xa0,
5464 0xbb, 0x39, 0x8d, 0x28, 0xb6, 0x47, 0xc6, 0xfe, 0x2a, 0x24, 0xe7, 0x7c,
5465 0x68, 0x64, 0xfc, 0x60, 0x6b, 0x95, 0xe9, 0x87, 0xa2, 0xc5, 0x1b, 0x4b,
5466 0x2c, 0x8b, 0xb3, 0x26, 0x8e, 0x5d, 0x5b, 0x60, 0x5b, 0x61, 0xf4, 0xa1,
5467 0x6b, 0x81, 0xf1, 0x0b, 0x7e, 0x7a, 0xd8, 0xdd, 0x9c, 0x5b, 0x61, 0xf7,
5468 0xe0, 0xda, 0x05, 0xd6, 0x6f, 0xb4, 0x66, 0x61, 0x9e, 0x29, 0xe5, 0xe1,
5469 0x3b, 0x49, 0x51, 0x65, 0x6a, 0x8f, 0xea, 0xdd, 0xe3, 0x13, 0x32, 0xcf,
5470 0x8c, 0x63, 0x96, 0x79, 0x70, 0xbc, 0xa2, 0x50, 0xe8, 0x61, 0x5c, 0x67,
5471 0x9f, 0x8d, 0x04, 0xb4, 0xb3, 0x46, 0xec, 0xfd, 0xf7, 0x22, 0xcf, 0x0d,
5472 0x4b, 0x77, 0x8a, 0x34, 0xd3, 0x4a, 0x31, 0xaa, 0x60, 0x82, 0x3e, 0x76,
5473 0xc5, 0x3e, 0x82, 0x10, 0x48, 0x6b, 0x88, 0x8b, 0x5b, 0x76, 0x50, 0x39,
5474 0xc3, 0xe0, 0xdd, 0x7a, 0xdc, 0x03, 0x04, 0x0d, 0x4f, 0xdb, 0x6a, 0xcb,
5475 0x90, 0x2c, 0x93, 0x2b, 0xa0, 0x18, 0x76, 0xdb, 0xf9, 0x11, 0x39, 0xae,
5476 0x7f, 0xd2, 0xed, 0xc9, 0x66, 0xff, 0x96, 0xf7, 0x33, 0xfb, 0x38, 0xff,
5477 0xd5, 0x3e, 0x1d, 0x16, 0x18, 0x71, 0x19, 0xc6, 0x6c, 0xc0, 0x4a, 0x63,
5478 0x57, 0x86, 0xe2, 0x5b, 0x33, 0x15, 0xdd, 0xd0, 0xba, 0xd6, 0xc7, 0x0b,
5479 0xa9, 0x4a, 0x64, 0xcc, 0x60, 0x58, 0x8e, 0xf5, 0x93, 0xa3, 0x4f, 0xfb,
5480 0x2e, 0x8a, 0x76, 0x77, 0x3b, 0x20, 0x0f, 0xe6, 0xd9, 0x6d, 0x87, 0x47,
5481 0x14, 0x9e, 0x55, 0x71, 0x6b, 0xa8, 0xbc, 0x59, 0xc2, 0x74, 0xd4, 0x22,
5482 0x0b, 0x80, 0x5f, 0x7e, 0x78, 0x67, 0x49, 0xcf, 0xd7, 0xce, 0x71, 0xb1,
5483 0xf8, 0xc0, 0x26, 0xa7, 0x07, 0xfc, 0xa8, 0x98, 0xb9, 0x38, 0x18, 0x55,
5484 0x6b, 0x5f, 0x6a, 0x22, 0xf5, 0x9a, 0x99, 0x5f, 0xd7, 0x83, 0x9a, 0x14,
5485 0xae, 0xef, 0x89, 0x3e, 0xd9, 0xd9, 0x1d, 0x3f, 0xb9, 0x1c, 0xcd, 0x78,
5486 0xf0, 0x3d, 0xeb, 0x6e, 0x4e, 0xbb, 0xeb, 0xdf, 0xd2, 0xe9, 0x19, 0xb8,
5487 0xcc, 0x6f, 0xbd, 0xce, 0xf3, 0x2d, 0xba, 0x2d, 0x1b, 0xb6, 0xc1, 0x7f,
5488 0x91, 0x82, 0xe0, 0x3b, 0xdb, 0x3c, 0x2c, 0x20, 0x59, 0x00, 0x9d, 0x09,
5489 0xb0, 0xc8, 0x0b, 0xfc, 0xe7, 0xf3, 0xb5, 0xe5, 0x65, 0xc7, 0xbe, 0xc6,
5490 0xec, 0x85, 0x04, 0x0f, 0x59, 0x9b, 0x30, 0xc1, 0x93, 0xa2, 0x4d, 0x36,
5491 0x19, 0x99, 0x24, 0x35, 0xb3, 0x41, 0x67, 0xcc, 0xb8, 0xf7, 0xae, 0xca,
5492 0x5e, 0x5b, 0x06, 0xa8, 0x8d, 0xa5, 0x0c, 0xee, 0x36, 0xdd, 0xd9, 0x07,
5493 0x51, 0xfd, 0x66, 0x66, 0xe6, 0x35, 0x57, 0xce, 0x51, 0x58, 0x31, 0x7f,
5494 0xba, 0x69, 0xc4, 0x5c, 0xf0, 0x87, 0x4b, 0xb3, 0x36, 0xc3, 0x42, 0xad,
5495 0x5c, 0xa9, 0xd3, 0x99, 0xf2, 0x4c, 0xd3, 0xd4, 0x9a, 0xc0, 0x9d, 0xe1,
5496 0xd3, 0xe7, 0xcf, 0x6b, 0x47, 0x5a, 0x78, 0x7f, 0x7e, 0xb6, 0xb3, 0x23,
5497 0xe4, 0x55, 0xcd, 0xd7, 0xe8, 0x17, 0xc3, 0xe7, 0x78, 0xb1, 0xfe, 0x9a,
5498 0x50, 0xa5, 0xad, 0x7f, 0x6f, 0xc8, 0xbf, 0xe9, 0xf8, 0x1c, 0xee, 0xf8,
5499 0x6b, 0xdf, 0x7a, 0xce, 0x9f, 0xeb, 0x78, 0x0b, 0x0f, 0xcb, 0x34, 0xe6,
5500 0x57, 0x57, 0x4c, 0xc6, 0xc3, 0x4f, 0x4a, 0xf9, 0x98, 0xbc, 0xb8, 0x8f,
5501 0x8b, 0x59, 0x7b, 0xb8, 0x3b, 0x83, 0xe1, 0xee, 0xba, 0xe1, 0xba, 0x52,
5502 0xba, 0x58, 0x4f, 0xbe, 0x41, 0x91, 0x01, 0xbd, 0xf9, 0xf5, 0x56, 0xd7,
5503 0xe8, 0x3f, 0xdd, 0xd9, 0x19, 0x7c, 0xc2, 0xff, 0x7d, 0xfe, 0x7c, 0x6d,
5504 0x98, 0xca, 0x7f, 0xe3, 0x89, 0x0d, 0xad, 0xd6, 0x5b, 0x6a, 0xa7, 0xa3,
5505 0xf5, 0x5d, 0x6a, 0x75, 0xf7, 0xf9, 0xf3, 0x01, 0x7f, 0xe5, 0xd9, 0x47,
5506 0xb5, 0x5e, 0xdd, 0xe7, 0xde, 0xdb, 0xc2, 0xaf, 0x7b, 0x79, 0x2c, 0x1b,
5507 0x23, 0xe0, 0x1b, 0xc1, 0x4b, 0xd0, 0x79, 0x05, 0xa9, 0x84, 0x1e, 0xc4,
5508 0x1b, 0x5e, 0xea, 0x00, 0x18, 0x58, 0x82, 0x95, 0x43, 0x2e, 0x16, 0x76,
5509 0x6d, 0x89, 0x3d, 0x60, 0xd5, 0x5c, 0xfa, 0x1e, 0xca, 0x2c, 0xf8, 0x75,
5510 0x54, 0x2a, 0x0f, 0xcc, 0xe1, 0x68, 0x93, 0xe4, 0x65, 0x0b, 0x3e, 0x84,
5511 0xbb, 0x78, 0x9e, 0x3a, 0x88, 0x77, 0x1f, 0x80, 0x2f, 0xa1, 0x64, 0xe9,
5512 0xf3, 0x85, 0xa2, 0xcf, 0xe5, 0x16, 0xe7, 0x33, 0x67, 0xf6, 0xeb, 0x21,
5513 0x22, 0xcf, 0x0d, 0xe5, 0x09, 0xd9, 0x68, 0xb8, 0x04, 0xbe, 0x1f, 0x09,
5514 0x51, 0x38, 0x83, 0x32, 0x1a, 0xdf, 0x8c, 0x3c, 0xeb, 0x97, 0x27, 0x29,
5515 0x85, 0x4a, 0x57, 0x84, 0x97, 0x1f, 0x6a, 0xbf, 0x0c, 0xc8, 0xa9, 0xcd,
5516 0xc9, 0x94, 0x05, 0x1e, 0xc5, 0x59, 0x62, 0xd4, 0xb1, 0xf5, 0x82, 0x93,
5517 0xee, 0x75, 0x71, 0xe4, 0xac, 0xe4, 0x02, 0xeb, 0x37, 0xd9, 0x0f, 0x3e,
5518 0x23, 0x0b, 0xd1, 0x4a, 0xbe, 0xd2, 0xde, 0xc7, 0x45, 0x62, 0xb9, 0xa4,
5519 0x74, 0xd5, 0xb6, 0xbd, 0xef, 0x98, 0xf7, 0x95, 0x48, 0x5f, 0xe0, 0xdb,
5520 0x51, 0xad, 0xe4, 0xaf, 0x91, 0xf4, 0x6a, 0xc0, 0x73, 0xa6, 0xd8, 0x12,
5521 0x21, 0xed, 0x10, 0xd7, 0x2f, 0x12, 0xaa, 0x42, 0x9c, 0xdf, 0x35, 0x78,
5522 0x3f, 0x75, 0xc8, 0x42, 0xbd, 0xb8, 0xd1, 0xc0, 0x54, 0x5f, 0x27, 0x82,
5523 0x59, 0x16, 0x2e, 0x43, 0x57, 0xa5, 0xda, 0x8d, 0xc2, 0xa8, 0xd0, 0xa0,
5524 0x92, 0x64, 0xf2, 0x8d, 0xdd, 0x4d, 0xcb, 0xb6, 0x5b, 0x6c, 0x52, 0x78,
5525 0x21, 0xc1, 0xf5, 0x53, 0x5b, 0x31, 0x5e, 0x2c, 0xa7, 0x04, 0x69, 0xd5,
5526 0x48, 0x0e, 0x43, 0xec, 0x83, 0xc8, 0x57, 0xe0, 0x30, 0x30, 0xd6, 0xd0,
5527 0x5c, 0x22, 0xf9, 0x5b, 0x23, 0xf4, 0x81, 0xe5, 0x53, 0x56, 0x82, 0x3f,
5528 0x1b, 0x2e, 0x69, 0xf2, 0xbe, 0x02, 0xcb, 0x6f, 0x78, 0xeb, 0x8f, 0xc6,
5529 0x27, 0xff, 0xf3, 0x78, 0x14, 0x82, 0x2f, 0x7f, 0x25, 0x7f, 0xe3, 0x45,
5530 0x80, 0xe5, 0xe7, 0xd7, 0xba, 0x70, 0xf4, 0x01, 0x51, 0x99, 0xe7, 0xfa,
5531 0x77, 0xb7, 0xdb, 0x1a, 0x0e, 0x13, 0x72, 0x93, 0xa0, 0x94, 0x56, 0x97,
5532 0xa1, 0x86, 0x8e, 0x55, 0xf1, 0x62, 0x19, 0x75, 0xa4, 0x81, 0x08, 0xd4,
5533 0xc4, 0xb8, 0xa5, 0xd8, 0xaa, 0xf6, 0x88, 0x90, 0xf8, 0xb6, 0xcb, 0xa5,
5534 0x14, 0x24, 0xa7, 0xc8, 0xb2, 0xd3, 0x7b, 0x08, 0xd1, 0xba, 0xef, 0x84,
5535 0x8e, 0x63, 0x3e, 0x89, 0xf3, 0x85, 0xb0, 0xb2, 0x74, 0x26, 0x8f, 0x49,
5536 0xe2, 0x78, 0x48, 0x7e, 0xe8, 0x8c, 0x21, 0xa1, 0x91, 0x92, 0x2a, 0x56,
5537 0x0c, 0x60, 0x42, 0x3c, 0x31, 0xa4, 0x75, 0xed, 0x80, 0x94, 0x5b, 0x85,
5538 0x5e, 0x30, 0x13, 0xc8, 0xc7, 0x23, 0x30, 0x01, 0xb9, 0x42, 0x80, 0xe0,
5539 0x15, 0xf2, 0x3c, 0x55, 0x25, 0xaa, 0x3f, 0x82, 0xb2, 0x97, 0x1f, 0x6e,
5540 0x55, 0x91, 0xe1, 0x54, 0x4d, 0x38, 0x18, 0x1a, 0x45, 0x8a, 0x47, 0xad,
5541 0x54, 0xa5, 0xe4, 0x7a, 0x16, 0xb2, 0xcf, 0xd4, 0x67, 0xe1, 0xbe, 0xb6,
5542 0xac, 0x69, 0x00, 0x95, 0x88, 0xe7, 0x72, 0x81, 0x29, 0x98, 0x3f, 0x05,
5543 0xbe, 0x77, 0xba, 0xd6, 0xe4, 0xc6, 0x77, 0xae, 0x15, 0x42, 0xa2, 0x76,
5544 0x9a, 0x9c, 0xe7, 0xe9, 0xe6, 0x54, 0xcd, 0x19, 0x98, 0xf0, 0x64, 0x31,
5545 0x75, 0x53, 0x3a, 0xea, 0x96, 0x05, 0xf0, 0xe9, 0x92, 0x2e, 0xba, 0xa2,
5546 0xaf, 0xa0, 0x30, 0x4e, 0xd3, 0x8f, 0x49, 0x5d, 0x6c, 0xf1, 0x89, 0xd7,
5547 0x42, 0xa9, 0x41, 0xee, 0x09, 0x23, 0x38, 0x1e, 0x8b, 0xfd, 0xdf, 0x88,
5548 0x39, 0x51, 0x0b, 0x55, 0x0a, 0x37, 0x2e, 0x6a, 0x39, 0xd2, 0x80, 0x5d,
5549 0xc6, 0x4f, 0xd9, 0xed, 0xa4, 0x9d, 0x25, 0xb1, 0xa5, 0x52, 0x4a, 0xe1,
5550 0xde, 0x76, 0xfe, 0x0b, 0xaa, 0xf8, 0x3a, 0x4a, 0x37, 0x00, 0xa5, 0x72,
5551 0xa9, 0xad, 0x49, 0xcf, 0x77, 0x90, 0xc9, 0x1a, 0x2e, 0xbd, 0x46, 0xf1,
5552 0x84, 0xfe, 0xd8, 0x39, 0x38, 0x45, 0xf2, 0x9e, 0xf8, 0x7e, 0xeb, 0xe3,
5553 0xed, 0x60, 0x27, 0x10, 0x07, 0xed, 0x24, 0x11, 0xca, 0x0e, 0x68, 0x52,
5554 0x68, 0x4e, 0xf8, 0x18, 0x59, 0xcf, 0xf4, 0x86, 0x79, 0x34, 0xec, 0xb1,
5555 0xe5, 0x05, 0xe2, 0x84, 0xa0, 0xb9, 0xd1, 0x23, 0x31, 0xfb, 0xdd, 0xe7,
5556 0x75, 0xae, 0x44, 0xe6, 0x33, 0x9e, 0x93, 0x16, 0x7f, 0xc1, 0x71, 0x30,
5557 0x84, 0xc1, 0xf6, 0xd7, 0xe4, 0x66, 0x9c, 0x3b, 0x5a, 0x90, 0x29, 0x75,
5558 0x81, 0xa1, 0xc7, 0x8a, 0x41, 0x97, 0x31, 0xfa, 0x41, 0x0a, 0x30, 0x5e,
5559 0xa0, 0x8f, 0x12, 0x17, 0x5b, 0xc6, 0x69, 0xcb, 0xaf, 0x25, 0x74, 0x59,
5560 0x50, 0x40, 0x36, 0x34, 0x36, 0x0f, 0x4d, 0x29, 0x58, 0xd9, 0x11, 0x81,
5561 0x41, 0x6e, 0x96, 0x5b, 0x46, 0x0b, 0xb6, 0xc6, 0x58, 0xaf, 0xe5, 0x39,
5562 0x28, 0xc5, 0x22, 0x1c, 0x0c, 0x9c, 0xd6, 0x7e, 0x9f, 0x96, 0x89, 0x72,
5563 0x91, 0x01, 0x0f, 0x83, 0x21, 0xcf, 0xfc, 0x4b, 0x6d, 0xe8, 0xcc, 0x44,
5564 0x28, 0x47, 0x38, 0x87, 0xff, 0x50, 0xcb, 0x72, 0xa3, 0x98, 0x68, 0x84,
5565 0x9a, 0x90, 0xb4, 0x6f, 0xb6, 0x93, 0x6a, 0xba, 0x2d, 0x14, 0x01, 0x10,
5566 0xf8, 0x0c, 0x84, 0x55, 0xee, 0x4a, 0xd0, 0x2a, 0xeb, 0xd3, 0x8a, 0xed,
5567 0x88, 0xcf, 0x21, 0xa0, 0xb2, 0x0e, 0xf2, 0x2c, 0xa4, 0x24, 0x8f, 0x06,
5568 0x13, 0x3b, 0x7c, 0xb3, 0x57, 0x96, 0x6e, 0x1f, 0x4c, 0xba, 0x8b, 0xba,
5569 0x59, 0x1a, 0x7e, 0xbd, 0x3c, 0x35, 0xbd, 0xe2, 0xe9, 0xd3, 0x3b, 0xa4,
5570 0x17, 0x45, 0x6a, 0xed, 0xa8, 0x71, 0x28, 0xaf, 0x3a, 0xdf, 0x8e, 0x23,
5571 0x86, 0x09, 0x16, 0xbe, 0x2b, 0x11, 0x85, 0x77, 0x0f, 0x7a, 0x20, 0x90,
5572 0x2d, 0xcb, 0x6c, 0x43, 0xb6, 0xf1, 0xe8, 0xc3, 0xb5, 0x07, 0xdd, 0xe4,
5573 0x87, 0x29, 0x65, 0xec, 0x70, 0x9e, 0xe9, 0x4f, 0x5c, 0xe2, 0x45, 0x07,
5574 0xe6, 0x49, 0x17, 0xf7, 0x71, 0xdc, 0xca, 0xee, 0xe8, 0x49, 0x7d, 0x0f,
5575 0xf0, 0x35, 0xb0, 0x8b, 0x2a, 0x14, 0x96, 0x1b, 0x14, 0x21, 0xa7, 0xea,
5576 0x08, 0x2c, 0x49, 0x12, 0x09, 0xd8, 0xad, 0x90, 0x18, 0x42, 0x05, 0x91,
5577 0x6f, 0x57, 0x8e, 0xd5, 0xd7, 0xac, 0x8f, 0xd7, 0xa8, 0xd4, 0x81, 0x64,
5578 0xe0, 0x18, 0xc1, 0x6d, 0xa1, 0x40, 0x3f, 0x7f, 0x11, 0x92, 0x31, 0xab,
5579 0xaf, 0x98, 0x74, 0x19, 0x6f, 0x95, 0xd5, 0x72, 0xd4, 0x26, 0x32, 0x75,
5580 0x50, 0x25, 0x7d, 0x97, 0x3e, 0xbf, 0x13, 0x26, 0x35, 0x01, 0xd2, 0xaf,
5581 0x20, 0x52, 0x57, 0x75, 0xd5, 0x70, 0x1e, 0xdd, 0x35, 0x6f, 0x41, 0xc4,
5582 0xe8, 0x86, 0xac, 0x63, 0xd6, 0xac, 0x04, 0x61, 0x89, 0xd8, 0xe7, 0x49,
5583 0x11, 0x06, 0xe6, 0x81, 0x85, 0xc5, 0x9e, 0xbe, 0x7f, 0xdf, 0x5e, 0x09,
5584 0x5f, 0x5d, 0x48, 0x8a, 0x87, 0xcb, 0xf1, 0xf3, 0xec, 0xfd, 0xfb, 0xfa,
5585 0x2f, 0x1f, 0x2f, 0xe6, 0x1b, 0x4f, 0x72, 0xc9, 0x5b, 0x95, 0x99, 0x8a,
5586 0x83, 0x59, 0x34, 0x5a, 0x3f, 0xb9, 0x1b, 0x91, 0x9c, 0xa6, 0x9d, 0x9c,
5587 0x6b, 0x7a, 0xe5, 0x13, 0x8d, 0x54, 0x09, 0xa0, 0x5a, 0x8e, 0x09, 0x26,
5588 0x35, 0xb8, 0xa1, 0x5d, 0x29, 0x95, 0x62, 0x54, 0xe8, 0x5d, 0x29, 0x99,
5589 0x95, 0x66, 0xa5, 0x34, 0xf1, 0x09, 0xb1, 0xb0, 0xee, 0x83, 0x7c, 0x7b,
5590 0x95, 0x55, 0xe9, 0x9c, 0xdf, 0x01, 0xf3, 0x38, 0xbd, 0xbe, 0x4b, 0xf3,
5591 0x9f, 0x66, 0x2b, 0xbe, 0x48, 0x69, 0xe1, 0xbd, 0xb0, 0x54, 0x7c, 0xe7,
5592 0xb4, 0xcf, 0xe3, 0x87, 0xc8, 0x85, 0xf4, 0x5b, 0x25, 0xb9, 0xb5, 0x5f,
5593 0xc2, 0x66, 0x63, 0xf9, 0x2d, 0x98, 0x8b, 0x21, 0x5e, 0xed, 0xe2, 0x35,
5594 0xb7, 0x33, 0x48, 0x93, 0x79, 0x92, 0xf7, 0x34, 0xd9, 0x82, 0xf2, 0x93,
5595 0x94, 0x34, 0xba, 0xdd, 0xf1, 0x29, 0x73, 0x9d, 0x17, 0xb4, 0xa0, 0x0b,
5596 0x35, 0x35, 0x04, 0xaf, 0xd8, 0xc2, 0x0b, 0xc8, 0xa7, 0x1c, 0x25, 0xb9,
5597 0x60, 0x47, 0x41, 0x36, 0x2b, 0x01, 0xd6, 0xbc, 0x52, 0xe3, 0xd4, 0x78,
5598 0x72, 0x31, 0xbb, 0xd6, 0xeb, 0xc7, 0x8e, 0xa2, 0xbd, 0x70, 0x1b, 0xae,
5599 0x35, 0x82, 0x45, 0x15, 0xf8, 0x78, 0x94, 0x19, 0xc2, 0x35, 0x9e, 0x3d,
5600 0x47, 0x3c, 0xd0, 0x9a, 0xdc, 0xa9, 0x92, 0x0e, 0xba, 0xe2, 0x91, 0x8d,
5601 0x7d, 0x2f, 0x93, 0xf8, 0x08, 0xd3, 0xba, 0x2f, 0x27, 0x5e, 0xce, 0x93,
5602 0x64, 0x69, 0x73, 0xea, 0x0a, 0x27, 0x59, 0xf9, 0x50, 0xec, 0x55, 0x98,
5603 0x09, 0x22, 0xa8, 0x50, 0x0d, 0xeb, 0x34, 0x00, 0x4e, 0x77, 0x0e, 0x48,
5604 0x19, 0x31, 0x2c, 0x9f, 0xa0, 0x55, 0x6b, 0xd7, 0x31, 0xab, 0xaa, 0x33,
5605 0x77, 0xd6, 0x6f, 0x59, 0xbf, 0xa8, 0xba, 0x0e, 0xba, 0xb0, 0x4e, 0xa8,
5606 0x74, 0x35, 0x1a, 0xa5, 0x3f, 0x5b, 0xb4, 0x64, 0xb8, 0x29, 0xc1, 0x56,
5607 0x4c, 0xa4, 0x94, 0x1d, 0xea, 0x7f, 0xca, 0x70, 0x80, 0x37, 0x55, 0x96,
5608 0xb8, 0x51, 0xa0, 0x7a, 0xb8, 0xc6, 0x8e, 0x48, 0x70, 0x4b, 0x17, 0x03,
5609 0x14, 0xae, 0xa1, 0xd2, 0xb0, 0x2c, 0xbb, 0xdd, 0xe2, 0xad, 0xf7, 0x61,
5610 0xe7, 0x43, 0x96, 0x96, 0x46, 0x73, 0xff, 0x5d, 0x12, 0xa3, 0xd5, 0x8b,
5611 0xcb, 0x47, 0xa5, 0xe6, 0x83, 0x14, 0xfd, 0xe2, 0x85, 0xc4, 0xd4, 0xe1,
5612 0xfb, 0x0a, 0x0b, 0x62, 0x60, 0x65, 0x15, 0x05, 0x01, 0x75, 0x55, 0x5e,
5613 0x4e, 0x30, 0xf4, 0xe6, 0xd5, 0xf2, 0xa0, 0xa9, 0x76, 0x32, 0x45, 0x02,
5614 0x32, 0x80, 0x98, 0xaf, 0x19, 0x2b, 0xda, 0x7e, 0x9b, 0xcc, 0xee, 0xa1,
5615 0x5d, 0xdb, 0xe2, 0x1f, 0x83, 0xc5, 0x2f, 0xf6, 0x15, 0x74, 0x8b, 0x56,
5616 0xe2, 0x35, 0xe8, 0x7d, 0x45, 0x69, 0xcd, 0x42, 0x02, 0x72, 0xe5, 0x1f,
5617 0x7f, 0x93, 0x73, 0xa6, 0xab, 0xde, 0xda, 0xae, 0x7c, 0x3b, 0xfa, 0x66,
5618 0x9b, 0xc4, 0x57, 0xdb, 0x51, 0x22, 0xea, 0x41, 0xad, 0xb4, 0x97, 0x75,
5619 0x1a, 0x39, 0xcc, 0x12, 0x08, 0x16, 0x36, 0x2d, 0x3d, 0x29, 0x3b, 0x20,
5620 0x6f, 0x72, 0x44, 0x72, 0xc4, 0x13, 0xb0, 0x09, 0x1e, 0x4f, 0x07, 0x5b,
5621 0x3a, 0x56, 0x80, 0x1a, 0x49, 0x99, 0x80, 0xf0, 0x32, 0x57, 0xbd, 0xd4,
5622 0xca, 0x38, 0x91, 0x0c, 0x38, 0xed, 0x4d, 0xbf, 0x74, 0xe4, 0xdf, 0xfc,
5623 0xfa, 0x40, 0x12, 0x34, 0xb8, 0xf0, 0x42, 0x50, 0x79, 0x41, 0x2a, 0x11,
5624 0x54, 0x75, 0xe7, 0x46, 0x8b, 0xf7, 0x0e, 0x02, 0x5e, 0x09, 0x37, 0x94,
5625 0x95, 0x24, 0x70, 0xea, 0xfa, 0x63, 0x54, 0x5d, 0x3d, 0xd9, 0xf2, 0x31,
5626 0xd9, 0xed, 0xa8, 0x92, 0xfb, 0x0b, 0x05, 0xb7, 0x44, 0x49, 0x9a, 0x74,
5627 0xde, 0xc6, 0xf5, 0x8f, 0x53, 0x29, 0xb7, 0x55, 0x30, 0x39, 0x32, 0x0d,
5628 0x5a, 0xd2, 0x9f, 0x8f, 0x50, 0x9f, 0xae, 0x54, 0x78, 0xf0, 0x35, 0x2c,
5629 0x3e, 0x41, 0x2a, 0xc1, 0xfb, 0xeb, 0xec, 0x82, 0x16, 0xd7, 0x3d, 0x48,
5630 0xea, 0x46, 0xc6, 0xd9, 0x0d, 0xa6, 0xd6, 0xc5, 0x2a, 0xa4, 0x23, 0x1c,
5631 0x8e, 0xd1, 0x15, 0x6a, 0x79, 0x88, 0x56, 0xd6, 0xd0, 0x14, 0x26, 0x0e,
5632 0x30, 0x30, 0x2c, 0xc5, 0x60, 0x0a, 0x0c, 0x1b, 0xf4, 0xcb, 0x90, 0xe2,
5633 0x46, 0x8d, 0xc7, 0x92, 0xda, 0xaa, 0x60, 0x04, 0x88, 0x40, 0xb8, 0x81,
5634 0xcb, 0x72, 0x2e, 0x90, 0xa4, 0x41, 0x74, 0x7e, 0x76, 0xfe, 0x64, 0x10,
5635 0x9d, 0xbc, 0x3e, 0xa0, 0xbf, 0x0b, 0x13, 0xfe, 0xa5, 0x54, 0x3a, 0x57,
5636 0x92, 0xb6, 0xed, 0xcb, 0xd3, 0x71, 0x60, 0x6d, 0xfb, 0xeb, 0x79, 0x7b,
5637 0x7b, 0x72, 0x72, 0x97, 0x98, 0xa9, 0x70, 0xf5, 0xa1, 0x24, 0x49, 0x12,
5638 0x96, 0x6d, 0xb1, 0xa2, 0x24, 0xe2, 0xba, 0x34, 0x82, 0x6d, 0xf5, 0x4b,
5639 0x35, 0x57, 0x44, 0x3e, 0x1d, 0xfa, 0x00, 0x24, 0x63, 0x96, 0xfa, 0x3e,
5640 0xb4, 0xfc, 0x5d, 0xde, 0x48, 0x18, 0x0d, 0xed, 0xfb, 0xbf, 0xcb, 0xa9,
5641 0xab, 0xd6, 0xf6, 0xb0, 0x5d, 0xab, 0x56, 0xea, 0xc7, 0xa2, 0x10, 0x28,
5642 0xc9, 0x4e, 0xf1, 0x50, 0x23, 0x19, 0x6a, 0x54, 0xfa, 0xaa, 0xf3, 0xe9,
5643 0x77, 0xda, 0xe9, 0xcc, 0x68, 0xc5, 0x3b, 0x17, 0x15, 0xd5, 0x24, 0x69,
5644 0x81, 0x7e, 0xe2, 0xfa, 0x58, 0x17, 0xfe, 0x5d, 0x6a, 0x6e, 0xd4, 0x6a,
5645 0x2e, 0xae, 0x6a, 0x8c, 0x70, 0x6c, 0xf9, 0xd3, 0xa1, 0x13, 0x5c, 0x59,
5646 0x82, 0x62, 0x33, 0xc2, 0x97, 0x23, 0xb5, 0x30, 0xb9, 0xd1, 0xd6, 0x16,
5647 0xbf, 0x5a, 0xc1, 0xed, 0xa8, 0x29, 0x6a, 0x8d, 0xd5, 0xc6, 0xfc, 0x74,
5648 0x40, 0xd2, 0x06, 0x91, 0x0a, 0x80, 0x4a, 0x80, 0x8a, 0x00, 0x2d, 0xa6,
5649 0xf2, 0xe5, 0x85, 0x12, 0xa0, 0x99, 0xd3, 0x6b, 0xd6, 0xff, 0x12, 0x5b,
5650 0x0f, 0x51, 0xce, 0xfa, 0x83, 0x8f, 0x2f, 0xbb, 0x5b, 0xe8, 0x8f, 0xae,
5651 0x6e, 0xb0, 0x76, 0x35, 0xfc, 0x72, 0xe8, 0x7a, 0xc0, 0x43, 0xe5, 0xa5,
5652 0x06, 0x32, 0xb2, 0x19, 0xaf, 0x3d, 0x5a, 0x9f, 0x8d, 0x9e, 0x6d, 0x8d,
5653 0x3e, 0x76, 0x59, 0x9c, 0x39, 0xab, 0x8b, 0xd2, 0xe6, 0x99, 0x8b, 0x1f,
5654 0x5b, 0x92, 0x7c, 0x7a, 0x5b, 0x3e, 0x15, 0x97, 0xc3, 0x47, 0x43, 0x6f,
5655 0xc7, 0x67, 0x87, 0xdf, 0x8c, 0x9f, 0x06, 0xc0, 0xdb, 0xaa, 0x71, 0x7d,
5656 0x56, 0x4e, 0x55, 0xbc, 0xd1, 0xce, 0x53, 0xfb, 0x00, 0xea, 0xf6, 0x91,
5657 0xb2, 0x49, 0x1d, 0x0e, 0x28, 0x4f, 0xc3, 0xcc, 0xd7, 0x51, 0x76, 0x37,
5658 0xa4, 0xf9, 0xca, 0xb1, 0x51, 0x06, 0x54, 0x24, 0x03, 0xc7, 0x60, 0xfa,
5659 0xd0, 0x4a, 0xc4, 0xf3, 0x1c, 0xcd, 0x01, 0x2b, 0x73, 0x0b, 0x9b, 0x84,
5660 0x1a, 0xbd, 0xb8, 0xb2, 0x7e, 0x3a, 0x68, 0xda, 0x39, 0x24, 0x44, 0x74,
5661 0x7e, 0xce, 0x57, 0xfc, 0x6d, 0x29, 0xe6, 0x6b, 0xe9, 0xea, 0x0e, 0x29,
5662 0xd7, 0x54, 0xcd, 0x32, 0xf3, 0x06, 0xe7, 0xe5, 0x44, 0x7c, 0xdf, 0x59,
5663 0xbd, 0x5c, 0xc4, 0xfa, 0xd4, 0xfe, 0xf6, 0xb6, 0x77, 0x2a, 0x08, 0xbc,
5664 0x6b, 0xf4, 0xdb, 0x25, 0x5e, 0xcb, 0x37, 0xe3, 0x7f, 0x4a, 0x28, 0xe2,
5665 0x8f, 0x93, 0x8a, 0x96, 0x95, 0xf1, 0x0b, 0xa5, 0xe2, 0xb3, 0x0f, 0xee,
5666 0xc3, 0x5f, 0x20, 0x17, 0xca, 0xd5, 0xfd, 0xbf, 0x91, 0x54, 0xc4, 0xd1,
5667 0xc7, 0xc9, 0x45, 0xdc, 0x14, 0x8c, 0x8e, 0xa4, 0xd0, 0xdf, 0xb2, 0x22,
5668 0x13, 0x7a, 0xf1, 0x6c, 0xe8, 0x98, 0x26, 0xff, 0x09, 0x89, 0x79, 0xa6,
5669 0x23, 0xdd, 0x84, 0x33, 0x4e, 0x63, 0x4b, 0xc6, 0xa6, 0x63, 0x1e, 0xd1,
5670 0x35, 0x84, 0x97, 0x82, 0x5a, 0xd9, 0x1a, 0x45, 0x1f, 0xd2, 0x41, 0x1d,
5671 0xd2, 0xd5, 0x5c, 0xed, 0x7f, 0x42, 0xd6, 0xfe, 0xaf, 0xd0, 0x40, 0xcf,
5672 0x3c, 0x4f, 0xe8, 0xc7, 0x88, 0xdc, 0xb3, 0x1b, 0x27, 0x72, 0x2d, 0x0e,
5673 0xf2, 0x40, 0x37, 0xfd, 0xda, 0x22, 0xd7, 0x38, 0x92, 0xc3, 0xe9, 0xc7,
5674 0x81, 0x6b, 0xb3, 0x8e, 0xf8, 0x60, 0x41, 0x17, 0x14, 0x84, 0x95, 0x43,
5675 0x32, 0x4a, 0xbe, 0xe9, 0x88, 0x1d, 0xdb, 0xe2, 0x66, 0x56, 0x39, 0x76,
5676 0xb9, 0x94, 0x81, 0x0f, 0xcf, 0x15, 0x04, 0xdd, 0x6a, 0x49, 0xfd, 0x07,
5677 0x85, 0xbd, 0xe6, 0x15, 0xe6, 0x0f, 0xab, 0xbc, 0x9b, 0x70, 0x0f, 0x85,
5678 0x2f, 0xd5, 0x64, 0xdc, 0xf9, 0x8a, 0x3b, 0xe0, 0x5c, 0x88, 0xc3, 0xcd,
5679 0x3f, 0x7c, 0xd6, 0x86, 0x72, 0xee, 0xd4, 0x68, 0xd4, 0x2a, 0xce, 0xf1,
5680 0x58, 0x86, 0xcb, 0xff, 0x2d, 0x3a, 0xf4, 0xd9, 0xc7, 0x89, 0xf3, 0x7f,
5681 0xc7, 0xc9, 0xfa, 0xbf, 0x91, 0xf0, 0x76, 0x2d, 0xf3, 0xa6, 0x12, 0xcf,
5682 0xc8, 0xad, 0x41, 0x0e, 0x96, 0x2d, 0x5f, 0xac, 0x19, 0x05, 0x63, 0x30,
5683 0x8b, 0x27, 0xe7, 0xdf, 0x7e, 0x32, 0x60, 0x0f, 0xf3, 0xb8, 0xcd, 0x4d,
5684 0x79, 0x7a, 0x74, 0x70, 0xde, 0x71, 0x32, 0x5c, 0xd3, 0x5d, 0x70, 0x99,
5685 0x0e, 0xd9, 0xe2, 0x66, 0x17, 0xc6, 0x0b, 0xfd, 0x0b, 0x8b, 0x78, 0x97,
5686 0x93, 0xc6, 0xbc, 0x50, 0xf6, 0xbc, 0x90, 0xdf, 0x49, 0xdc, 0x0e, 0xa3,
5687 0x54, 0xd3, 0x9d, 0xdd, 0xfe, 0xd3, 0xc5, 0x6c, 0x5b, 0xfe, 0x39, 0xbc,
5688 0xfa, 0xfb, 0xac, 0x7d, 0x0b, 0x08, 0x19, 0xf1, 0x6a, 0x79, 0x49, 0xca,
5689 0xd6, 0x97, 0xb6, 0xb3, 0xe3, 0x7d, 0x55, 0xdd, 0x60, 0x9b, 0x47, 0x9a,
5690 0x6b, 0x07, 0xaa, 0xec, 0x75, 0x03, 0x43, 0xf7, 0x5a, 0xf4, 0xa1, 0x88,
5691 0x21, 0x81, 0xb5, 0x93, 0x7f, 0xbb, 0x1d, 0x34, 0xe4, 0x5a, 0x7f, 0xac,
5692 0xf1, 0x8e, 0x54, 0x1b, 0xff, 0xad, 0x6d, 0x26, 0x50, 0xd2, 0x17, 0xe5,
5693 0x43, 0xe2, 0x3c, 0x69, 0xfd, 0x92, 0xa7, 0x0f, 0x55, 0xb1, 0x5b, 0x9c,
5694 0xbe, 0x89, 0x7a, 0xbd, 0x82, 0x3e, 0xb8, 0x55, 0x17, 0x02, 0x68, 0x25,
5695 0xfb, 0xc9, 0xa6, 0xe9, 0x32, 0x9e, 0x6b, 0x92, 0x57, 0xf4, 0x18, 0x13,
5696 0x79, 0x93, 0xc8, 0xb9, 0x3e, 0x20, 0xba, 0x87, 0x35, 0x6b, 0x40, 0xb1,
5697 0xf8, 0xa3, 0xa0, 0xb7, 0x7a, 0xd8, 0xe5, 0xc9, 0xc8, 0x72, 0x28, 0xb1,
5698 0x7a, 0xd8, 0xa0, 0x7a, 0x85, 0x03, 0x6c, 0x9a, 0x55, 0x1e, 0x1e, 0x68,
5699 0x05, 0x6b, 0x91, 0xfe, 0xc1, 0xc9, 0x1b, 0xbb, 0xcf, 0x3f, 0xd9, 0x8d,
5700 0x4a, 0x2e, 0x35, 0x28, 0x25, 0x39, 0xf1, 0xf2, 0xd3, 0xd1, 0x93, 0xed,
5701 0xa7, 0xa3, 0xa7, 0x91, 0xaf, 0x8f, 0x85, 0x8b, 0x93, 0x36, 0xdf, 0x8e,
5702 0x93, 0x4f, 0x14, 0x64, 0x11, 0x45, 0x6f, 0x8e, 0x0f, 0xd9, 0x1a, 0xb1,
5703 0x9c, 0xbf, 0x06, 0xf3, 0xbb, 0x96, 0x4c, 0xe7, 0x89, 0x33, 0xa2, 0xf1,
5704 0xae, 0xaa, 0x43, 0x1d, 0xd3, 0x61, 0xa2, 0x09, 0x70, 0x74, 0xe6, 0x3a,
5705 0xc2, 0xba, 0xf2, 0xc6, 0x0a, 0xed, 0x9a, 0x41, 0xd4, 0xe2, 0x00, 0x08,
5706 0xa7, 0x24, 0x98, 0xb0, 0xd1, 0xe3, 0xdc, 0xda, 0x65, 0x35, 0x23, 0xad,
5707 0xde, 0x0d, 0xd0, 0xb8, 0xb0, 0xba, 0xaf, 0x88, 0xc8, 0x70, 0xb9, 0x78,
5708 0x2d, 0x0c, 0x28, 0xef, 0x18, 0x76, 0xb9, 0x06, 0x67, 0x37, 0x0c, 0xc2,
5709 0x9a, 0x9c, 0x1f, 0xcf, 0x19, 0x2a, 0x6c, 0xd9, 0xa8, 0x6f, 0xd6, 0x1f,
5710 0xf6, 0xed, 0x98, 0x32, 0x04, 0x83, 0xd5, 0xa6, 0x17, 0x56, 0x3a, 0xa5,
5711 0x55, 0x7d, 0xec, 0x70, 0xd2, 0xd2, 0x8f, 0x40, 0x56, 0x8b, 0x83, 0x9f,
5712 0xf1, 0x4a, 0x8e, 0x6d, 0x38, 0x96, 0xa4, 0x0c, 0xd1, 0x5c, 0xb3, 0x64,
5713 0xda, 0x76, 0xb5, 0x39, 0xe6, 0x1e, 0x7a, 0x7a, 0x1a, 0x2f, 0xe3, 0x49,
5714 0x3a, 0x4f, 0xab, 0x5a, 0xbe, 0xf4, 0xaf, 0x6e, 0x30, 0x57, 0x7c, 0x0c,
5715 0x55, 0xc9, 0x3c, 0x4b, 0x2a, 0xad, 0xd6, 0x13, 0xbd, 0x38, 0x3b, 0xbf,
5716 0x7c, 0x79, 0x17, 0xcf, 0x5b, 0x21, 0x7e, 0x26, 0xe7, 0xb2, 0xda, 0x46,
5717 0x3a, 0xf1, 0xf2, 0x66, 0x90, 0x13, 0x33, 0x76, 0x59, 0x21, 0x41, 0x15,
5718 0xa4, 0x56, 0xfe, 0xc7, 0xe5, 0xe5, 0x0f, 0xe7, 0xc7, 0x2f, 0x5f, 0xb0,
5719 0x4b, 0xf2, 0x73, 0xf6, 0xa4, 0xaa, 0x2b, 0x5a, 0xdc, 0x24, 0x73, 0xae,
5720 0xa2, 0xd7, 0x3e, 0x92, 0xbf, 0x3f, 0x3a, 0x19, 0x9f, 0x9f, 0x9e, 0x1d,
5721 0xbe, 0x7c, 0xf1, 0x3d, 0x47, 0xb0, 0x68, 0xd9, 0x1e, 0x82, 0x77, 0xdd,
5722 0xcf, 0x1c, 0xc4, 0xbd, 0x5d, 0xc3, 0xe2, 0xf8, 0xbb, 0x77, 0xc7, 0x6f,
5723 0xbe, 0x7d, 0xf9, 0xe2, 0x2e, 0x2e, 0x06, 0x3c, 0x3e, 0x79, 0x9b, 0xdd,
5724 0x84, 0x1d, 0x45, 0xe5, 0x82, 0x39, 0xba, 0x44, 0x89, 0x93, 0x25, 0xe3,
5725 0xc5, 0x1e, 0x81, 0x12, 0x41, 0x16, 0x7c, 0xd5, 0x88, 0xba, 0x58, 0x06,
5726 0xb0, 0x25, 0x9d, 0x39, 0x97, 0x64, 0xff, 0xf6, 0xe2, 0x74, 0x4d, 0x05,
5727 0xd5, 0x42, 0x6b, 0x94, 0x06, 0x4c, 0xba, 0x0a, 0x3b, 0xf4, 0x0d, 0x83,
5728 0xb6, 0xf6, 0xd0, 0xe5, 0x34, 0x29, 0x13, 0xdd, 0xa3, 0xb8, 0x29, 0x51,
5729 0x9a, 0x1e, 0x42, 0xe9, 0xea, 0xbb, 0x08, 0x86, 0x82, 0x86, 0x90, 0x22,
5730 0x77, 0x7a, 0xdb, 0x80, 0x09, 0x2c, 0x43, 0xeb, 0xc8, 0x6b, 0x23, 0x89,
5731 0xbd, 0xc2, 0x9c, 0x62, 0x04, 0x00, 0xc6, 0x77, 0x28, 0x04, 0x98, 0x92,
5732 0x95, 0x50, 0x1f, 0x85, 0x52, 0x08, 0x75, 0xb3, 0xcd, 0x72, 0xd9, 0x8d,
5733 0x1b, 0x86, 0x43, 0x5b, 0xbf, 0x0a, 0x91, 0xdf, 0x3a, 0xe0, 0xdd, 0x92,
5734 0x91, 0x02, 0x1c, 0x59, 0x57, 0x6d, 0xe9, 0x1a, 0x6d, 0x9e, 0x80, 0xd8,
5735 0xd8, 0x96, 0xe5, 0x94, 0x2d, 0x4e, 0xba, 0x73, 0x68, 0x51, 0x59, 0xd8,
5736 0x20, 0x7d, 0xaf, 0x15, 0xa9, 0x62, 0x1f, 0xf1, 0xc8, 0xed, 0x39, 0xdb,
5737 0x6c, 0x38, 0x07, 0x38, 0x64, 0xbd, 0x39, 0xde, 0x72, 0x89, 0x6e, 0xdc,
5738 0xe0, 0xf9, 0xdb, 0x4b, 0x4f, 0x43, 0xd8, 0x91, 0x15, 0xdd, 0xda, 0x84,
5739 0x4d, 0x0b, 0xdd, 0x4f, 0x54, 0x6f, 0xd8, 0x6b, 0x52, 0x42, 0x9b, 0xff,
5740 0x99, 0x14, 0x12, 0x97, 0x65, 0xf4, 0x49, 0xd4, 0x71, 0x27, 0xad, 0xb1,
5741 0xa4, 0xf7, 0x44, 0x07, 0x8a, 0x42, 0x49, 0x50, 0x06, 0xbe, 0xfe, 0x8d,
5742 0x51, 0x2f, 0xe2, 0x8f, 0x38, 0x2a, 0x40, 0x89, 0x98, 0x6c, 0x75, 0x14,
5743 0xd8, 0x96, 0xec, 0x51, 0x7f, 0x7d, 0x08, 0x39, 0x16, 0xb9, 0xab, 0x8d,
5744 0xae, 0xc1, 0xd5, 0x3d, 0x21, 0xc9, 0xeb, 0x60, 0x3f, 0xc6, 0x11, 0x01,
5745 0x3e, 0x5d, 0x29, 0x92, 0xc8, 0x69, 0xc9, 0x80, 0xfc, 0x18, 0x51, 0xaa,
5746 0x32, 0x52, 0x5b, 0x2c, 0x48, 0xda, 0xc4, 0x2d, 0xa2, 0x8b, 0x2e, 0x46,
5747 0x16, 0xb1, 0x63, 0x52, 0x7f, 0x68, 0x58, 0xe6, 0xac, 0x0a, 0x87, 0x97,
5748 0x1e, 0xb4, 0xc5, 0x98, 0xab, 0x4e, 0xfc, 0x0d, 0xaa, 0x64, 0x0c, 0x2f,
5749 0x5b, 0x4c, 0x54, 0xfc, 0x02, 0x23, 0x96, 0x02, 0xf8, 0x32, 0x50, 0x81,
5750 0x3c, 0x76, 0x91, 0x24, 0xcd, 0xb2, 0x80, 0x35, 0x33, 0x12, 0xd1, 0x86,
5751 0x8f, 0xbe, 0x6c, 0x97, 0xb7, 0x14, 0x8a, 0xfd, 0xde, 0xf5, 0x3c, 0x9f,
5752 0x4c, 0x68, 0x50, 0x3d, 0x3b, 0x5c, 0xa9, 0x87, 0x71, 0x71, 0x0d, 0x6b,
5753 0x7b, 0x60, 0x4c, 0x65, 0x7e, 0xb3, 0x82, 0x7b, 0x1e, 0xdf, 0x5a, 0x97,
5754 0x95, 0xa9, 0x65, 0x89, 0x73, 0x5f, 0x4d, 0x04, 0xc4, 0xf0, 0x0f, 0x41,
5755 0x09, 0x1b, 0x01, 0xe2, 0xe0, 0xe7, 0x91, 0x7d, 0xbf, 0x69, 0xde, 0x21,
5756 0x7b, 0xd0, 0xe7, 0xf9, 0xa9, 0xf2, 0x81, 0xca, 0x51, 0x4e, 0xf0, 0xb4,
5757 0x23, 0xb7, 0x8f, 0x07, 0x4c, 0x03, 0xe8, 0xfd, 0x07, 0xf7, 0x62, 0x77,
5758 0xc0, 0x7f, 0xee, 0xfd, 0xa3, 0x67, 0xcc, 0xef, 0x5c, 0x78, 0x43, 0x3a,
5759 0x5f, 0x31, 0xd9, 0x76, 0x69, 0x74, 0xf3, 0x1d, 0xec, 0xf2, 0x8c, 0xd3,
5760 0x5a, 0xdb, 0x7a, 0xba, 0xb8, 0xfe, 0x71, 0x77, 0xb8, 0xbb, 0xb3, 0xb3,
5761 0xf3, 0xd3, 0x68, 0xc9, 0x53, 0x77, 0x85, 0xe6, 0xe9, 0xcf, 0xd1, 0x32,
5762 0x9d, 0xb2, 0x73, 0x99, 0x16, 0x33, 0x8d, 0xb9, 0xe9, 0x6d, 0xf9, 0xde,
5763 0x76, 0x60, 0x72, 0x54, 0xd3, 0xe5, 0x30, 0xcb, 0xbb, 0x10, 0x12, 0x97,
5764 0x5c, 0x50, 0x3a, 0x28, 0xa2, 0xf4, 0xee, 0xcd, 0xd9, 0xd1, 0xf1, 0xe9,
5765 0xc1, 0x0f, 0x86, 0xab, 0x74, 0x19, 0xf3, 0xdc, 0x93, 0x77, 0x49, 0x5c,
5766 0x3e, 0xbc, 0x2b, 0x93, 0x8a, 0x7e, 0xb9, 0xf9, 0x64, 0x8b, 0x01, 0x48,
5767 0xad, 0xf2, 0x85, 0xd7, 0x49, 0xad, 0x0c, 0xab, 0x02, 0x56, 0xfc, 0xe9,
5768 0x3d, 0x6a, 0x86, 0x43, 0x6a, 0xb8, 0xc7, 0x8a, 0x3d, 0xf4, 0x93, 0xf9,
5769 0xad, 0x94, 0xee, 0x46, 0xb9, 0xec, 0x16, 0x86, 0xf5, 0x52, 0x73, 0xe7,
5770 0xab, 0x88, 0xff, 0x16, 0x7d, 0x79, 0xfa, 0x0d, 0x43, 0x87, 0xdd, 0x65,
5771 0x6a, 0x21, 0x39, 0xda, 0xd1, 0xe7, 0xcf, 0x76, 0xf7, 0xb6, 0x82, 0x52,
5772 0xb5, 0x9c, 0x80, 0xc0, 0x9b, 0xb3, 0x15, 0x0f, 0xfd, 0x59, 0x23, 0xbb,
5773 0x81, 0x56, 0xf6, 0x71, 0x2f, 0xd8, 0x35, 0x76, 0xcc, 0x81, 0x6e, 0x0c,
5774 0x98, 0xd6, 0x0a, 0x04, 0x6f, 0x1d, 0x15, 0x8b, 0x63, 0xe9, 0x94, 0x65,
5775 0xe5, 0xfb, 0x9a, 0x4b, 0x11, 0x75, 0x47, 0x73, 0x0a, 0xba, 0x6d, 0x93,
5776 0x5f, 0xdb, 0xd6, 0xf9, 0x60, 0xf4, 0x84, 0x66, 0x7b, 0x5e, 0x32, 0x23,
5777 0x09, 0xdb, 0x1f, 0xd1, 0x0b, 0xfb, 0x5b, 0x57, 0x85, 0x68, 0x8e, 0xfb,
5778 0xb4, 0xc8, 0x4b, 0x60, 0xb6, 0xa0, 0xfa, 0x24, 0x23, 0xda, 0x3c, 0x43,
5779 0xbc, 0x96, 0x98, 0xb4, 0x7d, 0xd4, 0x1d, 0x30, 0x86, 0x6a, 0xeb, 0x8d,
5780 0x2f, 0xce, 0x7b, 0x03, 0x85, 0xf0, 0xd1, 0x37, 0x86, 0xf4, 0x6f, 0xea,
5781 0x31, 0x98, 0x23, 0x9f, 0xed, 0x3c, 0x7b, 0xaa, 0x8e, 0x45, 0x74, 0x54,
5782 0xea, 0x00, 0xb7, 0xa8, 0xbc, 0xf1, 0x3b, 0x57, 0x01, 0x0d, 0xa4, 0x07,
5783 0x3e, 0xb7, 0x8a, 0x24, 0xaf, 0x3e, 0x48, 0x71, 0xd5, 0x48, 0x3d, 0x92,
5784 0xc7, 0xc2, 0xd9, 0xba, 0x66, 0xd0, 0x29, 0xe8, 0x64, 0xbb, 0x3a, 0xe5,
5785 0xd3, 0xc6, 0x44, 0xa2, 0x7f, 0x2f, 0xf8, 0xcf, 0xce, 0x12, 0xdb, 0xfc,
5786 0x0b, 0x7f, 0x1d, 0x84, 0x64, 0x19, 0xb3, 0x0b, 0x4f, 0x6e, 0x37, 0xb9,
5787 0xd0, 0xda, 0xf0, 0x8d, 0xf1, 0x06, 0x07, 0x63, 0x1b, 0x59, 0xa4, 0xae,
5788 0xb4, 0x0c, 0x83, 0xfa, 0xd4, 0x88, 0x52, 0x6e, 0x83, 0x7f, 0x69, 0x37,
5789 0x7f, 0x78, 0x70, 0xae, 0x95, 0x17, 0xf6, 0xb7, 0xce, 0x41, 0xfa, 0x8f,
5790 0xfd, 0xf6, 0x83, 0xc4, 0x18, 0xfd, 0xcc, 0xbb, 0xe1, 0xc9, 0x88, 0x1e,
5791 0x07, 0x3c, 0xd6, 0x87, 0x57, 0x0c, 0x0d, 0xd3, 0xdd, 0x5d, 0x0f, 0xf3,
5792 0x42, 0x81, 0x1b, 0x31, 0xca, 0x43, 0x73, 0xe8, 0x9f, 0x9a, 0xba, 0x54,
5793 0x95, 0x30, 0x3c, 0xd6, 0x77, 0x3d, 0x8a, 0x4f, 0x0e, 0x9d, 0x36, 0xf2,
5794 0x4e, 0x0f, 0x3b, 0x07, 0x48, 0x2a, 0x7d, 0x86, 0x81, 0x95, 0x9f, 0xb1,
5795 0xb2, 0x4e, 0xab, 0xcc, 0x3e, 0x65, 0x79, 0xa2, 0xa4, 0x74, 0x5a, 0xee,
5796 0x83, 0x14, 0x38, 0x8e, 0x69, 0x92, 0x2a, 0x05, 0xe3, 0x87, 0x70, 0x9e,
5797 0x9f, 0xd4, 0x87, 0xcd, 0xdc, 0x1b, 0x9d, 0xa6, 0xbd, 0xab, 0xf7, 0x14,
5798 0x73, 0x2c, 0x99, 0x43, 0xce, 0xf2, 0x70, 0x34, 0x5b, 0x2d, 0x96, 0x96,
5799 0x0f, 0x9f, 0x66, 0x0a, 0x15, 0xe4, 0x0e, 0x93, 0x8e, 0xbf, 0xce, 0x4d,
5800 0x39, 0x0e, 0x5a, 0x8e, 0x89, 0xe9, 0x7c, 0x85, 0x29, 0x9a, 0x25, 0x42,
5801 0xcf, 0xc7, 0xe0, 0xe0, 0xa0, 0x30, 0xe6, 0xc0, 0x25, 0xa6, 0xc3, 0x86,
5802 0x53, 0x53, 0x48, 0x4c, 0xb9, 0xb7, 0xad, 0x4a, 0x05, 0x6c, 0x79, 0x71,
5803 0xc0, 0x9d, 0x71, 0x1a, 0x6a, 0xf8, 0xba, 0x32, 0xc7, 0x56, 0x15, 0x39,
5804 0x11, 0x8c, 0x6e, 0xb3, 0x38, 0xc8, 0xa3, 0xb1, 0x83, 0xd0, 0xbb, 0x0a,
5805 0x68, 0xc0, 0xf0, 0x4e, 0xeb, 0x4f, 0x4e, 0xf2, 0x32, 0x11, 0x68, 0x39,
5806 0xe6, 0xa1, 0xe5, 0xf3, 0x28, 0xa7, 0x69, 0xfa, 0x5b, 0x06, 0x79, 0xe4,
5807 0xab, 0xf8, 0xcc, 0xe3, 0x0b, 0x16, 0xcb, 0x72, 0xc9, 0x6a, 0x85, 0x8b,
5808 0xe5, 0x57, 0x4b, 0xe4, 0xcb, 0xad, 0xd7, 0xff, 0x41, 0x0b, 0x46, 0xff,
5809 0xff, 0xae, 0x55, 0x48, 0x17, 0x43, 0x15, 0x3a, 0xcc, 0x79, 0x12, 0x73,
5810 0x52, 0xab, 0xb9, 0x60, 0x6f, 0x92, 0xf7, 0x72, 0x87, 0x6c, 0x9f, 0x19,
5811 0x7a, 0x40, 0xdd, 0xb0, 0xdf, 0x07, 0xcf, 0x1e, 0x8c, 0x0f, 0x4f, 0x4e,
5812 0x6a, 0xb5, 0x5b, 0x78, 0xf2, 0x04, 0x22, 0x0e, 0x94, 0x4d, 0xc9, 0x60,
5813 0x79, 0x46, 0x23, 0xa3, 0xbb, 0xad, 0xab, 0x2b, 0x27, 0x87, 0x81, 0x5a,
5814 0x8f, 0xeb, 0x7b, 0xc5, 0x65, 0x6a, 0xd9, 0x78, 0xb1, 0x00, 0x51, 0x56,
5815 0x19, 0x5f, 0x32, 0x19, 0x21, 0x7d, 0xb3, 0x22, 0x93, 0xa9, 0xfc, 0xb5,
5816 0x05, 0x72, 0xf4, 0x5b, 0x8b, 0x5e, 0x47, 0xda, 0xd4, 0x79, 0xa1, 0x99,
5817 0x5d, 0x82, 0x7e, 0x8e, 0x24, 0xe7, 0x89, 0xa9, 0x37, 0xf8, 0x22, 0x21,
5818 0x12, 0x48, 0x3d, 0xb4, 0xce, 0xe2, 0x96, 0x61, 0x07, 0x53, 0x07, 0x67,
5819 0x9e, 0x7a, 0x33, 0xca, 0x66, 0x5d, 0xba, 0xa7, 0x35, 0x83, 0xc5, 0x15,
5820 0x5f, 0x95, 0x83, 0x76, 0x7f, 0xed, 0x61, 0x14, 0x24, 0x38, 0xad, 0xa9,
5821 0x95, 0x1a, 0xd6, 0xcf, 0x91, 0x2b, 0xd8, 0xe3, 0xd5, 0xd2, 0x46, 0xd1,
5822 0x99, 0x5b, 0x98, 0x61, 0x36, 0xf0, 0x65, 0xa6, 0x81, 0x3b, 0xaa, 0x97,
5823 0x7f, 0x5e, 0x57, 0xaa, 0x17, 0xec, 0x41, 0xd7, 0xe9, 0x5d, 0xd2, 0xe8,
5824 0xd8, 0xa6, 0x85, 0x0e, 0x38, 0xda, 0x50, 0x88, 0xef, 0x8c, 0x83, 0x79,
5825 0x79, 0xb6, 0xd5, 0x39, 0x59, 0x58, 0xac, 0x25, 0xd9, 0x9e, 0x4b, 0xcb,
5826 0xa9, 0xb1, 0x61, 0xad, 0x2f, 0xda, 0x06, 0x67, 0x07, 0x17, 0xcd, 0x3c,
5827 0x3f, 0x19, 0x6a, 0x3a, 0xa2, 0xd6, 0xb6, 0x13, 0x9a, 0x17, 0x1e, 0xc7,
5828 0x2c, 0x6f, 0x56, 0xf1, 0xeb, 0x9a, 0x09, 0x5f, 0x07, 0x40, 0x4a, 0x33,
5829 0xd5, 0x58, 0x2c, 0x57, 0xcb, 0xc6, 0xd8, 0x34, 0xf3, 0x45, 0xfb, 0xd7,
5830 0x3c, 0xe5, 0x91, 0x51, 0x2d, 0xc5, 0x7c, 0x43, 0xa7, 0xd4, 0xe4, 0x41,
5831 0xd2, 0x12, 0x1d, 0xcb, 0x91, 0xfa, 0x13, 0xe5, 0x6e, 0x87, 0x99, 0xe9,
5832 0xa2, 0x28, 0x0c, 0x84, 0x7e, 0x9f, 0xb4, 0xce, 0x2a, 0xda, 0xef, 0xfd,
5833 0x86, 0x6a, 0xf9, 0xad, 0x8b, 0x68, 0xfd, 0xfa, 0x22, 0xd9, 0xaa, 0xd8,
5834 0xdc, 0x29, 0x92, 0xff, 0x6f, 0xb1, 0xfd, 0x62, 0xbf, 0xfd, 0x6d, 0x17,
5835 0x7b, 0xc8, 0xe3, 0x7e, 0xf1, 0xf6, 0xe2, 0x74, 0xdd, 0xba, 0xc6, 0x70,
5836 0x2d, 0x70, 0x0e, 0x25, 0x17, 0xa2, 0x6b, 0x42, 0xcb, 0x23, 0x38, 0xe3,
5837 0xf8, 0xd4, 0xb9, 0xa1, 0x29, 0x7a, 0x08, 0xb2, 0x7f, 0x5b, 0xe9, 0x14,
5838 0x7a, 0x10, 0x6a, 0xb3, 0xd4, 0x28, 0xa7, 0x7b, 0x01, 0x43, 0x16, 0xb0,
5839 0xcf, 0x7d, 0x20, 0x6c, 0x6c, 0xce, 0x2b, 0x61, 0xd8, 0xab, 0x11, 0x84,
5840 0x29, 0x81, 0xd5, 0x65, 0xee, 0x2a, 0x9f, 0xc0, 0x71, 0xd3, 0x35, 0xb9,
5841 0x3c, 0x20, 0x4e, 0x88, 0x95, 0xb8, 0xc0, 0xc0, 0x21, 0xd5, 0x6b, 0x35,
5842 0x0a, 0x15, 0x0c, 0x88, 0x94, 0x41, 0x9f, 0xc7, 0xd7, 0xe5, 0xa0, 0x54,
5843 0x07, 0xb9, 0x2f, 0x75, 0x18, 0x9e, 0x66, 0x1d, 0x89, 0x06, 0x66, 0xfa,
5844 0x62, 0x42, 0x61, 0xab, 0x80, 0x4f, 0xdd, 0x8e, 0x94, 0xed, 0x2a, 0x9e,
5845 0xdf, 0x22, 0xcf, 0x6c, 0x14, 0xbd, 0x96, 0xc9, 0xa5, 0x0e, 0x32, 0x79,
5846 0x5c, 0x17, 0x9d, 0xdf, 0x64, 0x75, 0x7d, 0x0d, 0xb2, 0xe8, 0x03, 0x39,
5847 0x89, 0x4a, 0x2b, 0x6f, 0x82, 0x3b, 0x46, 0xff, 0xf3, 0xbe, 0xe6, 0xf4,
5848 0xf4, 0x6e, 0xe8, 0xd0, 0x66, 0x68, 0x22, 0x99, 0x45, 0x3d, 0x65, 0x8e,
5849 0x6b, 0xf1, 0x8d, 0xf0, 0x26, 0x18, 0x44, 0xfd, 0x17, 0xdd, 0x2f, 0x89,
5850 0x45, 0xae, 0xe5, 0x46, 0x9d, 0x67, 0x98, 0x26, 0xf2, 0x26, 0xa5, 0x83,
5851 0x2d, 0x6b, 0xe3, 0x0d, 0x25, 0x17, 0x4f, 0x42, 0x84, 0x4a, 0x46, 0xdf,
5852 0xd9, 0xc9, 0x3f, 0xd9, 0xf7, 0x8c, 0x04, 0x1e, 0x64, 0x3c, 0x57, 0x79,
5853 0x8b, 0x23, 0x4f, 0x89, 0x38, 0xf4, 0xfb, 0xdd, 0xc5, 0xad, 0xf5, 0x28,
5854 0x4e, 0x4d, 0x65, 0x88, 0x4d, 0x04, 0xf1, 0x93, 0xc4, 0x24, 0x19, 0x93,
5855 0x23, 0x37, 0x97, 0xe5, 0xa6, 0x15, 0x4b, 0xdb, 0x24, 0x9a, 0x62, 0x2f,
5856 0x26, 0xde, 0x06, 0xf2, 0xec, 0xcf, 0x16, 0x12, 0x9a, 0xe7, 0xf9, 0xad,
5857 0x16, 0x6e, 0x5c, 0x77, 0x3a, 0x9a, 0x2b, 0xdc, 0xef, 0x1b, 0x81, 0x5a,
5858 0x1a, 0x4a, 0x14, 0x07, 0x27, 0x3f, 0x68, 0xe5, 0xd0, 0xd5, 0xc5, 0x34,
5859 0x68, 0x53, 0x41, 0x4a, 0x8a, 0xa2, 0xa5, 0x07, 0x39, 0x63, 0xa4, 0x6e,
5860 0x49, 0x5b, 0xd4, 0xec, 0x9f, 0x35, 0xc6, 0x6a, 0x8d, 0x85, 0xc6, 0x58,
5861 0x87, 0x9f, 0x3b, 0xc4, 0x9b, 0x3b, 0x86, 0x37, 0x08, 0x07, 0x40, 0xe6,
5862 0x81, 0xa2, 0xb9, 0xe7, 0x07, 0x11, 0xf7, 0xe3, 0x1d, 0x46, 0xe6, 0x3e,
5863 0x6c, 0xee, 0xa6, 0xd6, 0x39, 0x52, 0x56, 0x3c, 0x73, 0xc5, 0x5a, 0x30,
5864 0x08, 0x93, 0xc6, 0x26, 0xb4, 0x23, 0x55, 0xe4, 0x7b, 0xe4, 0x3c, 0xa9,
5865 0x12, 0xf1, 0xd3, 0x2a, 0xc5, 0x62, 0xeb, 0xb6, 0xcd, 0x55, 0x21, 0x2c,
5866 0x20, 0x20, 0xb9, 0x98, 0xf2, 0x5d, 0xad, 0xd0, 0x2c, 0x45, 0x37, 0x55,
5867 0x64, 0xa0, 0x5c, 0x34, 0x49, 0x3c, 0x92, 0x70, 0x62, 0x2b, 0x2e, 0xfa,
5868 0x9e, 0x0d, 0xe2, 0xf7, 0x76, 0x85, 0xaf, 0x6b, 0x20, 0x57, 0x38, 0x53,
5869 0x3e, 0xa4, 0x8d, 0x07, 0x6c, 0x28, 0x9d, 0xd0, 0x44, 0xbe, 0x41, 0xf4,
5870 0xe4, 0xd9, 0xde, 0xc0, 0x88, 0x12, 0xc4, 0xc2, 0x96, 0xca, 0x3f, 0x60,
5871 0x70, 0x99, 0xae, 0xf8, 0x66, 0x00, 0x67, 0x3f, 0xa4, 0xba, 0xbb, 0xb9,
5872 0x07, 0x01, 0xd0, 0xf7, 0xbe, 0xb0, 0x2b, 0x49, 0xcf, 0xd2, 0xe1, 0x98,
5873 0x9d, 0xc1, 0x15, 0x27, 0x32, 0x13, 0xbe, 0xf2, 0xd3, 0xd1, 0xe1, 0xf0,
5874 0x13, 0x4f, 0x3d, 0x32, 0x43, 0x51, 0x5a, 0xb2, 0xf7, 0xc5, 0xb0, 0xd7,
5875 0xc9, 0x5b, 0xeb, 0x0b, 0x86, 0x2a, 0xa1, 0x78, 0x7d, 0x6b, 0xd9, 0x27,
5876 0x3c, 0xc6, 0x9b, 0x4b, 0x0f, 0x54, 0x69, 0xb5, 0x6a, 0xfb, 0xd0, 0x94,
5877 0x23, 0x2a, 0x8a, 0xe0, 0x20, 0x85, 0x0e, 0xe6, 0x29, 0xf7, 0x5e, 0x4c,
5878 0xec, 0x25, 0xbe, 0x72, 0x55, 0x00, 0x06, 0xc9, 0x35, 0x6e, 0x62, 0x34,
5879 0x88, 0xcd, 0xfb, 0xc2, 0xc1, 0x3c, 0x2c, 0x67, 0x5a, 0xf7, 0xa1, 0xd1,
5880 0xdb, 0x7f, 0xf8, 0x0f, 0xfb, 0x25, 0x58, 0xa7, 0xfe, 0x61, 0x1e, 0x7f,
5881 0x0b, 0x59, 0xc4, 0xdd, 0xfa, 0x2c, 0xfa, 0x83, 0x37, 0x7a, 0x65, 0x6a,
5882 0x90, 0x1d, 0xcf, 0x0d, 0xfe, 0x61, 0xe4, 0x02, 0x15, 0x56, 0x0f, 0x34,
5883 0xca, 0x92, 0x7b, 0x28, 0xbd, 0x96, 0xb6, 0x95, 0x6d, 0xfc, 0x57, 0x3a,
5884 0x80, 0x48, 0x9a, 0x63, 0xda, 0x8e, 0xec, 0x62, 0x96, 0x9c, 0x53, 0x11,
5885 0xaf, 0xbf, 0x16, 0xaa, 0x34, 0xab, 0x78, 0x22, 0x9c, 0x7f, 0xfa, 0xf3,
5886 0xf6, 0x45, 0x92, 0xa3, 0x80, 0xfb, 0x58, 0x8d, 0x3f, 0x0c, 0x85, 0x52,
5887 0x4c, 0x25, 0x5c, 0xe8, 0x01, 0x23, 0xfb, 0x99, 0x95, 0x91, 0xcf, 0x9e,
5888 0xec, 0x0d, 0x03, 0x5b, 0x65, 0xd0, 0x89, 0xe0, 0x90, 0x1b, 0x76, 0x50,
5889 0xee, 0x57, 0xc8, 0xe8, 0xfe, 0xa0, 0xe9, 0xe9, 0x92, 0xa0, 0xb4, 0x82,
5890 0x11, 0x16, 0x54, 0x5d, 0x59, 0xeb, 0x7c, 0xfc, 0x80, 0xf0, 0x78, 0xca,
5891 0x08, 0xa3, 0x83, 0x91, 0x00, 0x7c, 0x57, 0xdc, 0x19, 0x2e, 0x7b, 0x2b,
5892 0x8f, 0x2e, 0x0d, 0xc1, 0x4a, 0x41, 0x88, 0x90, 0xaf, 0xe4, 0x52, 0x34,
5893 0x17, 0xd6, 0x8f, 0xf7, 0x94, 0x23, 0x6e, 0xc8, 0x27, 0xcd, 0xf0, 0xf1,
5894 0x82, 0x0e, 0x5a, 0x4e, 0xc6, 0xce, 0x90, 0x3e, 0x60, 0xa2, 0xf9, 0x7c,
5895 0xe6, 0x76, 0x8f, 0x54, 0xea, 0x71, 0x11, 0xea, 0xfd, 0xc7, 0x9b, 0xd3,
5896 0x03, 0xa7, 0x35, 0x7c, 0x0e, 0xa4, 0xbc, 0x43, 0xda, 0xac, 0x9b, 0x0d,
5897 0x52, 0x26, 0x74, 0x4f, 0xe2, 0x08, 0x6f, 0x3d, 0xaf, 0xd6, 0x0f, 0x8c,
5898 0x19, 0xeb, 0x75, 0x19, 0x1f, 0xff, 0xaa, 0x24, 0xc0, 0x69, 0x61, 0x19,
5899 0x0e, 0xf2, 0x59, 0x88, 0x33, 0x52, 0x9a, 0x4b, 0x36, 0xbf, 0xcc, 0xff,
5900 0xdf, 0x51, 0x06, 0x31, 0x6a, 0xe5, 0x0e, 0x7c, 0x36, 0xda, 0x53, 0x3f,
5901 0x5f, 0x1a, 0x7b, 0xa2, 0x1a, 0x19, 0x01, 0xf7, 0x4d, 0xb2, 0x0e, 0x00,
5902 0xb2, 0xb8, 0xc9, 0xef, 0x1f, 0x6f, 0xce, 0x55, 0x64, 0xe0, 0x73, 0x7e,
5903 0xdd, 0xcc, 0x68, 0xd5, 0x42, 0x49, 0xb2, 0xf3, 0x53, 0x23, 0x53, 0x62,
5904 0x6c, 0x33, 0x8d, 0x49, 0xe9, 0x0a, 0x72, 0x47, 0x6b, 0x52, 0x96, 0xa3,
5905 0x4d, 0xc7, 0x7c, 0x25, 0x74, 0xd9, 0x5a, 0x19, 0xd4, 0x32, 0x18, 0x8d,
5906 0x24, 0xfb, 0x43, 0xcd, 0xc1, 0x8b, 0xda, 0x4a, 0x05, 0x7b, 0xda, 0xc2,
5907 0xc6, 0xb1, 0x89, 0xfa, 0x4e, 0x32, 0x69, 0x5d, 0xee, 0xa0, 0x4f, 0xac,
5908 0x1d, 0x28, 0x9e, 0x28, 0x07, 0x41, 0xad, 0x2b, 0xe0, 0x09, 0xc7, 0x17,
5909 0xce, 0xb0, 0x0f, 0x48, 0x2d, 0xce, 0x75, 0x1e, 0x7d, 0xa2, 0x4c, 0x87,
5910 0x70, 0x5f, 0xb8, 0x4c, 0x42, 0x39, 0x48, 0xed, 0xe4, 0x5a, 0xa4, 0xf3,
5911 0x0f, 0x34, 0x37, 0x4f, 0x35, 0xa1, 0x1a, 0x28, 0xd2, 0x55, 0xe7, 0x06,
5912 0xc6, 0x80, 0x58, 0x75, 0xb2, 0x15, 0xb4, 0xfa, 0x40, 0x09, 0x16, 0x19,
5913 0x2e, 0x06, 0x8a, 0xe4, 0x1e, 0x37, 0x54, 0xad, 0x53, 0x99, 0xdf, 0xfa,
5914 0x4a, 0x3b, 0x30, 0x10, 0x1f, 0x6f, 0x4e, 0x52, 0xb2, 0x81, 0x49, 0x64,
5915 0x39, 0x12, 0xac, 0x2b, 0x6c, 0x4a, 0x14, 0xf9, 0x50, 0xe3, 0xa0, 0xbb,
5916 0xcb, 0x75, 0xd1, 0x6a, 0x4f, 0xbe, 0xef, 0x91, 0x2f, 0x36, 0x1c, 0x7d,
5917 0x7c, 0xa7, 0xe4, 0x71, 0xae, 0xfe, 0x17, 0x96, 0xde, 0x8c, 0x42, 0xb0,
5918 0x03, 0xe0, 0xb8, 0x9b, 0x2d, 0x7b, 0x3e, 0x6a, 0x59, 0xbc, 0x2c, 0x95,
5919 0x1f, 0x31, 0xa2, 0x78, 0xb9, 0xd4, 0x4f, 0x7d, 0x78, 0x11, 0x7e, 0xa3,
5920 0xf1, 0x6a, 0x59, 0x3f, 0xa6, 0xcc, 0x70, 0xe3, 0xde, 0xe6, 0x5b, 0x61,
5921 0x79, 0x03, 0xb6, 0x8f, 0xfc, 0xc3, 0x3a, 0x2b, 0x9c, 0x9c, 0xfa, 0xa0,
5922 0x1f, 0x61, 0x37, 0x09, 0xa7, 0x81, 0x99, 0x7a, 0x55, 0xa5, 0xfd, 0xaf,
5923 0x9a, 0x07, 0xc1, 0x06, 0x59, 0x9e, 0x2f, 0x8f, 0x42, 0x88, 0xc7, 0x8d,
5924 0xdf, 0x60, 0x92, 0xd0, 0x7d, 0x6d, 0xf4, 0xa1, 0xde, 0x01, 0xbe, 0x86,
5925 0xcb, 0x87, 0x50, 0xfb, 0x70, 0x02, 0x46, 0x93, 0x85, 0x5b, 0x68, 0x50,
5926 0x18, 0x9e, 0xf7, 0x41, 0xcd, 0x10, 0x2b, 0xd8, 0x0b, 0x95, 0x00, 0xbc,
5927 0x19, 0x34, 0x35, 0x77, 0x77, 0x60, 0x63, 0x76, 0xc0, 0x01, 0x9b, 0xcd,
5928 0x31, 0x42, 0x4c, 0x2e, 0xef, 0x77, 0xa0, 0x58, 0xe9, 0x16, 0xc9, 0xc2,
5929 0x21, 0xfe, 0xba, 0x27, 0x1b, 0x05, 0x93, 0x79, 0xd3, 0x2b, 0x4b, 0x43,
5930 0x50, 0xee, 0xee, 0xf1, 0xef, 0x93, 0x86, 0xe3, 0x2a, 0x52, 0x76, 0x39,
5931 0x93, 0xfd, 0x2f, 0x1a, 0x68, 0x60, 0x82, 0x07, 0xaa, 0xea, 0x8f, 0x13,
5932 0x05, 0x18, 0x7d, 0x36, 0xb5, 0x9a, 0xb1, 0x6d, 0x5c, 0xbc, 0x7c, 0x13,
5933 0x95, 0x5f, 0x2a, 0xf3, 0x10, 0x2f, 0xe8, 0x87, 0x7a, 0x17, 0x0b, 0x55,
5934 0x78, 0x63, 0x16, 0xc4, 0x2b, 0xaf, 0xf8, 0x14, 0x48, 0x75, 0x94, 0xbc,
5935 0x4f, 0xda, 0x9c, 0x8c, 0x5d, 0x5a, 0x1d, 0x9a, 0x9c, 0xe7, 0xc9, 0x27,
5936 0x0c, 0x07, 0xb3, 0x15, 0xf8, 0x96, 0xdb, 0x77, 0xf0, 0xe8, 0xa3, 0xb2,
5937 0xeb, 0xd1, 0x55, 0xf4, 0xfc, 0xe3, 0xb7, 0xcf, 0x6f, 0xa2, 0xcb, 0x25,
5938 0x4d, 0x1e, 0xb4, 0x81, 0x5d, 0x5b, 0x47, 0x17, 0xe3, 0x03, 0x73, 0xc6,
5939 0x80, 0x06, 0xac, 0x80, 0x38, 0x8f, 0xdc, 0x46, 0x6a, 0xaa, 0x08, 0xb1,
5940 0xae, 0xdb, 0x6c, 0x18, 0x1d, 0xb6, 0x8a, 0x92, 0x62, 0x40, 0x1d, 0x28,
5941 0xb0, 0x89, 0xb9, 0x74, 0x12, 0xbd, 0x5b, 0x91, 0x59, 0xc2, 0xbb, 0xa7,
5942 0x4a, 0xa2, 0x8f, 0x51, 0x72, 0x25, 0xad, 0x62, 0x9b, 0x41, 0x34, 0xfd,
5943 0x39, 0x79, 0x67, 0x74, 0x76, 0xba, 0x67, 0x60, 0x1b, 0x78, 0x0a, 0x0a,
5944 0x01, 0x59, 0x88, 0x2d, 0xc8, 0xf6, 0xb9, 0x3d, 0xdd, 0xb1, 0x03, 0xd1,
5945 0x9a, 0xe2, 0x98, 0xa2, 0x8f, 0x6b, 0x6d, 0x2d, 0xf4, 0x0a, 0x6d, 0xa9,
5946 0x27, 0xe8, 0xd1, 0xb6, 0x2c, 0xc4, 0xe4, 0xba, 0x05, 0xd3, 0xf7, 0x03,
5947 0x8b, 0xd5, 0x65, 0x19, 0xe3, 0x8b, 0xae, 0xcc, 0xf9, 0x47, 0xf5, 0x5e,
5948 0x3c, 0x5a, 0x69, 0xf6, 0x11, 0x0b, 0x00, 0x2f, 0x90, 0x59, 0x6d, 0x1b,
5949 0xed, 0x52, 0x27, 0xc9, 0xcc, 0xaf, 0x03, 0x7f, 0x3a, 0x66, 0xa7, 0x6a,
5950 0xc0, 0x35, 0x28, 0xcf, 0x04, 0x97, 0x52, 0xba, 0x52, 0x94, 0xab, 0x42,
5951 0x28, 0x51, 0x3e, 0x2c, 0x4a, 0x6e, 0xfb, 0x5b, 0x7b, 0x0c, 0xa6, 0xe1,
5952 0xc1, 0x2c, 0x99, 0x1d, 0x0a, 0x1b, 0x69, 0x4d, 0xaf, 0xdc, 0x7a, 0x86,
5953 0xbd, 0xd2, 0x1f, 0x36, 0xfb, 0xe4, 0x3b, 0xf5, 0x0b, 0x7b, 0x25, 0xed,
5954 0x7d, 0x44, 0x9f, 0x94, 0x53, 0xee, 0x1d, 0xf0, 0x27, 0xaa, 0x12, 0x0e,
5955 0xe5, 0x67, 0xc3, 0x4b, 0xfc, 0x4c, 0x99, 0xcb, 0x6d, 0xae, 0x93, 0x99,
5956 0x4b, 0x3d, 0x19, 0xb4, 0xc9, 0xd5, 0xa2, 0x2e, 0xd8, 0x2c, 0xae, 0x15,
5957 0x59, 0x9b, 0x6e, 0x97, 0x2e, 0x03, 0x66, 0xc4, 0x71, 0x51, 0xcd, 0x37,
5958 0xce, 0x07, 0x43, 0x97, 0xed, 0xc8, 0xfd, 0x02, 0x44, 0x14, 0x7a, 0x2d,
5959 0x28, 0x80, 0xd3, 0xfe, 0x68, 0xfd, 0xf1, 0x11, 0xc4, 0x0e, 0xdc, 0x07,
5960 0xd3, 0xc2, 0xa5, 0xeb, 0x03, 0x06, 0x1d, 0xfc, 0x58, 0x6f, 0x29, 0x09,
5961 0x8a, 0x51, 0x28, 0x73, 0xce, 0xc7, 0x5c, 0xdf, 0xd6, 0xdd, 0x2a, 0xda,
5962 0xfd, 0xb0, 0x8f, 0xbd, 0x93, 0x3b, 0x0b, 0x78, 0x15, 0xe2, 0x9a, 0x90,
5963 0x63, 0x1a, 0x31, 0x19, 0x16, 0x8f, 0x1b, 0x9e, 0xfa, 0x6b, 0xec, 0x87,
5964 0xfa, 0xa1, 0x43, 0xd1, 0xec, 0x29, 0xbb, 0xaf, 0x6b, 0xe9, 0x05, 0xe6,
5965 0x67, 0xc0, 0x9d, 0x70, 0xca, 0xa9, 0x58, 0x7c, 0x09, 0xff, 0xc0, 0x61,
5966 0xeb, 0x1a, 0xd4, 0xd4, 0x12, 0xf0, 0x7e, 0x48, 0xfa, 0x4c, 0x2b, 0x39,
5967 0xb2, 0x9d, 0x9e, 0x7d, 0x45, 0xf7, 0x42, 0xd0, 0x39, 0xbf, 0x03, 0xbd,
5968 0xe3, 0x65, 0x50, 0xc7, 0x05, 0x3f, 0x30, 0xdc, 0x89, 0x90, 0x70, 0xae,
5969 0x96, 0x52, 0x24, 0x90, 0xf9, 0x4e, 0x72, 0xb8, 0xc9, 0x3f, 0x54, 0x24,
5970 0xb2, 0xa3, 0x3c, 0x8d, 0x01, 0xde, 0x1a, 0xa9, 0xe3, 0xed, 0xdb, 0x5d,
5971 0x59, 0xce, 0xdf, 0xd1, 0x93, 0xe9, 0xd5, 0xc3, 0x3b, 0x51, 0xf1, 0x1f,
5972 0x71, 0x84, 0xca, 0x83, 0xa6, 0x38, 0x99, 0x1b, 0x92, 0xb6, 0x31, 0x19,
5973 0x78, 0x09, 0x99, 0x63, 0x28, 0xd7, 0x89, 0xcc, 0x7a, 0xfc, 0xf5, 0xa3,
5974 0xec, 0x04, 0x73, 0x13, 0xb8, 0x1d, 0x37, 0x62, 0xa2, 0x30, 0xf8, 0xd6,
5975 0xf9, 0x03, 0xd6, 0xd6, 0x87, 0x6d, 0x2c, 0x6e, 0xc4, 0x97, 0xad, 0x79,
5976 0xcc, 0xfc, 0xfe, 0xf5, 0x42, 0x51, 0x41, 0x26, 0xdd, 0x8b, 0x1f, 0x2d,
5977 0x13, 0x61, 0x7f, 0x7b, 0xfb, 0xa7, 0x1f, 0x39, 0x10, 0xf7, 0x85, 0x45,
5978 0xdf, 0x7e, 0xfa, 0x98, 0x82, 0x5e, 0xcd, 0x0c, 0x49, 0x5f, 0x35, 0xeb,
5979 0xd7, 0x67, 0x15, 0xf8, 0x38, 0x3f, 0x7b, 0xf2, 0x3e, 0x15, 0xb6, 0xa5,
5980 0x30, 0x44, 0x18, 0xb8, 0xbf, 0x54, 0x53, 0x94, 0x49, 0xd5, 0x55, 0x98,
5981 0x59, 0xe3, 0xa6, 0x86, 0x85, 0x97, 0x21, 0x14, 0x49, 0x7f, 0x6d, 0xda,
5982 0x03, 0x37, 0x84, 0xcf, 0xc5, 0x1b, 0x1d, 0x77, 0x4a, 0x1f, 0xfd, 0x2c,
5983 0x25, 0xeb, 0xe3, 0x3d, 0x70, 0xa1, 0x3d, 0x40, 0xbf, 0xad, 0xcf, 0x5d,
5984 0xc0, 0xab, 0x83, 0x79, 0xe0, 0x50, 0x0f, 0x2e, 0x14, 0x4a, 0xf1, 0xc3,
5985 0x70, 0x7a, 0x40, 0x0e, 0xc2, 0x32, 0x65, 0xe2, 0xf8, 0xed, 0x54, 0xbc,
5986 0x74, 0xef, 0x00, 0xc2, 0x52, 0xfc, 0xc2, 0x5a, 0x3c, 0x5b, 0x8d, 0x2a,
5987 0x6e, 0xc1, 0x93, 0x19, 0xea, 0xd1, 0x46, 0xbf, 0x66, 0xef, 0xbc, 0x49,
5988 0x47, 0x77, 0xed, 0xb5, 0x69, 0xd8, 0x45, 0x89, 0xdd, 0xb4, 0x8a, 0xd5,
5989 0x3b, 0xa7, 0x20, 0x58, 0x7d, 0xf8, 0x00, 0x8c, 0x5b, 0xc1, 0x3a, 0x25,
5990 0x46, 0xe4, 0x69, 0xaa, 0x56, 0x74, 0xa6, 0xcc, 0xdb, 0xd5, 0xd2, 0xe0,
5991 0x85, 0x16, 0x99, 0x56, 0x3c, 0xe0, 0x70, 0x69, 0x62, 0xdc, 0x1c, 0xec,
5992 0x83, 0x36, 0xf2, 0x88, 0x37, 0x54, 0x26, 0x0c, 0xf7, 0xdf, 0x16, 0x8b,
5993 0xba, 0xf0, 0x0b, 0xc7, 0x53, 0xe5, 0xc9, 0xbd, 0x8f, 0x1f, 0x8c, 0xfa,
5994 0x49, 0x5e, 0x6b, 0xb1, 0xc1, 0x74, 0x89, 0xd9, 0x20, 0x04, 0x41, 0x85,
5995 0xc5, 0x4f, 0xad, 0xb4, 0xcf, 0xa6, 0xc2, 0xbb, 0x9b, 0x69, 0x03, 0x56,
5996 0x7e, 0x0e, 0x05, 0x68, 0xa0, 0x5c, 0x39, 0x38, 0xfe, 0xe7, 0xf5, 0x00,
5997 0x8d, 0x57, 0x6c, 0xff, 0xfb, 0xc4, 0x5b, 0x1b, 0x9b, 0x46, 0x45, 0xb4,
5998 0xc8, 0x4d, 0x98, 0x84, 0xe0, 0x08, 0xd2, 0xd6, 0xa5, 0x80, 0x73, 0x42,
5999 0xad, 0xaf, 0x40, 0x94, 0xfb, 0xb2, 0x74, 0x35, 0x6e, 0x4e, 0xdb, 0x2a,
6000 0xae, 0xd8, 0xa9, 0x54, 0x4f, 0xec, 0x24, 0x43, 0xa0, 0x16, 0x07, 0x01,
6001 0xdf, 0xc1, 0x20, 0xc8, 0xdc, 0x65, 0xf8, 0x8c, 0xcf, 0x4a, 0xc7, 0xe7,
6002 0x9c, 0x41, 0xda, 0x41, 0x86, 0xe9, 0x08, 0x3a, 0x91, 0x89, 0x1d, 0x45,
6003 0xae, 0x8a, 0x7a, 0x95, 0xd7, 0x68, 0x46, 0xdf, 0xe4, 0x01, 0x87, 0xa7,
6004 0x4f, 0xac, 0xee, 0xf0, 0x7f, 0xf2, 0x67, 0xe5, 0x7e, 0x32, 0x17, 0x7a,
6005 0x53, 0x0f, 0xaf, 0xae, 0x50, 0x69, 0x03, 0x21, 0x0c, 0xb7, 0xcd, 0x7e,
6006 0xdb, 0xec, 0xb2, 0xef, 0x85, 0x36, 0x57, 0xc6, 0xbf, 0xb6, 0xfe, 0x9b,
6007 0xa0, 0x4a, 0xc7, 0x2e, 0x9f, 0xc2, 0x71, 0xc8, 0xda, 0x9b, 0x0a, 0x8c,
6008 0x0d, 0x11, 0xe8, 0x1f, 0x5f, 0x11, 0x13, 0x43, 0x75, 0x45, 0xe1, 0x2e,
6009 0x6b, 0xd9, 0x53, 0x4d, 0x0a, 0xb2, 0x0e, 0x36, 0xd5, 0x46, 0x99, 0x42,
6010 0xed, 0x8a, 0x27, 0x8e, 0xc5, 0xd4, 0x18, 0x75, 0xa6, 0x83, 0x49, 0x63,
6011 0xfd, 0xbe, 0x3a, 0xbe, 0xdc, 0x6a, 0x53, 0x41, 0xc5, 0xb3, 0xb0, 0x63,
6012 0x11, 0xa8, 0xd3, 0x55, 0x0c, 0x62, 0xc7, 0x52, 0xec, 0xb2, 0x05, 0x32,
6013 0xce, 0xbc, 0x5c, 0xce, 0x63, 0x29, 0xd5, 0xd1, 0x62, 0x4c, 0x3c, 0xa4,
6014 0x69, 0xc8, 0xb3, 0x30, 0x00, 0x1e, 0x1a, 0x70, 0xa1, 0xb7, 0x83, 0xb3,
6015 0x92, 0x24, 0xa8, 0x77, 0x74, 0x7c, 0x7a, 0x7c, 0x79, 0x3c, 0x40, 0x32,
6016 0x69, 0xcb, 0x26, 0x9c, 0x43, 0x42, 0xaa, 0x64, 0x7a, 0x93, 0xe5, 0x64,
6017 0xfc, 0xf0, 0x72, 0x20, 0xd5, 0xe3, 0xbb, 0x64, 0x72, 0x74, 0xf0, 0x2d,
6018 0x13, 0xff, 0xb3, 0x44, 0x9d, 0x5f, 0x9c, 0x9d, 0xbf, 0x3a, 0x79, 0x73,
6019 0x34, 0x88, 0x0e, 0xcf, 0xce, 0x7f, 0x18, 0x44, 0xaf, 0xcf, 0xbe, 0x3d,
6020 0xee, 0xc0, 0x15, 0x32, 0x3e, 0xa1, 0x8d, 0xc1, 0x7d, 0xb5, 0x66, 0xb5,
6021 0x43, 0xee, 0x73, 0x5d, 0xea, 0x60, 0xf2, 0x4f, 0x4f, 0xc6, 0x97, 0x58,
6022 0xfa, 0x26, 0x94, 0x01, 0xb0, 0x4d, 0xa9, 0x5a, 0x93, 0xf2, 0x90, 0xb1,
6023 0xf4, 0xd4, 0xd6, 0x6f, 0x09, 0x7e, 0x79, 0x1f, 0x57, 0x55, 0x37, 0x31,
6024 0x59, 0x19, 0xc3, 0x99, 0xec, 0x62, 0x81, 0xc8, 0xc1, 0x11, 0xaa, 0xf3,
6025 0xf0, 0xe3, 0x55, 0xad, 0x28, 0x2a, 0x0d, 0xbf, 0x85, 0x38, 0xb1, 0x23,
6026 0x0b, 0x23, 0x23, 0xa9, 0x8b, 0x85, 0x3a, 0x3c, 0x13, 0xae, 0x78, 0xcb,
6027 0x74, 0xe5, 0x7e, 0xa4, 0x13, 0xe6, 0x13, 0x1d, 0x85, 0x79, 0x07, 0x6d,
6028 0x4d, 0xa3, 0xd8, 0x15, 0x7c, 0xc9, 0xc5, 0x3c, 0xde, 0xcf, 0xae, 0x47,
6029 0x79, 0x91, 0xb2, 0x63, 0x11, 0x59, 0x4a, 0xd6, 0x58, 0x84, 0x02, 0x26,
6030 0x2c, 0x87, 0x2c, 0x4d, 0x83, 0xce, 0x0a, 0x6b, 0x42, 0x0c, 0x6e, 0x49,
6031 0x04, 0xf5, 0x76, 0x17, 0x08, 0x58, 0xf0, 0xaf, 0x5c, 0x93, 0x41, 0x35,
6032 0xd4, 0x8e, 0x84, 0xbd, 0xf2, 0x81, 0xd6, 0x79, 0x11, 0x24, 0x2d, 0xfb,
6033 0x72, 0xe1, 0x9e, 0x1b, 0x3f, 0x18, 0xec, 0x20, 0x2c, 0x78, 0xde, 0x66,
6034 0xaa, 0x4c, 0xc9, 0xdc, 0xaa, 0x2d, 0xd8, 0x03, 0xd0, 0x06, 0x7c, 0xd5,
6035 0x55, 0x5a, 0x46, 0xfe, 0xb3, 0x93, 0xce, 0xd7, 0x5d, 0xd6, 0x79, 0x50,
6036 0x7c, 0xed, 0x52, 0x5a, 0x41, 0x79, 0x59, 0x18, 0x04, 0x27, 0x8d, 0x2b,
6037 0x6e, 0x34, 0x5b, 0x15, 0xed, 0x4b, 0x42, 0x1c, 0x05, 0x1f, 0x94, 0x9c,
6038 0xba, 0x41, 0xcd, 0xcf, 0xc1, 0x11, 0xfb, 0xd2, 0x97, 0x08, 0xa4, 0xcf,
6039 0x07, 0x2f, 0xb4, 0xc6, 0x64, 0x8c, 0xfc, 0x01, 0x25, 0x41, 0xd0, 0x25,
6040 0x13, 0xd4, 0xdd, 0x68, 0x95, 0xcd, 0x19, 0x25, 0xcf, 0xf6, 0x99, 0xa4,
6041 0x0b, 0xfc, 0xf0, 0x78, 0xa5, 0x74, 0x01, 0x3d, 0x85, 0x99, 0xab, 0x72,
6042 0x64, 0x73, 0x99, 0x77, 0xb1, 0xc0, 0xb0, 0x1c, 0x31, 0xa2, 0xa6, 0x11,
6043 0xe6, 0xa4, 0x2d, 0x0b, 0x7a, 0xa1, 0x4e, 0xaa, 0xe9, 0x28, 0x0a, 0x13,
6044 0x25, 0x81, 0xd1, 0x22, 0x49, 0x16, 0xa5, 0x46, 0x46, 0xd1, 0x40, 0x52,
6045 0x89, 0xc0, 0x58, 0xaf, 0xef, 0x0d, 0x3b, 0x7c, 0x8a, 0x7c, 0xd7, 0x5c,
6046 0x63, 0xee, 0xfc, 0x7a, 0xbb, 0xf8, 0x07, 0x2f, 0x14, 0x32, 0x89, 0x2f,
6047 0xf0, 0x8f, 0x5f, 0x24, 0x16, 0x01, 0xdb, 0xa4, 0x78, 0x52, 0x36, 0x69,
6048 0x0b, 0xd4, 0xe4, 0x63, 0xd8, 0xc2, 0x5a, 0xcf, 0xb6, 0x34, 0xc1, 0x27,
6049 0x58, 0x6e, 0x75, 0x84, 0xf2, 0x75, 0xa1, 0x2e, 0x15, 0x35, 0x91, 0xe8,
6050 0xb0, 0xf2, 0x65, 0x8d, 0x05, 0xc1, 0x98, 0x72, 0x9d, 0x16, 0xb6, 0x3e,
6051 0x71, 0x27, 0x49, 0xaa, 0xdf, 0x70, 0xee, 0x7e, 0x46, 0xda, 0x38, 0x3d,
6052 0x3f, 0xc4, 0x06, 0x78, 0x31, 0x8b, 0xe1, 0x97, 0x46, 0x86, 0x06, 0x35,
6053 0xbd, 0xbe, 0xfe, 0x90, 0x95, 0x1e, 0xb2, 0x0c, 0x12, 0x09, 0x7b, 0xb0,
6054 0x8d, 0xce, 0xd9, 0xf3, 0x20, 0xb4, 0xd7, 0xc2, 0x76, 0x1c, 0x85, 0xaf,
6055 0x74, 0x9e, 0xbb, 0xae, 0x36, 0x5a, 0x1b, 0x45, 0x3c, 0xac, 0x00, 0x70,
6056 0xd2, 0xe3, 0xa8, 0x83, 0xc9, 0xfd, 0x5e, 0xd3, 0xa4, 0xf8, 0xe9, 0xbb,
6057 0xf0, 0xea, 0xc2, 0xeb, 0x09, 0xca, 0x8f, 0xfa, 0x58, 0xcc, 0xa2, 0x46,
6058 0xcd, 0x43, 0xe4, 0x6b, 0xd2, 0x69, 0x84, 0x67, 0xd4, 0x28, 0x2d, 0xdb,
6059 0x99, 0x8b, 0x80, 0x00, 0xb0, 0x4b, 0xdb, 0xb0, 0x5a, 0x42, 0x5e, 0xc1,
6060 0xb8, 0x1f, 0x57, 0x6c, 0x81, 0x7a, 0xa9, 0xd1, 0x0c, 0x50, 0xb7, 0x2a,
6061 0x82, 0xa7, 0xbb, 0x80, 0x86, 0x61, 0x7a, 0x7c, 0x4e, 0xaf, 0x66, 0x42,
6062 0xcb, 0xf9, 0xf8, 0xbb, 0x7a, 0x52, 0x22, 0xb5, 0xc3, 0xfd, 0x5b, 0x9f,
6063 0x90, 0x28, 0xe4, 0xec, 0xcd, 0x71, 0xaa, 0xcd, 0xd1, 0xe6, 0xc2, 0x61,
6064 0x47, 0xbc, 0x68, 0x9e, 0xc6, 0x1b, 0x61, 0xc5, 0xd9, 0xcd, 0xa1, 0x2f,
6065 0xd5, 0x09, 0xc2, 0x6b, 0x59, 0xe1, 0xb6, 0x13, 0x31, 0x76, 0xde, 0x3c,
6066 0x07, 0x04, 0xcc, 0xe7, 0x33, 0xbf, 0xa1, 0x2c, 0x89, 0x82, 0x3f, 0xb6,
6067 0x2d, 0xb1, 0x02, 0xd3, 0x78, 0xe0, 0x10, 0x6a, 0x9d, 0xff, 0x8d, 0xc6,
6068 0xb2, 0xe4, 0x3e, 0x6c, 0xcc, 0x1b, 0x7b, 0xae, 0xc1, 0xdf, 0x70, 0x5f,
6069 0xdc, 0xf0, 0xbe, 0xb8, 0x49, 0xe6, 0xcb, 0x96, 0x6f, 0x81, 0x7d, 0xae,
6070 0xfc, 0x8b, 0xe0, 0xe1, 0xd7, 0x03, 0x70, 0xca, 0x66, 0xab, 0x56, 0x1d,
6071 0xce, 0xd7, 0xf8, 0xe1, 0x28, 0x3a, 0x52, 0x18, 0x1b, 0xf2, 0x37, 0x56,
6072 0xda, 0x02, 0xb0, 0x4d, 0x41, 0x33, 0xdf, 0x2a, 0x6c, 0xb4, 0x6c, 0x7b,
6073 0x67, 0xf4, 0xfd, 0x32, 0xcc, 0x55, 0xd1, 0xb8, 0x88, 0xe4, 0x25, 0x67,
6074 0xc6, 0xca, 0x2b, 0xfe, 0x2f, 0xbb, 0x7e, 0xa4, 0x20, 0x03, 0x28, 0x47,
6075 0x5d, 0xac, 0xc5, 0x4a, 0xa7, 0x2e, 0xf9, 0x0b, 0x3e, 0x46, 0x62, 0x90,
6076 0x03, 0x6b, 0x82, 0xab, 0x87, 0x00, 0x16, 0x6a, 0x6d, 0x77, 0xa4, 0x9d,
6077 0xb0, 0x11, 0x1d, 0x3d, 0x29, 0x66, 0x88, 0x23, 0x3e, 0xf0, 0x93, 0x45,
6078 0x5c, 0x88, 0xc9, 0x99, 0xdd, 0x1a, 0xe4, 0x40, 0xee, 0xaf, 0xc9, 0x74,
6079 0x55, 0xd5, 0x69, 0x19, 0x82, 0x3e, 0xe9, 0x31, 0x8c, 0x2e, 0x6d, 0x22,
6080 0x6e, 0xa4, 0x66, 0x60, 0xef, 0xdc, 0x6e, 0x73, 0xfb, 0xbd, 0x2d, 0x4b,
6081 0x70, 0x01, 0x3a, 0xc9, 0x5d, 0xf3, 0xba, 0x74, 0x81, 0x75, 0xb9, 0x48,
6082 0x24, 0x41, 0xbb, 0xca, 0xcd, 0x1c, 0xe9, 0xfc, 0x3c, 0xc9, 0x4e, 0xd1,
6083 0xf9, 0xf5, 0x57, 0x52, 0xef, 0x28, 0xf8, 0xb8, 0xbb, 0xf0, 0x69, 0x29,
6084 0xa4, 0x72, 0x4d, 0x01, 0xe6, 0xe0, 0xcb, 0x30, 0xb9, 0x47, 0xd1, 0x81,
6085 0x83, 0x39, 0xd9, 0xab, 0x36, 0xf9, 0x2d, 0x94, 0xd3, 0xc9, 0xf9, 0xdd,
6086 0x27, 0x41, 0xea, 0x3b, 0x1b, 0xd2, 0xf8, 0x91, 0x4e, 0x67, 0xda, 0xde,
6087 0xe2, 0xb7, 0xc5, 0xe4, 0x29, 0xfd, 0xe7, 0x1b, 0xfe, 0x0f, 0xab, 0x06,
6088 0xad, 0x79, 0xeb, 0x52, 0x56, 0xdb, 0x3a, 0x61, 0x7c, 0x6a, 0x21, 0x91,
6089 0x31, 0xa4, 0xe8, 0x15, 0xfe, 0x52, 0x24, 0x8f, 0xbc, 0x43, 0x63, 0xfb,
6090 0x99, 0x5d, 0x41, 0x2b, 0x32, 0xf6, 0x49, 0x12, 0xa7, 0xa8, 0x34, 0xb3,
6091 0x70, 0xca, 0x44, 0x8a, 0x35, 0x5b, 0x3a, 0xa1, 0x64, 0xb0, 0xc3, 0x29,
6092 0x24, 0xf7, 0xa4, 0x74, 0x4d, 0xfc, 0x74, 0xfd, 0xf7, 0x80, 0xe6, 0x8f,
6093 0x9a, 0xa0, 0xfe, 0x80, 0xc4, 0x6b, 0xcd, 0x7b, 0x5f, 0x8d, 0xc7, 0xc3,
6094 0x37, 0x4a, 0x5e, 0xb3, 0xc6, 0xdb, 0xee, 0x7e, 0xdd, 0x6c, 0x98, 0xa7,
6095 0x82, 0x26, 0xf3, 0xd9, 0xc7, 0xcd, 0xe2, 0x11, 0xc3, 0xb0, 0x2d, 0xdc,
6096 0xe8, 0xd8, 0xcf, 0x4b, 0xc0, 0x9d, 0x45, 0x0e, 0x26, 0xab, 0xd4, 0x2a,
6097 0xd1, 0xe0, 0x61, 0xf5, 0x3f, 0x49, 0x0e, 0xc3, 0x9a, 0x19, 0x01, 0x2a,
6098 0x1c, 0xcc, 0xc7, 0x00, 0xe0, 0xde, 0x5a, 0x4e, 0xe2, 0x22, 0x59, 0x30,
6099 0x85, 0x86, 0xc3, 0x7e, 0xab, 0xb9, 0xf6, 0x8a, 0xcf, 0x2b, 0xfe, 0xd8,
6100 0x1a, 0x4f, 0xf1, 0x8c, 0xa9, 0x81, 0xd9, 0x31, 0x26, 0xb5, 0xb2, 0x7e,
6101 0xd7, 0x72, 0xed, 0x95, 0x0f, 0xd9, 0xf4, 0xe6, 0xe8, 0xcd, 0x78, 0x63,
6102 0x3d, 0x26, 0x01, 0x63, 0x91, 0xa1, 0xe1, 0xe9, 0x22, 0xcf, 0x18, 0x3a,
6103 0x1c, 0x20, 0x70, 0x3a, 0xdc, 0x10, 0xe3, 0xf3, 0x37, 0xc7, 0x5f, 0x9d,
6104 0xd9, 0x7f, 0xd6, 0x4e, 0xf9, 0xa3, 0x33, 0x7c, 0xca, 0xb5, 0x14, 0x1f,
6105 0x2b, 0x4b, 0x69, 0x9d, 0xb3, 0x84, 0xd3, 0xc0, 0x0e, 0x26, 0x81, 0x9c,
6106 0xf3, 0xeb, 0x22, 0x8b, 0x03, 0x15, 0x49, 0xfc, 0xa8, 0x58, 0x57, 0x70,
6107 0x93, 0xb6, 0xdb, 0xde, 0x57, 0x5f, 0xb6, 0x0f, 0x98, 0xa3, 0x37, 0x6b,
6108 0x3e, 0xc7, 0xbf, 0x19, 0x9a, 0x51, 0xa0, 0x57, 0xf8, 0x19, 0xed, 0x8f,
6109 0x54, 0x18, 0x76, 0x3b, 0x66, 0x65, 0x7c, 0x7e, 0x62, 0xff, 0xa9, 0x0d,
6110 0xdd, 0x60, 0xe3, 0xbc, 0xdd, 0x45, 0xe6, 0xa5, 0x94, 0x2e, 0xdf, 0x94,
6111 0x26, 0xf3, 0x38, 0xbb, 0x95, 0x9c, 0xeb, 0x35, 0x05, 0x7c, 0x63, 0xc4,
6112 0xe4, 0x45, 0x06, 0x85, 0x49, 0xc6, 0xcf, 0xb2, 0x7a, 0x29, 0x91, 0xa9,
6113 0x22, 0x98, 0xce, 0x2a, 0x5a, 0x93, 0x7d, 0xee, 0x8c, 0x8c, 0x35, 0xde,
6114 0x3d, 0xcd, 0x69, 0x5f, 0x53, 0xd7, 0xf2, 0xe2, 0x3c, 0xda, 0x1c, 0x0b,
6115 0x35, 0xf6, 0x85, 0x44, 0x52, 0xce, 0xb5, 0xa1, 0xad, 0x8e, 0x55, 0x5f,
6116 0x9b, 0x51, 0x6f, 0x0e, 0x78, 0x12, 0x6c, 0xb0, 0x27, 0x6f, 0xb0, 0xd1,
6117 0xe9, 0xc4, 0xf3, 0xbf, 0xb6, 0x47, 0x3c, 0xcc, 0x62, 0xda, 0x86, 0x90,
6118 0x4b, 0x81, 0x70, 0x9f, 0x55, 0x32, 0x88, 0xc0, 0x9c, 0xff, 0xcd, 0x40,
6119 0x6e, 0x2b, 0xf8, 0xb1, 0x77, 0xce, 0x50, 0xc3, 0xc7, 0x6f, 0xbe, 0x3d,
6120 0xb9, 0x38, 0x7b, 0xf3, 0xfa, 0xf8, 0x8d, 0x03, 0xfb, 0xf1, 0x81, 0xd0,
6121 0xe5, 0x58, 0xef, 0xae, 0x6f, 0x29, 0x57, 0x09, 0xf6, 0x21, 0xb3, 0xd9,
6122 0x48, 0xe3, 0xd1, 0x7f, 0x8d, 0xc2, 0xe6, 0x82, 0x87, 0xec, 0x74, 0x65,
6123 0xcb, 0x76, 0xc9, 0xb1, 0xc9, 0x19, 0x03, 0x6c, 0x47, 0x82, 0x7c, 0x14,
6124 0x0f, 0xa6, 0x54, 0x6e, 0x4e, 0xde, 0x4f, 0x13, 0xa5, 0x9a, 0x2b, 0x03,
6125 0xd6, 0xf3, 0x54, 0x0b, 0xde, 0x79, 0xd0, 0x6c, 0xad, 0x13, 0x7e, 0xbd,
6126 0xb4, 0x00, 0x13, 0x17, 0xdc, 0xe9, 0x0c, 0x13, 0xa0, 0x76, 0x59, 0x15,
6127 0x38, 0x68, 0x6f, 0xd4, 0xa9, 0x0c, 0x27, 0xb3, 0x60, 0x6c, 0x03, 0x6a,
6128 0x40, 0xcf, 0x3b, 0x62, 0xa1, 0x9a, 0xe6, 0xf5, 0x2e, 0x18, 0x41, 0x2d,
6129 0x88, 0x03, 0x4e, 0xcb, 0xcf, 0x35, 0x64, 0xd3, 0xce, 0xb1, 0x2f, 0x43,
6130 0x1f, 0xb1, 0xab, 0xfb, 0x68, 0x69, 0x63, 0x88, 0x05, 0x6c, 0x04, 0xf1,
6131 0xfb, 0xf1, 0xbb, 0xf3, 0x8b, 0xb3, 0xef, 0x7f, 0xf8, 0x95, 0x3f, 0x31,
6132 0xf6, 0xc3, 0xf8, 0x91, 0x15, 0xa9, 0x35, 0xfe, 0xd3, 0xaf, 0xfe, 0xb5,
6133 0x7a, 0xf3, 0x83, 0x80, 0x32, 0xaf, 0x93, 0x8f, 0x0d, 0xee, 0x62, 0x31,
6134 0x9b, 0x03, 0xff, 0x71, 0x10, 0xee, 0x77, 0x7a, 0x08, 0x2e, 0xe3, 0xb2,
6135 0x51, 0x7c, 0xb5, 0xed, 0x43, 0x1a, 0x49, 0xa1, 0x7b, 0x3e, 0xed, 0xdb,
6136 0xfc, 0xf8, 0x03, 0x70, 0x2e, 0xe2, 0x58, 0x71, 0xf3, 0x71, 0x70, 0x7a,
6137 0xfa, 0xab, 0x4e, 0x02, 0x6e, 0xb7, 0x7e, 0x2c, 0xc3, 0x5a, 0x89, 0x2b,
6138 0xf6, 0xdf, 0xb7, 0xec, 0x84, 0xda, 0x45, 0xf8, 0xcd, 0x99, 0xf6, 0x46,
6139 0x9c, 0xd1, 0x43, 0xab, 0x3a, 0x3a, 0x73, 0xa5, 0xed, 0x51, 0xb5, 0xeb,
6140 0xf3, 0x96, 0xe9, 0x52, 0x0a, 0x21, 0x60, 0xad, 0xba, 0x14, 0x6a, 0x0f,
6141 0x82, 0xb5, 0x0f, 0xe9, 0x38, 0xb9, 0x0b, 0xf3, 0x08, 0x37, 0xa9, 0x05,
6142 0x0d, 0x3b, 0x42, 0x73, 0xec, 0x14, 0x64, 0xc4, 0x6d, 0x91, 0x96, 0xb7,
6143 0xc8, 0x63, 0xe2, 0x4d, 0x39, 0x90, 0x9a, 0x16, 0x15, 0x0a, 0x05, 0xb1,
6144 0x91, 0x8a, 0xae, 0x50, 0xdf, 0xa5, 0xc7, 0xf4, 0xe7, 0xe5, 0xd9, 0xe1,
6145 0xd9, 0x29, 0xfd, 0xe5, 0xf8, 0xd5, 0xc9, 0xf7, 0x5e, 0xa1, 0x09, 0x57,
6146 0x69, 0xcd, 0x7e, 0x7f, 0x34, 0x7e, 0xb2, 0x26, 0x80, 0xb2, 0xe1, 0x03,
6147 0x7d, 0xb6, 0x4c, 0x16, 0x35, 0x09, 0xf2, 0xef, 0x1a, 0xe5, 0xcc, 0xde,
6148 0x3f, 0x04, 0x01, 0x93, 0x30, 0xb6, 0x5b, 0x5b, 0x25, 0x11, 0xc1, 0x1a,
6149 0x71, 0x54, 0x2d, 0x3e, 0xa9, 0x9d, 0xe3, 0xea, 0x59, 0xca, 0x87, 0x5f,
6150 0x85, 0x0e, 0xb5, 0xc6, 0x25, 0x3a, 0x60, 0x24, 0xa2, 0x9b, 0x58, 0x38,
6151 0x48, 0x9f, 0x2a, 0x62, 0xa1, 0x0e, 0xd0, 0x1b, 0x6b, 0x85, 0xe2, 0x8d,
6152 0x30, 0x92, 0xe9, 0x3b, 0x8b, 0x0b, 0x84, 0x6b, 0xb1, 0x3e, 0x26, 0x9d,
6153 0x00, 0x4d, 0x02, 0x01, 0x64, 0x1c, 0xec, 0x88, 0xde, 0xe4, 0x76, 0x01,
6154 0xa1, 0xce, 0x84, 0xbd, 0x54, 0x34, 0x24, 0x53, 0x74, 0xdc, 0xc5, 0x52,
6155 0x46, 0xe3, 0xca, 0x31, 0x9a, 0x36, 0xda, 0x88, 0xff, 0xa9, 0x46, 0xe2,
6156 0x7a, 0x2b, 0xcf, 0xfe, 0x99, 0x46, 0x9e, 0x35, 0xda, 0xb8, 0xf9, 0xa7,
6157 0x1a, 0x71, 0x9c, 0xdb, 0x74, 0x2c, 0x7e, 0x7f, 0x72, 0x19, 0x1d, 0x9e,
6158 0x1d, 0x79, 0x19, 0xbd, 0xd4, 0xc4, 0x10, 0xfc, 0xc1, 0x91, 0x87, 0x8c,
6159 0xc3, 0x25, 0xbc, 0xa1, 0x7c, 0x05, 0x38, 0x29, 0xd6, 0xc1, 0x20, 0x7d,
6160 0xf3, 0x41, 0x26, 0x28, 0x13, 0x5f, 0x08, 0xf0, 0x3e, 0xe4, 0x23, 0xa9,
6161 0xd5, 0xf5, 0x28, 0xad, 0x1a, 0xed, 0x03, 0xe8, 0xef, 0xe2, 0x42, 0xfd,
6162 0xb1, 0xd1, 0x24, 0xe6, 0x52, 0xef, 0x99, 0x84, 0x46, 0x4a, 0xba, 0x42,
6163 0x19, 0x77, 0xa6, 0xf8, 0x8c, 0xf2, 0xab, 0x8d, 0x30, 0xbb, 0x93, 0x53,
6164 0x72, 0x50, 0x5a, 0x46, 0x2e, 0x9c, 0x5c, 0x8a, 0x57, 0xba, 0x12, 0xe6,
6165 0x91, 0xec, 0xaa, 0x26, 0xcc, 0x6a, 0x12, 0xa3, 0xdc, 0x87, 0x30, 0xef,
6166 0xd8, 0x62, 0x9f, 0xd9, 0xed, 0xd7, 0x28, 0x21, 0xcd, 0x99, 0x2d, 0xa5,
6167 0x22, 0x5a, 0x2a, 0xca, 0x35, 0xe1, 0xbe, 0xb3, 0xa7, 0xc1, 0x50, 0xa9,
6168 0x01, 0x45, 0xfb, 0x4f, 0xe1, 0x2a, 0xe9, 0xcf, 0xc1, 0x19, 0xfd, 0xc4,
6169 0xbb, 0xf6, 0x17, 0xf1, 0x5c, 0xe2, 0xe8, 0x9a, 0x43, 0x86, 0xda, 0xc2,
6170 0x40, 0x63, 0xb0, 0x2f, 0x10, 0x73, 0x38, 0x0d, 0xd4, 0xe0, 0x53, 0x55,
6171 0xce, 0xae, 0x22, 0x2f, 0x7b, 0xcd, 0x96, 0x1e, 0x0b, 0x22, 0x2c, 0xc0,
6172 0x21, 0x52, 0xd1, 0x55, 0xad, 0x13, 0xf6, 0x95, 0xa4, 0xe4, 0xc2, 0x20,
6173 0x1b, 0x9d, 0xd8, 0x23, 0x7b, 0x9b, 0xdd, 0xc6, 0x96, 0x6c, 0xcd, 0x1f,
6174 0xe0, 0x9f, 0x72, 0x2c, 0x2b, 0x9d, 0xa6, 0x1c, 0xba, 0xd7, 0x2a, 0x64,
6175 0x00, 0x45, 0x60, 0xd2, 0xba, 0x1c, 0xc1, 0x48, 0xcc, 0xf5, 0xc9, 0x81,
6176 0x66, 0x7a, 0xcc, 0x72, 0x2d, 0x0d, 0x89, 0xa4, 0x36, 0x9a, 0xbe, 0x09,
6177 0xfd, 0xe6, 0x41, 0x7a, 0xcc, 0x46, 0x0b, 0x3c, 0x0b, 0x2d, 0xea, 0x54,
6178 0x5d, 0x18, 0xbd, 0x5b, 0xf9, 0x8b, 0xcc, 0x33, 0x8b, 0xa5, 0xa9, 0x26,
6179 0xf7, 0x24, 0xef, 0xaa, 0xc4, 0xc5, 0xf1, 0xa1, 0x0e, 0x47, 0x3d, 0x67,
6180 0x84, 0xed, 0x7d, 0x0a, 0x30, 0x92, 0xa0, 0x04, 0xba, 0x6b, 0x0d, 0x06,
6181 0x36, 0xf0, 0x27, 0x8d, 0xef, 0xd8, 0x67, 0xb8, 0x29, 0x59, 0x37, 0xf9,
6182 0x44, 0x13, 0xce, 0xce, 0xcd, 0xb7, 0x5b, 0xfb, 0xb4, 0x29, 0x22, 0x96,
6183 0x33, 0xc0, 0x74, 0x22, 0x79, 0x08, 0x51, 0xfc, 0x4c, 0x9f, 0xa4, 0xeb,
6184 0xe8, 0x7d, 0xc2, 0xae, 0x0a, 0x3d, 0x52, 0x51, 0x1d, 0xdb, 0x46, 0x67,
6185 0xf0, 0x54, 0x01, 0x44, 0x22, 0xd8, 0xa4, 0xd7, 0x81, 0xa9, 0xf6, 0xb7,
6186 0x8d, 0xc1, 0x08, 0x0d, 0xc6, 0xe7, 0xfe, 0x23, 0x51, 0x0c, 0x00, 0x10,
6187 0x8b, 0x49, 0x96, 0x3a, 0x91, 0xd4, 0x12, 0x27, 0xf8, 0x11, 0xe3, 0xaa,
6188 0xe8, 0x0c, 0xc8, 0xdd, 0xbf, 0xf5, 0x8d, 0x16, 0xf5, 0x62, 0x03, 0x64,
6189 0xce, 0xb3, 0xb0, 0x2a, 0x24, 0x79, 0xd5, 0x93, 0x42, 0x5a, 0x15, 0x4a,
6190 0xcd, 0x22, 0x42, 0xb9, 0x29, 0xae, 0x30, 0x94, 0xb7, 0x32, 0x7a, 0xf2,
6191 0xab, 0xca, 0x15, 0x99, 0x66, 0xb7, 0xeb, 0x2c, 0x60, 0x5f, 0xc6, 0xa1,
6192 0xec, 0x1b, 0xc5, 0x3e, 0xb0, 0x93, 0x07, 0x20, 0x9c, 0x28, 0xef, 0xf2,
6193 0x43, 0x6b, 0x64, 0xd9, 0x6b, 0x88, 0xdd, 0xc6, 0x64, 0x9f, 0x1f, 0x8c,
6194 0xc7, 0x36, 0xd5, 0x20, 0xc6, 0xb4, 0xf9, 0x94, 0x19, 0x54, 0xdc, 0x18,
6195 0xd2, 0xfd, 0x35, 0x19, 0xb6, 0xc3, 0x09, 0xac, 0x8d, 0x34, 0xb0, 0xa7,
6196 0xbb, 0x4f, 0xfc, 0x9c, 0xbb, 0x8f, 0x7d, 0x2b, 0xad, 0x0d, 0x3e, 0xf2,
6197 0x63, 0x9d, 0xdf, 0xfa, 0xb6, 0xe3, 0x5b, 0x4f, 0x1b, 0xe3, 0xda, 0xdb,
6198 0xfb, 0x54, 0x53, 0x34, 0x85, 0xf3, 0x2c, 0x90, 0x14, 0x15, 0x0e, 0x55,
6199 0x16, 0xf4, 0xe0, 0xd0, 0xd8, 0x4e, 0x92, 0x0e, 0x06, 0x69, 0xc4, 0x49,
6200 0xc2, 0x62, 0x54, 0xbb, 0xcf, 0xfc, 0xb0, 0xe8, 0xd2, 0xc4, 0xed, 0xb1,
6201 0x6b, 0x5c, 0xb6, 0x49, 0x6b, 0xf7, 0x38, 0x96, 0xfa, 0x13, 0xee, 0x19,
6202 0x99, 0x61, 0x55, 0x37, 0x50, 0xd2, 0xba, 0x11, 0x7c, 0xe7, 0x53, 0xf7,
6203 0x1d, 0xd7, 0x73, 0xbe, 0xd4, 0x08, 0x29, 0xc4, 0x28, 0xd4, 0x08, 0x2a,
6204 0x23, 0x41, 0xd9, 0x63, 0x05, 0x02, 0x74, 0x14, 0x87, 0x95, 0xb7, 0xfd,
6205 0x57, 0x64, 0xfb, 0x9d, 0xb3, 0x14, 0x2b, 0x05, 0xeb, 0x48, 0xaa, 0xcc,
6206 0xc7, 0x35, 0x86, 0x1d, 0x78, 0xf5, 0x79, 0xbb, 0x3b, 0x72, 0xbd, 0x70,
6207 0xb7, 0xef, 0x3e, 0x0f, 0xe6, 0xc4, 0xba, 0x65, 0x51, 0xa9, 0x6d, 0xdb,
6208 0x3e, 0x4e, 0x85, 0x58, 0xc4, 0x99, 0x2e, 0xd2, 0xc7, 0x97, 0x17, 0x9c,
6209 0x31, 0x04, 0x9a, 0xa0, 0xa6, 0x8a, 0xa5, 0x3d, 0xb5, 0xe5, 0x62, 0xee,
6210 0x52, 0x70, 0x30, 0x38, 0x83, 0xbc, 0x24, 0xff, 0x7d, 0xc5, 0x0a, 0x09,
6211 0xa7, 0x2e, 0x33, 0x06, 0xc8, 0x3f, 0xed, 0x3d, 0x57, 0xee, 0x54, 0x4e,
6212 0x65, 0x0f, 0xe0, 0xd7, 0x9d, 0xe1, 0xe6, 0xdf, 0xa3, 0xa8, 0xc1, 0x8a,
6213 0x28, 0x6a, 0x4d, 0xf3, 0x0c, 0x45, 0x49, 0x78, 0xc4, 0x6f, 0x24, 0x9e,
6214 0x08, 0x77, 0x90, 0x48, 0xae, 0x5e, 0x9b, 0x39, 0xd6, 0x7d, 0xdc, 0xb4,
6215 0xbe, 0xab, 0x3d, 0xe6, 0x21, 0x20, 0xf8, 0xa4, 0xb7, 0x2e, 0x84, 0x40,
6216 0x34, 0x7a, 0xba, 0xb3, 0xd3, 0x6e, 0x2e, 0x9e, 0xe4, 0x77, 0x06, 0xf2,
6217 0xd2, 0x94, 0x5a, 0x29, 0x50, 0x8a, 0xf5, 0x82, 0x75, 0x21, 0x05, 0xa1,
6218 0xaf, 0xd8, 0x27, 0xc0, 0x33, 0x66, 0xd1, 0x82, 0x60, 0xde, 0x64, 0x57,
6219 0x7e, 0x87, 0x14, 0x5f, 0x9d, 0xb3, 0xfa, 0x5e, 0x94, 0xec, 0x5f, 0xe3,
6220 0x4d, 0x8c, 0x95, 0x9c, 0x57, 0x1c, 0x4c, 0x1a, 0x09, 0x6f, 0xf5, 0x4c,
6221 0x59, 0x9e, 0x82, 0xcf, 0x3c, 0xeb, 0x90, 0x88, 0x68, 0x7c, 0x79, 0x76,
6222 0x11, 0xa9, 0x90, 0xb5, 0xd5, 0x2e, 0xd0, 0xa2, 0xfc, 0x84, 0x03, 0xba,
6223 0x0d, 0x3a, 0xc2, 0xcc, 0xce, 0x79, 0x29, 0x98, 0x6e, 0xa6, 0x89, 0xf0,
6224 0x5f, 0xfd, 0xc4, 0xc3, 0x58, 0x74, 0x6c, 0xdf, 0xc6, 0x05, 0x88, 0x00,
6225 0x8c, 0xc2, 0x95, 0x8f, 0xe3, 0x79, 0xb2, 0x08, 0xee, 0x03, 0x7b, 0xb2,
6226 0xd1, 0xce, 0x56, 0x10, 0x76, 0xf1, 0x43, 0xb2, 0x1c, 0xa9, 0x47, 0x92,
6227 0x29, 0x60, 0xd5, 0xad, 0xe3, 0xc2, 0x46, 0x4d, 0x59, 0x94, 0x4d, 0x74,
6228 0xe6, 0x49, 0x7a, 0x25, 0x4a, 0x3c, 0x6a, 0x00, 0x7a, 0xf0, 0x73, 0x10,
6229 0x05, 0x68, 0xc8, 0x5d, 0x65, 0x48, 0x4b, 0x10, 0x36, 0x57, 0x7b, 0x4a,
6230 0x96, 0x91, 0x40, 0xda, 0x72, 0xab, 0xcc, 0x65, 0xd6, 0xa2, 0xb7, 0xb2,
6231 0x76, 0xfc, 0x3c, 0x9f, 0x9f, 0x5d, 0x5c, 0x46, 0xd6, 0x39, 0x39, 0x38,
6232 0xf1, 0xa3, 0xc6, 0x16, 0x62, 0x46, 0x09, 0xdc, 0xe0, 0x3c, 0x10, 0xb8,
6233 0x75, 0x2b, 0x55, 0x8b, 0xb0, 0xb2, 0x26, 0xac, 0x0d, 0x26, 0x8d, 0x2c,
6234 0x1e, 0x0c, 0xd7, 0xe2, 0x0a, 0x7f, 0x5e, 0x49, 0xb1, 0x67, 0xfc, 0x8c,
6235 0x15, 0x74, 0x37, 0x4a, 0xc9, 0xdb, 0x34, 0x4f, 0x76, 0x3b, 0xa4, 0x83,
6236 0x2f, 0xd0, 0x17, 0xc7, 0xe3, 0x4b, 0x99, 0x35, 0xfe, 0x5b, 0xab, 0xe7,
6237 0xe2, 0xa2, 0xd4, 0x1f, 0x76, 0x82, 0x10, 0xb4, 0x80, 0xab, 0x00, 0x5a,
6238 0xb9, 0x7d, 0xe7, 0x31, 0x0d, 0xe6, 0xec, 0x49, 0x90, 0x31, 0x01, 0xcd,
6239 0xa9, 0xb2, 0x72, 0x29, 0xa5, 0xee, 0xe9, 0x07, 0x3d, 0xfd, 0x48, 0x8f,
6240 0xce, 0x5c, 0xd9, 0x14, 0x79, 0x71, 0x1b, 0xb4, 0xf0, 0x34, 0xd0, 0x16,
6241 0xac, 0xdd, 0xb5, 0x81, 0x13, 0x0b, 0x9f, 0xf2, 0x0f, 0x1d, 0xb4, 0xec,
6242 0x3a, 0xc9, 0x4c, 0x30, 0xe4, 0x39, 0xdf, 0xce, 0x33, 0x17, 0xaf, 0x30,
6243 0xfb, 0x28, 0xe8, 0x0a, 0xff, 0xd8, 0x52, 0x0d, 0x01, 0x23, 0x6a, 0x88,
6244 0xdd, 0x93, 0x4f, 0xdc, 0x2c, 0xf2, 0x65, 0xc2, 0xa1, 0x00, 0x64, 0xf8,
6245 0xc1, 0x61, 0xc4, 0x30, 0x8a, 0x34, 0x5b, 0x25, 0xea, 0x31, 0x8b, 0x8b,
6246 0x79, 0x0a, 0x0e, 0xc6, 0x49, 0x97, 0x7f, 0xd2, 0x25, 0x70, 0xf8, 0xef,
6247 0xe8, 0x49, 0x74, 0x72, 0x7a, 0xec, 0x57, 0x4b, 0xc8, 0x1c, 0xb0, 0x93,
6248 0xbd, 0x91, 0x47, 0x1b, 0x37, 0x73, 0xc7, 0xc5, 0x28, 0x3a, 0x67, 0xca,
6249 0x74, 0xc4, 0x4f, 0xca, 0x7f, 0xf3, 0xad, 0xc9, 0x66, 0x81, 0x33, 0x86,
6250 0xce, 0x4f, 0x58, 0xa7, 0x69, 0x46, 0x8b, 0x8b, 0x9f, 0xf0, 0x5f, 0x03,
6251 0xb6, 0xeb, 0xd6, 0x90, 0x9f, 0xfb, 0x97, 0x4b, 0x1a, 0x08, 0xdd, 0xd3,
6252 0x9a, 0x8f, 0x3c, 0x55, 0xd9, 0xa2, 0x4b, 0x9c, 0x94, 0x82, 0xcb, 0x2b,
6253 0xd1, 0xcf, 0xbc, 0xa7, 0xad, 0x68, 0xa0, 0xb4, 0x70, 0x65, 0xcf, 0x98,
6254 0x1d, 0x2b, 0xcf, 0xf9, 0xa6, 0xe4, 0x50, 0x38, 0x90, 0x79, 0x02, 0x43,
6255 0x0b, 0xed, 0x1b, 0x2e, 0xf9, 0x4a, 0x6d, 0x65, 0xac, 0x71, 0xe7, 0xe6,
6256 0xf1, 0xad, 0x65, 0xd2, 0x63, 0x62, 0x95, 0x56, 0xa5, 0x5d, 0xd1, 0xb0,
6257 0xc1, 0xff, 0xfe, 0x54, 0xa4, 0xd1, 0x89, 0x8e, 0x3b, 0xc7, 0x6a, 0xbd,
6258 0xe3, 0x0f, 0x3b, 0x82, 0x0e, 0x2c, 0x37, 0xbb, 0x86, 0x50, 0xd3, 0x32,
6259 0x68, 0xea, 0x99, 0x6f, 0xea, 0x8a, 0x89, 0x15, 0x5c, 0x5b, 0x5e, 0x07,
6260 0x79, 0x2e, 0xc1, 0xd4, 0x3d, 0xa6, 0x17, 0x05, 0x39, 0xcb, 0x5a, 0x57,
6261 0x85, 0xfa, 0xf9, 0xf1, 0x54, 0x84, 0xe1, 0x32, 0xcf, 0xa5, 0xa0, 0xb9,
6262 0x4b, 0xa5, 0x18, 0x09, 0xc6, 0x4c, 0x7c, 0x10, 0xc2, 0xb0, 0xe9, 0x92,
6263 0x2c, 0xe4, 0xb6, 0xa9, 0x17, 0x74, 0xae, 0x60, 0x3a, 0x6c, 0x71, 0x43,
6264 0x2f, 0x5a, 0x55, 0x3f, 0x9f, 0x7e, 0xa6, 0xb7, 0x59, 0xa9, 0x09, 0x68,
6265 0x2c, 0x33, 0x1e, 0x3a, 0x9c, 0xdb, 0x65, 0x29, 0x48, 0x8a, 0x9b, 0x21,
6266 0x24, 0xe0, 0x80, 0xe7, 0x6d, 0xca, 0x26, 0x76, 0xfe, 0xe3, 0x40, 0x56,
6267 0x43, 0xd1, 0x57, 0x44, 0xf5, 0xec, 0x3f, 0x3c, 0xe1, 0xfa, 0x9c, 0xfc,
6268 0x6a, 0x7d, 0x94, 0xb8, 0x48, 0xfe, 0x86, 0x0a, 0x14, 0x23, 0x39, 0x74,
6269 0x24, 0x39, 0x43, 0x46, 0xc9, 0x41, 0x72, 0xaf, 0xf2, 0x9e, 0x3e, 0x57,
6270 0x57, 0x85, 0x5e, 0x85, 0xad, 0x38, 0x41, 0xd3, 0xd3, 0xfc, 0x6c, 0xd7,
6271 0xe3, 0xa6, 0x93, 0xa4, 0xe8, 0x97, 0xa2, 0x1d, 0x82, 0xdc, 0x09, 0x52,
6272 0x70, 0xe3, 0xf1, 0xd7, 0xd1, 0xeb, 0xa3, 0x67, 0x9c, 0xcb, 0x79, 0x9d,
6273 0x14, 0x5c, 0x71, 0xc4, 0xdf, 0xc5, 0xce, 0xbe, 0x09, 0x1a, 0xdb, 0x0b,
6274 0xa2, 0xd0, 0x72, 0xd4, 0xa6, 0xba, 0x7b, 0xd9, 0xca, 0xa6, 0xf5, 0x63,
6275 0xea, 0x91, 0xeb, 0x81, 0x96, 0xfb, 0x16, 0x37, 0x08, 0xc2, 0x7d, 0xca,
6276 0xca, 0x23, 0xa6, 0x4b, 0x13, 0x84, 0x5d, 0x57, 0x62, 0xcf, 0x9e, 0x78,
6277 0x25, 0xc6, 0xc5, 0x39, 0x73, 0xba, 0x57, 0x5f, 0xb3, 0x45, 0xdd, 0xb1,
6278 0xa3, 0x9e, 0x89, 0xe2, 0x3c, 0x94, 0x7d, 0xcf, 0xe6, 0x6c, 0xfb, 0x35,
6279 0x30, 0xa0, 0x20, 0xda, 0x11, 0xbc, 0xf7, 0x2c, 0xbc, 0x4e, 0x92, 0x41,
6280 0x8e, 0x73, 0x91, 0xe6, 0x0f, 0xd5, 0x76, 0xd8, 0x56, 0x09, 0x9e, 0xfd,
6281 0xc4, 0x3d, 0xcb, 0xce, 0x83, 0x34, 0x0b, 0x58, 0x57, 0xd7, 0xbc, 0xa1,
6282 0x46, 0xb0, 0x98, 0x06, 0x3e, 0xb0, 0x2f, 0x96, 0x4f, 0x30, 0xf7, 0xc1,
6283 0x2b, 0xcf, 0xeb, 0xb7, 0x65, 0x30, 0xcb, 0xfb, 0x4a, 0x6d, 0x3c, 0xa8,
6284 0x74, 0x79, 0x13, 0x6e, 0xce, 0x4f, 0xe4, 0xa4, 0x3e, 0xe7, 0x54, 0x98,
6285 0xda, 0x7a, 0x9a, 0x12, 0xac, 0xc5, 0x0e, 0x6d, 0xaf, 0x8b, 0xec, 0x1f,
6286 0x1e, 0xd8, 0x1b, 0x2d, 0x04, 0x39, 0x4b, 0x7b, 0xf0, 0x91, 0x5d, 0xdd,
6287 0x33, 0x34, 0xe4, 0xfc, 0x3a, 0x4b, 0x7f, 0x4e, 0x82, 0x34, 0x60, 0xe3,
6288 0xcd, 0x0d, 0x1e, 0xdf, 0x53, 0x85, 0x71, 0x17, 0xcf, 0x53, 0x55, 0x8a,
6289 0xec, 0x47, 0xf7, 0x0f, 0x3c, 0x51, 0xa9, 0x95, 0xa2, 0xc3, 0xb8, 0x05,
6290 0x80, 0x82, 0x9b, 0x23, 0x38, 0x49, 0x2d, 0xaf, 0xf2, 0x93, 0xa7, 0x6a,
6291 0x7b, 0x99, 0x91, 0xcc, 0xe7, 0x12, 0x4f, 0x04, 0xaa, 0xb7, 0xb6, 0xd4,
6292 0xf4, 0x27, 0x7a, 0xf4, 0xe9, 0x52, 0x2a, 0x80, 0x27, 0x36, 0x0d, 0x5d,
6293 0x22, 0xa9, 0xea, 0x3e, 0xcd, 0x34, 0xfd, 0xaf, 0xf5, 0xfa, 0x27, 0x6b,
6294 0x5c, 0x50, 0x52, 0xfc, 0x36, 0x3a, 0x86, 0x2c, 0x05, 0xcf, 0x7f, 0xea,
6295 0x76, 0x82, 0x23, 0xc0, 0x1b, 0xb8, 0x48, 0x20, 0x80, 0x59, 0xc6, 0x54,
6296 0x6a, 0x1b, 0x09, 0xd7, 0xfe, 0xa5, 0x2f, 0x28, 0xd5, 0x41, 0xed, 0x78,
6297 0xe5, 0x3e, 0x3f, 0xcf, 0xaf, 0xa3, 0x34, 0xd8, 0xc6, 0x9f, 0x88, 0x48,
6298 0xbd, 0x02, 0x18, 0xca, 0xf6, 0x01, 0x6b, 0x93, 0x90, 0x6f, 0xdc, 0x3f,
6299 0xfd, 0x5c, 0x65, 0xc3, 0xce, 0x4b, 0x33, 0x53, 0xd7, 0xbe, 0xf1, 0xe9,
6300 0x4e, 0x68, 0xb4, 0xce, 0xd8, 0x53, 0x2f, 0x5c, 0x3a, 0x6b, 0x5f, 0x10,
6301 0xc9, 0x38, 0xa1, 0x63, 0xe4, 0x9a, 0x84, 0x1a, 0xcf, 0x78, 0x12, 0x29,
6302 0xff, 0xd8, 0x5e, 0x4d, 0xe9, 0x5e, 0x86, 0x26, 0x54, 0x74, 0x72, 0x14,
6303 0x3c, 0xf8, 0xc4, 0x0f, 0x30, 0x9e, 0xb3, 0x35, 0xf0, 0x20, 0x8e, 0x88,
6304 0x52, 0x29, 0xdf, 0x83, 0x47, 0x45, 0x32, 0xde, 0xb0, 0xa7, 0x91, 0xb4,
6305 0x0c, 0xe6, 0xbf, 0xf5, 0x8c, 0x88, 0xc3, 0xe1, 0x0d, 0x9d, 0x6a, 0xd3,
6306 0x0a, 0x74, 0x00, 0x99, 0xc5, 0x0b, 0x9a, 0x6b, 0xff, 0xe9, 0x27, 0x8f,
6307 0x3c, 0xab, 0x87, 0x66, 0xe9, 0xeb, 0x03, 0xfb, 0xf7, 0x3e, 0x6d, 0x6f,
6308 0x73, 0xbb, 0x16, 0x58, 0xa6, 0x9a, 0xee, 0xb4, 0x68, 0x93, 0x33, 0xef,
6309 0xfe, 0xcd, 0x3c, 0x3f, 0x05, 0xa7, 0xdb, 0x94, 0xff, 0x16, 0xf6, 0xf7,
6310 0x33, 0x27, 0x4f, 0xce, 0xed, 0xe3, 0xea, 0x1d, 0x85, 0xc5, 0x08, 0x7c,
6311 0x89, 0x28, 0xcc, 0x4e, 0xd0, 0x82, 0xac, 0x39, 0xd9, 0x11, 0xab, 0xcc,
6312 0x6b, 0x0e, 0xb9, 0x08, 0x2a, 0x3b, 0x91, 0x61, 0x77, 0xb5, 0x77, 0x5f,
6313 0xd3, 0xa2, 0x96, 0xf5, 0x82, 0xb4, 0x9f, 0xed, 0x34, 0xb6, 0x41, 0x79,
6314 0xb3, 0x92, 0x9b, 0xb7, 0x1b, 0x51, 0x58, 0xf8, 0xd7, 0xbd, 0xb6, 0xe7,
6315 0xb5, 0x97, 0x1e, 0xfb, 0x92, 0x84, 0x7b, 0xc8, 0x05, 0x17, 0xe4, 0x7a,
6316 0x1e, 0x41, 0x14, 0x81, 0x16, 0x2f, 0xa4, 0xcc, 0x9a, 0x71, 0x5e, 0x3d,
6317 0x52, 0x89, 0xf7, 0x39, 0xca, 0x25, 0xbb, 0xcf, 0xa8, 0x69, 0xc3, 0x80,
6318 0x67, 0x5a, 0xa5, 0x9b, 0x64, 0x7a, 0x6b, 0x5b, 0xc6, 0xb5, 0xd1, 0xf1,
6319 0xd6, 0x53, 0x37, 0xb5, 0x2c, 0x7d, 0xe7, 0x17, 0xc7, 0xcd, 0x8b, 0x80,
6320 0x7f, 0x54, 0xa4, 0xe6, 0xe2, 0x72, 0x7c, 0xbe, 0xcf, 0xfd, 0x95, 0x18,
6321 0x0c, 0x6d, 0x88, 0xc3, 0x71, 0xf2, 0x77, 0x4d, 0x83, 0x2b, 0xfd, 0xd3,
6322 0x9f, 0xac, 0x79, 0x7a, 0xac, 0x20, 0x9f, 0x93, 0x19, 0x6b, 0x5f, 0x5a,
6323 0x87, 0xf0, 0xa5, 0x4f, 0x35, 0x99, 0xdf, 0xbc, 0xbb, 0xe2, 0x3c, 0xe2,
6324 0x9e, 0x39, 0x58, 0xbf, 0x7f, 0xf8, 0x33, 0xef, 0xb3, 0xb9, 0x59, 0x65,
6325 0xb7, 0xce, 0x5e, 0x54, 0xc8, 0x94, 0x2d, 0xb0, 0x7b, 0xe1, 0xfb, 0xef,
6326 0x45, 0xbf, 0x3a, 0x50, 0x8c, 0xba, 0xf5, 0x5d, 0xb9, 0x1c, 0xd2, 0x47,
6327 0x52, 0xa4, 0x26, 0xb3, 0xa2, 0xc4, 0x45, 0x32, 0x4f, 0x98, 0x7b, 0x50,
6328 0xee, 0x08, 0x10, 0xaa, 0xae, 0x24, 0x13, 0x06, 0x70, 0x4a, 0x3d, 0xc1,
6329 0x44, 0x49, 0x2a, 0x33, 0x06, 0x0c, 0xaa, 0xaf, 0x88, 0x66, 0xfb, 0xe0,
6330 0xed, 0xe5, 0xd7, 0x67, 0x17, 0xe3, 0x68, 0x9b, 0x09, 0x81, 0x2e, 0x2f,
6331 0x4e, 0xbe, 0x7c, 0x4b, 0x57, 0x6f, 0x17, 0x12, 0x39, 0x8a, 0xe9, 0x4a,
6332 0x3e, 0x67, 0x78, 0x65, 0x92, 0xd1, 0x24, 0x5e, 0x5b, 0x4d, 0x06, 0x60,
6333 0x3f, 0xf8, 0x9c, 0xca, 0x0b, 0xe1, 0x71, 0x06, 0xf3, 0xd6, 0x4d, 0xae,
6334 0x33, 0x21, 0x38, 0xa9, 0x4c, 0x90, 0xf0, 0xb9, 0xbf, 0x57, 0xa6, 0x0d,
6335 0x3e, 0x23, 0x8b, 0x6c, 0x46, 0x97, 0x5f, 0x1f, 0xbc, 0xf9, 0x66, 0x6c,
6336 0x2c, 0x99, 0xdf, 0x7d, 0xf7, 0xdd, 0x46, 0x3d, 0x5b, 0x08, 0xe6, 0xdd,
6337 0x4d, 0xfc, 0xfe, 0xfd, 0xa8, 0x4c, 0x36, 0x36, 0x5e, 0xf9, 0x38, 0x99,
6338 0x2f, 0xa8, 0x51, 0xae, 0xe8, 0x54, 0xa7, 0x5f, 0x6f, 0x2f, 0x57, 0x13,
6339 0x2e, 0xe0, 0xb1, 0xbd, 0xaa, 0xb4, 0x32, 0x15, 0xde, 0xde, 0xde, 0xd8,
6340 0x18, 0x1f, 0x1f, 0x47, 0x07, 0xa7, 0xe3, 0xb3, 0xe0, 0xdd, 0xcd, 0xdd,
6341 0x2d, 0xb2, 0x7a, 0xae, 0x93, 0x8a, 0xfe, 0xb2, 0xb1, 0x71, 0x7a, 0x70,
6342 0xc9, 0xd7, 0xcd, 0x6f, 0x8f, 0x2f, 0xc6, 0x27, 0x67, 0x6f, 0x78, 0x75,
6343 0x18, 0x9e, 0x16, 0xcf, 0xef, 0x19, 0x9d, 0x78, 0x95, 0x82, 0x90, 0xe4,
6344 0xde, 0xaa, 0x63, 0x30, 0x8b, 0x1f, 0x99, 0x65, 0x62, 0x45, 0x0b, 0x84,
6345 0xc1, 0xca, 0x01, 0x0a, 0x08, 0xb3, 0xe2, 0x4b, 0x9f, 0x2a, 0x24, 0x9e,
6346 0x01, 0xe7, 0x73, 0x92, 0x92, 0x15, 0xc9, 0x44, 0x60, 0xae, 0x03, 0xa1,
6347 0xda, 0x42, 0x8c, 0x21, 0x40, 0xc9, 0x75, 0x0e, 0x7c, 0x7c, 0xf2, 0xfa,
6348 0x9c, 0x6e, 0x5f, 0x6f, 0xc7, 0x07, 0x5f, 0x1d, 0xf3, 0xa3, 0x5f, 0x25,
6349 0x95, 0x5f, 0x0e, 0xa9, 0xe2, 0xc1, 0x1f, 0x79, 0x93, 0x54, 0xe5, 0x34,
6350 0x5e, 0x72, 0x06, 0x25, 0x7d, 0x66, 0x28, 0x67, 0x40, 0xd0, 0xb6, 0xd8,
6351 0xe1, 0xbe, 0xd4, 0x49, 0xa6, 0xcf, 0xa3, 0x0e, 0x49, 0xd8, 0xee, 0xc5,
6352 0xf1, 0xc1, 0xd1, 0xeb, 0x63, 0xc3, 0x3f, 0xcb, 0x99, 0x49, 0x8d, 0xde,
6353 0xe4, 0x5c, 0xf3, 0xce, 0x79, 0xa1, 0xf9, 0x5c, 0xe6, 0xc9, 0xa7, 0xdf,
6354 0xa0, 0x54, 0x77, 0xe7, 0xe7, 0xfc, 0x42, 0xe1, 0xd9, 0xd1, 0x55, 0xba,
6355 0x2d, 0xad, 0xdb, 0xf7, 0x62, 0x37, 0x25, 0x06, 0x24, 0x56, 0x5b, 0x55,
6356 0x1c, 0x0a, 0x70, 0x44, 0x7c, 0xb6, 0xb3, 0xb3, 0xf3, 0xc8, 0x38, 0x60,
6357 0xca, 0xeb, 0x89, 0x47, 0x43, 0xd9, 0xe7, 0xc7, 0xb7, 0x7d, 0xfb, 0x26,
6358 0x99, 0xa1, 0x07, 0x9d, 0xff, 0x99, 0x89, 0x0b, 0x24, 0xad, 0x92, 0xee,
6359 0x4e, 0x4f, 0xf3, 0xdc, 0xad, 0x41, 0x6d, 0x7a, 0x66, 0x4c, 0xe8, 0x98,
6360 0x56, 0x01, 0x92, 0xd4, 0xba, 0x4e, 0xf7, 0x0f, 0xe0, 0xa4, 0x8a, 0x87,
6361 0x66, 0x93, 0xfc, 0x1b, 0x6a, 0x93, 0xff, 0x33, 0xca, 0x8b, 0xeb, 0xed,
6362 0xc5, 0x3e, 0x0c, 0x0a, 0x7a, 0xe8, 0x55, 0x82, 0xda, 0x81, 0xf7, 0xb9,
6363 0x83, 0x0b, 0x97, 0x3c, 0xb5, 0x9c, 0x9b, 0xf0, 0x11, 0xfd, 0xfa, 0x05,
6364 0xf3, 0x80, 0xe5, 0xcc, 0xaf, 0x6c, 0xe4, 0xe3, 0x68, 0xed, 0x8a, 0x95,
6365 0xbc, 0x64, 0xec, 0xf0, 0x1b, 0x91, 0x0a, 0xa1, 0xaf, 0x30, 0xea, 0x09,
6366 0x42, 0x42, 0x7f, 0x2d, 0x48, 0x68, 0x46, 0xd5, 0x7b, 0x68, 0x3d, 0xad,
6367 0x1b, 0x01, 0x51, 0x64, 0x1d, 0x46, 0x2a, 0xab, 0xc8, 0xe9, 0x3e, 0x12,
6368 0x4b, 0x9e, 0xf9, 0x18, 0x09, 0x9d, 0x1e, 0x3c, 0x2e, 0xf8, 0x1b, 0x6e,
6369 0xb8, 0xf9, 0x4d, 0x57, 0xec, 0xdd, 0xe4, 0xe5, 0x23, 0x3e, 0x1e, 0x0c,
6370 0x4a, 0x66, 0x3f, 0xd3, 0x43, 0x32, 0x90, 0x9e, 0x31, 0xf5, 0xa2, 0xf5,
6371 0xad, 0x95, 0xaf, 0xef, 0x51, 0xca, 0xe7, 0x50, 0xfb, 0x6e, 0x94, 0x48,
6372 0x3d, 0x4b, 0x7c, 0x8b, 0xd6, 0x64, 0x1b, 0x99, 0x3a, 0x1f, 0xfd, 0xa5,
6373 0xc3, 0x73, 0x57, 0x4a, 0x8f, 0x66, 0xe0, 0x8e, 0xa7, 0xe0, 0x36, 0xc1,
6374 0xe8, 0x43, 0xbb, 0xfe, 0x91, 0xce, 0xec, 0xd3, 0x2c, 0xf0, 0x1b, 0xff,
6375 0xb5, 0x3d, 0x2a, 0xcb, 0x9b, 0xed, 0x74, 0xf6, 0x6e, 0x56, 0xc6, 0x0c,
6376 0x49, 0x5a, 0x4d, 0x5a, 0x3f, 0x1e, 0xd1, 0x0f, 0xa3, 0xbf, 0xd6, 0xf4,
6377 0x7e, 0x39, 0xed, 0x1e, 0xc9, 0x7f, 0x6d, 0x33, 0x3c, 0x12, 0x4c, 0xe7,
6378 0xc1, 0xc4, 0x75, 0x68, 0x0f, 0x1a, 0x95, 0x20, 0x71, 0x69, 0x3b, 0x76,
6379 0x4b, 0xc6, 0xf0, 0x3a, 0xea, 0xa9, 0xb8, 0xfd, 0xb8, 0xb7, 0xb3, 0xb3,
6380 0xbb, 0xbf, 0xfb, 0xd9, 0xf3, 0x9d, 0xfd, 0xdd, 0xdd, 0xdd, 0xbd, 0xfd,
6381 0xdd, 0xfd, 0xfd, 0xbd, 0x9d, 0x9f, 0xb6, 0x7b, 0x1b, 0x1b, 0x47, 0x67,
6382 0xdf, 0xbd, 0x39, 0x3d, 0x3b, 0x38, 0x8a, 0x2e, 0xcf, 0xa2, 0x03, 0x78,
6383 0x8d, 0x3a, 0x76, 0x3a, 0xe0, 0x7f, 0x9c, 0x96, 0x25, 0x64, 0xc9, 0xbe,
6384 0x00, 0x5c, 0xeb, 0x93, 0x39, 0x2e, 0x00, 0xfc, 0xd2, 0xe8, 0xa6, 0x5a,
6385 0x7c, 0x58, 0x7d, 0x7d, 0xcc, 0x47, 0x06, 0x12, 0xb5, 0xf5, 0x77, 0x3c,
6386 0x2c, 0xad, 0x09, 0xa9, 0x16, 0x14, 0xd6, 0xc8, 0x87, 0xc6, 0x3b, 0x1d,
6387 0x92, 0x7f, 0x53, 0x40, 0x3e, 0x3e, 0xcd, 0x41, 0x4a, 0xdf, 0x35, 0xd0,
6388 0x49, 0xae, 0x14, 0x95, 0x06, 0xd4, 0x71, 0xa0, 0xb3, 0xf5, 0xb2, 0xd5,
6389 0x1a, 0xe0, 0xd9, 0xda, 0x21, 0xd1, 0xc1, 0x93, 0xbc, 0xc7, 0xa8, 0xeb,
6390 0x6a, 0x42, 0xb0, 0x9e, 0x7e, 0x74, 0x60, 0xea, 0xb4, 0x5b, 0x6b, 0x5a,
6391 0x58, 0x97, 0x01, 0x04, 0xea, 0xf8, 0x1c, 0x7f, 0xc7, 0xb4, 0x87, 0xff,
6392 0x04, 0xff, 0x26, 0x3c, 0x74, 0xb6, 0x9d, 0x23, 0x50, 0x3a, 0xf0, 0x76,
6393 0x7c, 0xf2, 0xe6, 0x2b, 0x84, 0xfa, 0xbe, 0x3b, 0xbb, 0x38, 0x1a, 0x53,
6394 0xb3, 0x7c, 0x1a, 0x6f, 0xc0, 0x17, 0xc4, 0x9b, 0x56, 0x7b, 0x25, 0x5b,
6395 0x80, 0x3f, 0xfd, 0x67, 0xdc, 0xae, 0x98, 0x65, 0x40, 0xb3, 0x3c, 0xd1,
6396 0xcd, 0xc0, 0x32, 0xe6, 0xd4, 0xcd, 0x6e, 0x05, 0x87, 0xdd, 0x20, 0xaf,
6397 0x7f, 0xb1, 0x88, 0x99, 0x4f, 0x3a, 0x19, 0x09, 0xee, 0x14, 0x98, 0xac,
6398 0x6d, 0xc6, 0xf2, 0x6f, 0xb3, 0x85, 0xbe, 0x5d, 0xe5, 0x50, 0x15, 0x68,
6399 0x25, 0x2f, 0x1c, 0x10, 0xa8, 0x36, 0x23, 0xbc, 0xc7, 0xae, 0xe6, 0xf1,
6400 0x35, 0x3e, 0xd8, 0xde, 0x7e, 0xc1, 0xc7, 0xf4, 0xf3, 0x1f, 0xfb, 0x49,
6401 0x94, 0xf6, 0xe5, 0xf6, 0x4e, 0x20, 0x00, 0xe0, 0x75, 0x42, 0x3e, 0xaa,
6402 0x86, 0x28, 0xc4, 0x42, 0x42, 0x05, 0x43, 0x86, 0x7f, 0x70, 0xc9, 0x9b,
6403 0x26, 0x63, 0x38, 0x2f, 0xe2, 0x4a, 0x12, 0xb9, 0xc9, 0x58, 0x1f, 0x06,
6404 0xb9, 0xfe, 0x72, 0x8b, 0x41, 0x35, 0x5a, 0xef, 0x2c, 0x28, 0x3d, 0x7e,
6405 0x0d, 0xbc, 0xd0, 0xb8, 0x1b, 0xcb, 0x94, 0x73, 0x67, 0x90, 0x5e, 0x5d,
6406 0x1a, 0x30, 0x4a, 0x4d, 0xb6, 0x1e, 0xd3, 0xb5, 0x33, 0xac, 0xa1, 0x67,
6407 0xe9, 0xf5, 0x9e, 0x60, 0xd6, 0xc7, 0x22, 0xcb, 0x8a, 0xba, 0x12, 0xd3,
6408 0xe9, 0xa1, 0x95, 0x6a, 0x94, 0x5e, 0x86, 0xec, 0x6e, 0xc9, 0x6f, 0xec,
6409 0x19, 0x38, 0x42, 0x5a, 0xa1, 0xb6, 0x67, 0x39, 0xf8, 0x5f, 0xfd, 0xe7,
6410 0x35, 0xb9, 0x7b, 0x43, 0x63, 0xcf, 0x5e, 0xa5, 0x7b, 0x1f, 0x17, 0xab,
6411 0x63, 0xb2, 0x38, 0x49, 0x57, 0x8a, 0xe4, 0x68, 0x26, 0x5e, 0x50, 0x24,
6412 0xa4, 0x36, 0x6d, 0xb5, 0xaa, 0xd5, 0x4d, 0xad, 0x5a, 0x4f, 0xc1, 0xdd,
6413 0x40, 0xf2, 0x8e, 0x83, 0xf6, 0x06, 0xd3, 0xa3, 0x45, 0x79, 0xdd, 0xab,
6414 0xbc, 0x16, 0x69, 0x55, 0x26, 0xf3, 0x2b, 0xf6, 0xb9, 0xf8, 0x1a, 0xb2,
6415 0x93, 0x87, 0xa0, 0x81, 0x0d, 0xcb, 0xb6, 0xe0, 0x00, 0x5a, 0xe6, 0x32,
6416 0x8f, 0x73, 0xd5, 0x19, 0xd7, 0x50, 0x9c, 0x5a, 0x09, 0xa0, 0xae, 0x28,
6417 0x24, 0x46, 0x36, 0x32, 0xa2, 0xec, 0x8d, 0xc8, 0x71, 0x7c, 0x37, 0x86,
6418 0xe0, 0x78, 0x8f, 0xc1, 0x3b, 0x0b, 0xe9, 0x08, 0x1e, 0x5c, 0x4d, 0x68,
6419 0xb6, 0xdd, 0x73, 0x3c, 0x77, 0x40, 0x89, 0x71, 0x73, 0x87, 0x61, 0xd1,
6420 0x3e, 0x01, 0x48, 0x1a, 0xe0, 0xd9, 0x77, 0x8a, 0x3a, 0x88, 0xf0, 0x04,
6421 0x6d, 0x34, 0x64, 0x07, 0xad, 0x4a, 0x37, 0xa3, 0xa8, 0x06, 0x10, 0xbb,
6422 0x4c, 0xd7, 0xae, 0x6d, 0xa8, 0x1a, 0x69, 0xfd, 0x3e, 0xfc, 0xf0, 0x16,
6423 0x6c, 0x77, 0xc9, 0x8c, 0xfe, 0xf9, 0x83, 0xec, 0x92, 0x34, 0x7b, 0x7c,
6424 0x33, 0x6a, 0x27, 0x3e, 0xea, 0xc3, 0x18, 0xab, 0xe6, 0x7f, 0xc3, 0x2f,
6425 0xed, 0x91, 0x5b, 0x12, 0x0b, 0x07, 0x62, 0xbe, 0x23, 0x1f, 0xa2, 0x06,
6426 0x34, 0xc5, 0x46, 0x90, 0xbc, 0xaa, 0xfd, 0xe8, 0xcb, 0xb8, 0x4c, 0xa7,
6427 0x83, 0xe8, 0x28, 0x25, 0x5b, 0xbd, 0x1a, 0x78, 0xd4, 0xba, 0xc3, 0xfa,
6428 0x8f, 0xa2, 0xef, 0xac, 0x88, 0x38, 0x9d, 0xb9, 0x60, 0xe9, 0x84, 0x1b,
6429 0xd5, 0x11, 0x02, 0x6c, 0x88, 0xf7, 0x5c, 0xfd, 0xdf, 0x61, 0x95, 0x32,
6430 0xb4, 0xed, 0x69, 0x95, 0xb1, 0x98, 0x71, 0x79, 0x5b, 0x2f, 0xd8, 0x20,
6431 0x56, 0x55, 0xc9, 0x7e, 0x52, 0x36, 0x81, 0x30, 0xbf, 0x99, 0xd6, 0xcc,
6432 0x51, 0x99, 0xc3, 0xbf, 0x9d, 0x94, 0x5b, 0x69, 0x14, 0xf8, 0xad, 0x4a,
6433 0xc5, 0x73, 0x59, 0xd0, 0x1d, 0xa7, 0x91, 0x6d, 0xd7, 0x0d, 0x24, 0x8a,
6434 0xd3, 0x3c, 0xf1, 0x8c, 0xa8, 0x3e, 0x39, 0xbb, 0x3c, 0xfe, 0x9d, 0xc2,
6435 0x35, 0x9d, 0xe4, 0xf0, 0x26, 0x67, 0xdc, 0x81, 0xc6, 0x03, 0x5b, 0x6b,
6436 0xea, 0x28, 0x57, 0xd4, 0x05, 0xca, 0x5d, 0x11, 0x6d, 0xc2, 0xc5, 0x19,
6437 0x03, 0xfe, 0x64, 0xc8, 0xec, 0x5d, 0x1a, 0x4b, 0x75, 0x6a, 0x86, 0x2d,
6438 0xf1, 0xd8, 0xdf, 0xb1, 0xe8, 0xbf, 0xf3, 0xa5, 0x0a, 0x56, 0xfa, 0x22,
6439 0x98, 0x8e, 0xb9, 0x1d, 0xf5, 0x7f, 0xc0, 0x6f, 0x34, 0x4d, 0x0b, 0x3a,
6440 0x82, 0x59, 0x4f, 0x4d, 0xc5, 0xe5, 0x09, 0x70, 0x33, 0xfa, 0x7e, 0x6e,
6441 0x18, 0x2b, 0x4c, 0xd7, 0x14, 0xb4, 0x03, 0x52, 0x61, 0x40, 0xdd, 0xa8,
6442 0xb6, 0xef, 0x42, 0x55, 0x0a, 0x96, 0x13, 0xd0, 0x17, 0xa0, 0xd8, 0x8f,
6443 0x72, 0x6d, 0x0b, 0x9e, 0x95, 0x5a, 0xad, 0x23, 0x90, 0x27, 0x39, 0xb5,
6444 0x82, 0x69, 0xe1, 0xe1, 0x0b, 0x1f, 0x46, 0x88, 0x00, 0xa6, 0xd6, 0xf0,
6445 0x21, 0x2b, 0x2a, 0xd3, 0x10, 0xb5, 0xd1, 0x06, 0x9f, 0x11, 0xce, 0x15,
6446 0x84, 0x82, 0x4a, 0x8e, 0xc5, 0x3a, 0x80, 0xdf, 0xbd, 0x72, 0xfc, 0x32,
6447 0xda, 0x2c, 0x17, 0xd6, 0x98, 0x26, 0x4a, 0x1c, 0xc6, 0xd7, 0xf9, 0x8c,
6448 0xa4, 0xca, 0xeb, 0x6a, 0x59, 0xe2, 0xbc, 0xd4, 0xa2, 0x4a, 0xa9, 0x30,
6449 0xac, 0x08, 0x13, 0xff, 0x24, 0x11, 0x7a, 0x2c, 0xae, 0xf6, 0xe9, 0x6a,
6450 0xd2, 0x63, 0x6f, 0x88, 0xf0, 0x2c, 0xb0, 0x06, 0x1b, 0x5e, 0x00, 0x79,
6451 0x19, 0xd6, 0x8d, 0x53, 0x93, 0x40, 0x9d, 0x2b, 0xd0, 0xd7, 0xf0, 0xcc,
6452 0x94, 0xd3, 0x1d, 0x77, 0x73, 0xed, 0x35, 0xaf, 0x0e, 0x6c, 0xb1, 0xcc,
6453 0x59, 0x06, 0x66, 0x1b, 0x67, 0x21, 0x89, 0x0e, 0xef, 0xf6, 0x59, 0xb4,
6454 0x78, 0x50, 0xd4, 0xbd, 0x9e, 0x66, 0x9c, 0x9e, 0x8c, 0x4b, 0xdf, 0x67,
6455 0x9f, 0xb5, 0xac, 0x97, 0xf7, 0xee, 0xe9, 0x7d, 0xfa, 0x75, 0x70, 0xb9,
6456 0x9c, 0x73, 0x0c, 0xdd, 0xca, 0x75, 0xfa, 0x1b, 0x66, 0xcb, 0x72, 0x0f,
6457 0x19, 0x37, 0xe4, 0x83, 0xce, 0xe3, 0xdc, 0x21, 0xdd, 0x2e, 0x33, 0x60,
6458 0x43, 0xae, 0x2e, 0xd2, 0xcf, 0xb8, 0x14, 0x28, 0xc6, 0x1a, 0x5b, 0xde,
6459 0xf4, 0x57, 0xb3, 0xb3, 0x81, 0x99, 0x47, 0xa6, 0xe6, 0x88, 0x2d, 0x43,
6460 0xb6, 0x5a, 0xc7, 0xb9, 0x36, 0xcc, 0x73, 0xac, 0x9d, 0x71, 0xc2, 0xd1,
6461 0x10, 0x23, 0x57, 0xc0, 0xc4, 0x9d, 0xbb, 0xc3, 0xb7, 0xeb, 0xbb, 0xf3,
6462 0xf6, 0x9f, 0xe9, 0xce, 0x41, 0xf4, 0x28, 0xf8, 0x5c, 0xab, 0xd1, 0xb0,
6463 0x2a, 0x2e, 0x55, 0xdf, 0xcd, 0x72, 0x08, 0xb5, 0xed, 0x62, 0x99, 0xa3,
6464 0x29, 0x87, 0x8d, 0x26, 0x75, 0x6e, 0xfa, 0xf6, 0xa5, 0x2f, 0xcb, 0xe5,
6465 0x69, 0x58, 0xe1, 0xdc, 0xfe, 0xc0, 0xba, 0xf2, 0xb1, 0xdd, 0x35, 0xde,
6466 0x2b, 0xcb, 0x2e, 0xf1, 0xdf, 0xd3, 0x7a, 0x84, 0xf8, 0xcd, 0xee, 0x68,
6467 0x27, 0xa4, 0xeb, 0x70, 0x69, 0x1e, 0x05, 0x08, 0xba, 0x2a, 0x10, 0x77,
6468 0xf8, 0x82, 0xa2, 0x3c, 0x12, 0xe4, 0x84, 0x37, 0x5e, 0xd3, 0x9f, 0xed,
6469 0x0a, 0xbb, 0x2b, 0x6d, 0x24, 0xa5, 0xd2, 0x66, 0xee, 0x87, 0x64, 0xb1,
6470 0x04, 0x1c, 0xbe, 0x5e, 0x52, 0x57, 0x94, 0x07, 0xb6, 0xd1, 0x53, 0xbf,
6471 0xa3, 0x9e, 0xb9, 0xe5, 0xd6, 0x3e, 0x0a, 0x5a, 0x5a, 0xab, 0x53, 0x09,
6472 0x60, 0x19, 0xd6, 0x52, 0x92, 0x48, 0x4b, 0xd5, 0xda, 0xb4, 0x9d, 0xc3,
6473 0x7a, 0x7a, 0x18, 0xcb, 0x33, 0x4e, 0xc1, 0xe8, 0x6a, 0x55, 0x00, 0x70,
6474 0xa4, 0x2c, 0x4a, 0xca, 0xa4, 0xc0, 0xad, 0x32, 0xf2, 0xb0, 0x43, 0xd1,
6475 0x20, 0x3d, 0x92, 0x76, 0xcb, 0x0a, 0x75, 0xc1, 0xd4, 0xf7, 0xc8, 0xa2,
6476 0x65, 0x15, 0x02, 0x7c, 0x54, 0xc1, 0x79, 0xb4, 0xa8, 0xdd, 0x79, 0x4a,
6477 0x1d, 0xea, 0x83, 0x50, 0x80, 0xa7, 0x9e, 0xa1, 0xf7, 0xaa, 0x0a, 0x4d,
6478 0x84, 0x1d, 0xb1, 0x2f, 0xb2, 0x72, 0xe6, 0x00, 0x81, 0x76, 0xb2, 0xd1,
6479 0x35, 0x75, 0xae, 0x1c, 0x09, 0x83, 0x68, 0xf8, 0x3f, 0x74, 0x66, 0xd8,
6480 0x9e, 0x64, 0x54, 0x0c, 0xd8, 0x32, 0x97, 0x01, 0x59, 0x97, 0x26, 0x2f,
6481 0x41, 0xdf, 0xf3, 0xb1, 0x6b, 0xe3, 0x08, 0xea, 0x9d, 0x4b, 0xee, 0x03,
6482 0xd4, 0xdf, 0xab, 0x80, 0x5d, 0x08, 0x09, 0x86, 0x7a, 0x5b, 0x1e, 0x98,
6483 0xa6, 0x90, 0xe6, 0x36, 0x1c, 0x79, 0xa8, 0xe0, 0xa0, 0x5a, 0x1d, 0x76,
6484 0xd7, 0xfd, 0x2f, 0xb9, 0xac, 0xc3, 0x61, 0x1e, 0x87, 0xd3, 0x6a, 0x97,
6485 0x8f, 0x0d, 0xeb, 0xa9, 0x08, 0xbf, 0xe9, 0x89, 0x9e, 0xa4, 0x90, 0x0d,
6486 0xe9, 0x85, 0xe1, 0x5b, 0xbd, 0xff, 0x7f, 0x21, 0x5f, 0x18, 0xc1, 0xa9,
6487 0x29, 0x5f, 0x38, 0x47, 0xc1, 0x2a, 0x7b, 0x60, 0x5f, 0x5f, 0xe2, 0xbc,
6488 0xb3, 0x9e, 0xde, 0xfe, 0xeb, 0xb3, 0x22, 0xcf, 0x5b, 0x5e, 0x5a, 0xa3,
6489 0x30, 0x3c, 0x36, 0x99, 0xfc, 0x55, 0xde, 0xd5, 0xdb, 0xce, 0xc3, 0x10,
6490 0x75, 0x89, 0x71, 0x2c, 0xeb, 0xbd, 0x7f, 0x6f, 0x77, 0x5b, 0x3a, 0x63,
6491 0xd5, 0x89, 0x61, 0x70, 0xa9, 0x48, 0xfa, 0xf0, 0xb6, 0x11, 0x67, 0x84,
6492 0x07, 0x17, 0x03, 0xa0, 0x19, 0x96, 0xb0, 0x48, 0xb3, 0xc4, 0x15, 0xe3,
6493 0xe0, 0x93, 0x89, 0x8e, 0x5a, 0x10, 0x71, 0x68, 0x72, 0x16, 0x33, 0xab,
6494 0xbb, 0x05, 0x1a, 0x38, 0x5b, 0x8c, 0x44, 0x69, 0x78, 0x17, 0x44, 0xe5,
6495 0x39, 0xc7, 0x0d, 0x04, 0x61, 0x74, 0x9e, 0xdf, 0xbb, 0xcc, 0x20, 0xb0,
6496 0x4d, 0x64, 0x1a, 0xcc, 0xbc, 0x38, 0x78, 0xf3, 0xd5, 0x31, 0x0c, 0x01,
6497 0xb6, 0xc7, 0x44, 0xc1, 0xf3, 0x2e, 0x65, 0xa6, 0x8b, 0x21, 0xf0, 0x3c,
6498 0xa5, 0x70, 0x55, 0xa6, 0xbc, 0x07, 0x66, 0xab, 0x29, 0x87, 0xeb, 0xdf,
6499 0xba, 0xb2, 0x0e, 0xa8, 0x54, 0x01, 0x31, 0xc6, 0xc2, 0x2b, 0x6a, 0x67,
6500 0x23, 0x32, 0xbf, 0x15, 0x4c, 0x09, 0xbe, 0xeb, 0x30, 0xa8, 0x3f, 0x47,
6501 0x12, 0xf1, 0x64, 0x19, 0x2b, 0xd5, 0x42, 0x1c, 0xa6, 0xf0, 0xab, 0x8b,
6502 0x60, 0x54, 0xdf, 0x95, 0x1b, 0x06, 0xe1, 0x77, 0xd7, 0xd1, 0x02, 0xd7,
6503 0xd1, 0x51, 0xe8, 0x8a, 0x91, 0xbc, 0xf5, 0xdd, 0x9d, 0x1d, 0xcf, 0x3a,
6504 0xeb, 0xa9, 0x08, 0x5a, 0x7a, 0xb3, 0x88, 0x76, 0x86, 0xcf, 0x9f, 0xaf,
6505 0x53, 0x89, 0xae, 0x51, 0xf0, 0x01, 0x3c, 0xfb, 0xe8, 0x36, 0x87, 0xfc,
6506 0xe8, 0xba, 0x36, 0x3b, 0x2e, 0x1d, 0xa8, 0x03, 0xa6, 0x88, 0xa9, 0xd2,
6507 0x99, 0x2f, 0xea, 0x9c, 0x10, 0xa7, 0x38, 0x82, 0x14, 0x99, 0xbb, 0x79,
6508 0xf0, 0x54, 0x6e, 0x78, 0x8a, 0x33, 0xa4, 0xa3, 0x9b, 0x1f, 0x63, 0xc9,
6509 0xa0, 0xa9, 0xd4, 0xc5, 0xa9, 0x3e, 0x6a, 0x62, 0x82, 0xbb, 0xe7, 0x9a,
6510 0x29, 0xba, 0x6a, 0x8f, 0xc6, 0x6c, 0x83, 0xb7, 0xe7, 0xec, 0xa5, 0x3a,
6511 0x79, 0xf3, 0x95, 0xdc, 0xe4, 0xe9, 0x5a, 0x0a, 0x8f, 0xe5, 0x76, 0xe3,
6512 0x92, 0xfa, 0x56, 0xeb, 0xa6, 0x73, 0x6d, 0x23, 0x0e, 0x50, 0x4b, 0xd1,
6513 0x9e, 0x34, 0xd3, 0x02, 0xe6, 0x6e, 0xf5, 0xd7, 0x78, 0xcc, 0x2e, 0xa3,
6514 0x61, 0x60, 0xa5, 0x28, 0x0f, 0x2d, 0x9b, 0x28, 0x8b, 0x07, 0xbb, 0xbc,
6515 0xe8, 0x17, 0xd0, 0xba, 0x79, 0xc0, 0x5d, 0xb3, 0xe2, 0xae, 0x92, 0x1b,
6516 0x27, 0x24, 0xa8, 0x65, 0xa5, 0x74, 0x7c, 0x52, 0x3e, 0x83, 0x9d, 0xde,
6517 0xb0, 0x49, 0x3e, 0xae, 0x2b, 0xa1, 0xaf, 0xac, 0xc1, 0x1e, 0xca, 0x26,
6518 0xd6, 0xc0, 0xdc, 0x16, 0x4d, 0x0f, 0x9a, 0xa6, 0x4c, 0xf3, 0x83, 0xd8,
6519 0x3f, 0xf9, 0xbf, 0xde, 0xb7, 0x47, 0x7a, 0xc5, 0x9b, 0x93, 0xcf, 0xa9,
6520 0x6c, 0xe6, 0xaf, 0xe6, 0xda, 0xcb, 0x4e, 0x4f, 0xe2, 0xa5, 0xbc, 0x2f,
6521 0x9f, 0x8e, 0xbb, 0x3f, 0x27, 0xef, 0xdb, 0x74, 0x74, 0x08, 0x3d, 0xdb,
6522 0xb3, 0xca, 0x4e, 0xec, 0x12, 0xea, 0x8c, 0x35, 0x91, 0x4d, 0x70, 0x68,
6523 0x8b, 0xb4, 0x6e, 0x94, 0x6c, 0x44, 0x9a, 0xb7, 0x0b, 0xea, 0x62, 0x96,
6524 0x1b, 0x54, 0x5a, 0xc1, 0xd1, 0x75, 0x0b, 0xc0, 0xdb, 0x95, 0x72, 0x31,
6525 0xa2, 0xe8, 0x19, 0x99, 0x34, 0xa9, 0x5c, 0x16, 0x3c, 0xa3, 0x65, 0xb1,
6526 0xca, 0x54, 0xf3, 0x71, 0xd4, 0x95, 0x3a, 0x1f, 0x97, 0x37, 0x80, 0x43,
6527 0x39, 0xcf, 0x49, 0xdb, 0xb8, 0xc2, 0xe7, 0x95, 0x9e, 0x91, 0xac, 0x29,
6528 0x31, 0xa5, 0x60, 0x59, 0xd7, 0xa6, 0xa2, 0x3e, 0x03, 0x81, 0xa3, 0xe1,
6529 0x63, 0x25, 0x9f, 0x55, 0x46, 0x67, 0x14, 0x05, 0xc2, 0x1f, 0x28, 0x94,
6530 0x4e, 0x91, 0xab, 0x3b, 0x6a, 0xa4, 0x2d, 0x39, 0xfc, 0xe0, 0x17, 0xc1,
6531 0x55, 0x09, 0x34, 0x39, 0x8d, 0x29, 0xc4, 0x25, 0x17, 0xc4, 0x71, 0x8e,
6532 0x36, 0x07, 0x6a, 0x56, 0x6d, 0x01, 0x78, 0xa7, 0x3c, 0xd9, 0xeb, 0x5c,
6533 0x30, 0xef, 0x7c, 0xda, 0x0b, 0x10, 0x1b, 0xa1, 0x3d, 0x49, 0xd6, 0xc1,
6534 0x37, 0x31, 0x42, 0xe9, 0xa0, 0x24, 0x56, 0x0b, 0xf6, 0x75, 0x7c, 0xc9,
6535 0xb7, 0x6f, 0x1c, 0x46, 0x76, 0x41, 0xfc, 0xf6, 0xf8, 0xe2, 0xcb, 0xb3,
6536 0xf1, 0x31, 0x69, 0x88, 0xa3, 0xe3, 0x2f, 0xdf, 0xb2, 0xf6, 0xe0, 0x15,
6537 0x13, 0xef, 0x25, 0x68, 0xf1, 0x24, 0xed, 0x15, 0xdc, 0xaa, 0xee, 0xf2,
6538 0x2c, 0x96, 0xc9, 0xc0, 0xa5, 0x10, 0xaa, 0xd1, 0x25, 0xd7, 0xeb, 0x79,
6539 0x22, 0xee, 0xae, 0x14, 0x80, 0x67, 0x4f, 0xd0, 0xc9, 0x97, 0xea, 0x8c,
6540 0xab, 0xec, 0x54, 0x46, 0x85, 0x62, 0x55, 0x5e, 0xca, 0x7d, 0x7f, 0x69,
6541 0xbe, 0x13, 0xe7, 0xa6, 0x6e, 0x08, 0x5f, 0xa1, 0xcf, 0x2a, 0xf1, 0xe9,
6542 0x71, 0x04, 0xcb, 0x56, 0x89, 0xdf, 0xe6, 0xb9, 0x9c, 0x5e, 0x4c, 0xbc,
6543 0x82, 0xbd, 0x8c, 0x93, 0x35, 0x45, 0x65, 0x5f, 0xad, 0xc0, 0xa0, 0x75,
6544 0xf1, 0x4a, 0x11, 0x38, 0x52, 0x33, 0x92, 0xe5, 0x3a, 0x57, 0xb5, 0x0c,
6545 0x2d, 0x54, 0x26, 0x42, 0x3c, 0x24, 0xa7, 0xa7, 0xc6, 0xff, 0x04, 0x57,
6546 0xa8, 0x95, 0x05, 0x36, 0xf5, 0x56, 0x7a, 0x2f, 0x6e, 0x04, 0xa9, 0xa0,
6547 0x23, 0xe5, 0xe3, 0x1c, 0xbd, 0x32, 0xcf, 0x7c, 0x10, 0xfe, 0x57, 0xd1,
6548 0xb9, 0x5b, 0xaf, 0x0e, 0x2e, 0x65, 0xa4, 0xc9, 0x1d, 0xb8, 0x93, 0x98,
6549 0x32, 0x3e, 0xe0, 0x23, 0x0c, 0xb9, 0x64, 0x18, 0x3b, 0xe9, 0x4c, 0x06,
6550 0xd9, 0x4f, 0x8c, 0x5e, 0x0e, 0x2e, 0x75, 0xeb, 0xeb, 0xcd, 0x99, 0x7d,
6551 0xa9, 0x88, 0xcb, 0x26, 0xb7, 0x91, 0x42, 0x7e, 0x78, 0x49, 0xe1, 0x55,
6552 0x16, 0xe1, 0x6b, 0xef, 0x41, 0x69, 0x5d, 0x4a, 0xcd, 0x55, 0xef, 0xab,
6553 0xd0, 0xf7, 0xbe, 0xb1, 0xb1, 0x71, 0x74, 0x7c, 0x79, 0x70, 0x72, 0x7a,
6554 0x7c, 0x14, 0x9d, 0xbc, 0x79, 0x75, 0x76, 0xf1, 0xfa, 0xe0, 0x52, 0xa3,
6555 0xcf, 0x47, 0xce, 0x79, 0xe5, 0xf2, 0x57, 0x9d, 0x6f, 0xd0, 0x3b, 0xb6,
6556 0x20, 0xc2, 0xb4, 0x8a, 0xd7, 0x4a, 0x8a, 0x2b, 0xd3, 0x90, 0xd4, 0xe6,
6557 0x60, 0x23, 0xd2, 0xa8, 0xb5, 0xe7, 0x76, 0xe1, 0xf3, 0x79, 0xdb, 0x45,
6558 0x1a, 0x47, 0x36, 0x9d, 0x8e, 0xee, 0x8f, 0xd9, 0xaf, 0x1f, 0x6d, 0xca,
6559 0x55, 0xfb, 0x94, 0xb3, 0x89, 0x97, 0x53, 0x12, 0x8d, 0x21, 0x93, 0xc3,
6560 0x93, 0x6d, 0x26, 0x19, 0x8a, 0x0d, 0x5a, 0x09, 0xb6, 0x5b, 0x2b, 0x18,
6561 0xcc, 0xe2, 0xc2, 0xed, 0x04, 0x09, 0xfe, 0x24, 0x81, 0xec, 0x8a, 0x0b,
6562 0xdb, 0x74, 0xa9, 0xeb, 0x46, 0xde, 0x22, 0x58, 0x07, 0xfc, 0x24, 0x5c,
6563 0x5f, 0x26, 0x13, 0xd8, 0x60, 0xe8, 0x4a, 0xa5, 0xb4, 0x22, 0x4c, 0xc6,
6564 0x57, 0x72, 0x8d, 0x49, 0xdb, 0xeb, 0xc2, 0x10, 0x68, 0x4a, 0xd4, 0x02,
6565 0x3c, 0x4a, 0xfb, 0x1f, 0x36, 0xb5, 0xe9, 0xa2, 0x93, 0x64, 0xb9, 0x0c,
6566 0x4f, 0x94, 0xc7, 0x9b, 0xe7, 0x82, 0x39, 0x63, 0xf9, 0xbf, 0x99, 0x95,
6567 0xd1, 0x70, 0x50, 0x35, 0x7f, 0x07, 0x4f, 0xb7, 0x5d, 0x59, 0x45, 0xdd,
6568 0x6d, 0x7e, 0xdf, 0x96, 0x26, 0x69, 0x47, 0xf4, 0x10, 0x17, 0xaa, 0x1e,
6569 0xea, 0xe7, 0xd5, 0xc6, 0x85, 0x93, 0xcc, 0x96, 0x50, 0x8c, 0x27, 0x18,
6570 0x01, 0xf0, 0xc4, 0xbc, 0xd2, 0x39, 0x90, 0x71, 0x40, 0xbe, 0x2b, 0x8b,
6571 0x26, 0xf1, 0xad, 0xd5, 0x07, 0x80, 0x9a, 0x15, 0x20, 0xeb, 0x16, 0x04,
6572 0x26, 0x64, 0xec, 0x9e, 0x6d, 0x96, 0x8c, 0x8c, 0x3d, 0x20, 0x03, 0xf3,
6573 0xbf, 0x69, 0xd5, 0xbd, 0x58, 0x64, 0xb5, 0x41, 0xbd, 0x24, 0xb5, 0xe3,
6574 0x57, 0xb5, 0x41, 0x85, 0x2f, 0xd6, 0x21, 0x0c, 0xa1, 0xa6, 0xb7, 0x4f,
6575 0x7b, 0x62, 0xc6, 0x66, 0x0f, 0x54, 0x8b, 0xa3, 0x84, 0xb8, 0x16, 0x0a,
6576 0x8d, 0x11, 0xca, 0x67, 0xd6, 0xb5, 0x0d, 0x4d, 0x92, 0x55, 0x4d, 0x89,
6577 0x98, 0x8a, 0x89, 0xef, 0x0a, 0xd5, 0xc5, 0xf2, 0x5b, 0xbe, 0x5d, 0x97,
6578 0x5a, 0xb0, 0x36, 0xc8, 0xf7, 0x11, 0xa8, 0x8d, 0x16, 0xdf, 0x80, 0xd2,
6579 0xcb, 0x36, 0xac, 0x56, 0x80, 0xbd, 0x64, 0x60, 0x29, 0x68, 0x7f, 0xe1,
6580 0x7f, 0x85, 0x92, 0xe7, 0x6b, 0x6e, 0x12, 0x97, 0xb8, 0xe2, 0x00, 0xf5,
6581 0x2f, 0x67, 0x06, 0x44, 0x40, 0x60, 0xc8, 0x16, 0xcf, 0xc0, 0xe1, 0x13,
6582 0xb0, 0x4a, 0x08, 0x07, 0x5d, 0xcc, 0x89, 0xfb, 0xb6, 0x29, 0x04, 0xe1,
6583 0xeb, 0x5a, 0xc1, 0x59, 0xc7, 0x57, 0xd8, 0x62, 0x0e, 0x98, 0xa6, 0xe2,
6584 0xd6, 0xce, 0xf3, 0x52, 0xf6, 0x1b, 0x2c, 0xed, 0x9e, 0x54, 0x3f, 0x64,
6585 0x31, 0xe8, 0x2d, 0x6f, 0xe8, 0x1b, 0xbd, 0xe8, 0x9a, 0xef, 0x2a, 0x13,
6586 0xea, 0x7a, 0x4b, 0x81, 0xce, 0xe4, 0xf1, 0x97, 0x17, 0xf1, 0x55, 0x9c,
6587 0xcc, 0xff, 0xb0, 0xb7, 0x33, 0x8e, 0xaf, 0x57, 0xf3, 0xf8, 0x8f, 0x78,
6588 0xf1, 0xe5, 0x93, 0x27, 0x7b, 0x3b, 0x9f, 0x7e, 0xb6, 0xd3, 0x6b, 0xc4,
6589 0x90, 0x03, 0x00, 0x0a, 0xf0, 0x04, 0x7c, 0x92, 0x41, 0xef, 0xe2, 0x3b,
6590 0xa3, 0xe9, 0x75, 0xca, 0x9f, 0xf9, 0x9a, 0x8d, 0x17, 0x9d, 0x83, 0x58,
6591 0xee, 0x77, 0x50, 0x93, 0x4a, 0xa9, 0x45, 0x27, 0x2e, 0xc9, 0xf5, 0xef,
6592 0x77, 0xf7, 0x45, 0x95, 0x5d, 0xc3, 0x61, 0x1d, 0x8b, 0xc4, 0x46, 0x2f,
6593 0xd2, 0x8c, 0x4e, 0xa0, 0xcf, 0xa3, 0x2a, 0xbe, 0x76, 0xb2, 0x8a, 0x16,
6594 0xb0, 0x1a, 0x6e, 0x39, 0x2b, 0x44, 0x39, 0xd9, 0xdc, 0x19, 0x45, 0x9b,
6595 0x97, 0xc2, 0x0a, 0x0e, 0xc3, 0x67, 0x99, 0x14, 0xa8, 0xa6, 0x7d, 0x5d,
6596 0xc4, 0x0b, 0x43, 0xc5, 0xf3, 0xfb, 0x8c, 0xd2, 0x19, 0x2d, 0xe7, 0x00,
6597 0x6c, 0x1b, 0xd4, 0xa6, 0x4c, 0xbd, 0xc0, 0xcd, 0x97, 0xa5, 0xa7, 0x98,
6598 0x92, 0xe3, 0x26, 0xe4, 0x1b, 0xa7, 0xc9, 0x82, 0x97, 0xa3, 0x87, 0x51,
6599 0x0d, 0x1c, 0x57, 0xcd, 0x70, 0x66, 0x23, 0x1d, 0xe1, 0xef, 0xc8, 0x34,
6600 0x8f, 0x85, 0x4c, 0xac, 0xb7, 0x94, 0x1c, 0x4e, 0x57, 0xe7, 0x52, 0xdc,
6601 0x61, 0x69, 0x6d, 0x5c, 0xb1, 0x47, 0x87, 0x45, 0x2f, 0xcc, 0x6f, 0xb3,
6602 0xfb, 0xf9, 0x4b, 0x08, 0xc4, 0xee, 0xe7, 0x7f, 0x74, 0x3f, 0xdb, 0xd3,
6603 0x9f, 0xed, 0x7d, 0xfe, 0xc7, 0xd1, 0x08, 0xfd, 0x63, 0x09, 0xe9, 0xdb,
6604 0xaf, 0xfb, 0xca, 0xeb, 0x10, 0xeb, 0x16, 0x96, 0x7f, 0x39, 0x22, 0x4d,
6605 0x59, 0xeb, 0x9e, 0x7d, 0x39, 0x9c, 0xe5, 0x81, 0x06, 0xe5, 0x9c, 0xde,
6606 0x4a, 0xad, 0x62, 0x0f, 0x58, 0x52, 0xcb, 0xae, 0x49, 0x77, 0xb1, 0x03,
6607 0xb4, 0x53, 0x3a, 0xea, 0xc1, 0x38, 0xfa, 0x13, 0x4b, 0xea, 0x9f, 0x36,
6608 0x22, 0x8d, 0x9d, 0xf1, 0x72, 0xa0, 0xee, 0x71, 0x64, 0x62, 0x4b, 0x8f,
6609 0xc6, 0x46, 0x6f, 0xce, 0x2d, 0x33, 0xd4, 0x9c, 0xcf, 0xc0, 0xa0, 0xd4,
6610 0xe3, 0x9f, 0x35, 0x83, 0x5e, 0x16, 0x9c, 0xf5, 0x19, 0x52, 0xce, 0x04,
6611 0x90, 0x4f, 0x16, 0x46, 0x25, 0xbc, 0xd0, 0xf4, 0xe4, 0x1f, 0xbe, 0xff,
6612 0x5e, 0xcd, 0x29, 0xfa, 0x8b, 0xf6, 0xfb, 0x86, 0x34, 0xd1, 0x8c, 0x94,
6613 0xdb, 0x02, 0x05, 0x05, 0xb5, 0x3a, 0xa7, 0x1e, 0xf8, 0x57, 0x3a, 0x4e,
6614 0x69, 0x84, 0x16, 0xf6, 0x60, 0x7c, 0x78, 0x72, 0x02, 0x50, 0x1d, 0xa6,
6615 0xf4, 0x58, 0x94, 0x18, 0x24, 0x73, 0x13, 0x18, 0x01, 0x8f, 0xc1, 0x0a,
6616 0x05, 0x9f, 0x57, 0x0e, 0x8b, 0x0e, 0xd9, 0xa7, 0xc6, 0xec, 0x1a, 0xac,
6617 0x0b, 0x09, 0x89, 0x15, 0x1b, 0xe7, 0x65, 0x4f, 0x1e, 0xbc, 0x4e, 0x7b,
6618 0x1a, 0xf9, 0x91, 0x9f, 0xf4, 0x3c, 0x4d, 0x87, 0xac, 0x06, 0x96, 0xec,
6619 0xa5, 0x18, 0x4e, 0xe9, 0xcf, 0xc9, 0xcb, 0xdd, 0x9d, 0xee, 0x27, 0xf8,
6620 0x36, 0x04, 0xea, 0xda, 0x97, 0x3e, 0x72, 0xf6, 0xd8, 0xf3, 0xe9, 0x4c,
6621 0x9e, 0xd6, 0x82, 0xc5, 0x28, 0x32, 0xfa, 0xb2, 0x37, 0xe1, 0xf3, 0x95,
6622 0xff, 0xff, 0x9a, 0x7e, 0x00, 0xf5, 0xaa, 0xcf, 0x96, 0xab, 0xc9, 0x22,
6623 0xad, 0x75, 0x78, 0x9b, 0x07, 0xf8, 0x39, 0x5c, 0x2a, 0x89, 0x93, 0x0d,
6624 0xd4, 0xbb, 0x17, 0xcb, 0xaf, 0x7f, 0x95, 0xe7, 0x93, 0xb8, 0xe8, 0x6b,
6625 0x74, 0xc5, 0xfa, 0xd9, 0xdf, 0xdd, 0x7b, 0xf2, 0xf4, 0x59, 0x7f, 0xa4,
6626 0x56, 0x1a, 0x14, 0x44, 0x15, 0x66, 0xc3, 0x4b, 0x13, 0xb1, 0x6c, 0x4f,
6627 0x03, 0x75, 0x22, 0xfd, 0xb6, 0x2b, 0x0a, 0xc9, 0x3a, 0x8c, 0x3f, 0xf7,
6628 0x52, 0xbe, 0xf6, 0x47, 0xfe, 0xce, 0x4b, 0x7c, 0xe2, 0x8f, 0xe9, 0xec,
6629 0xa5, 0x1b, 0xe1, 0x1f, 0x79, 0x2c, 0x2f, 0x75, 0x10, 0xb4, 0xae, 0x96,
6630 0xee, 0x54, 0x86, 0x74, 0xef, 0x1f, 0x5a, 0x5c, 0x5b, 0xc4, 0x0d, 0x0c,
6631 0x1a, 0x21, 0xf0, 0xe1, 0x4c, 0x82, 0x11, 0xb0, 0x55, 0x7d, 0xae, 0xcf,
6632 0xf6, 0xfb, 0x21, 0xb5, 0x32, 0xe4, 0x56, 0x86, 0x5e, 0x5d, 0x83, 0x56,
6633 0x78, 0xc8, 0x0b, 0x31, 0xd0, 0x84, 0xaf, 0x39, 0x7c, 0x1d, 0x6a, 0x08,
6634 0xe4, 0x39, 0x02, 0xcc, 0x87, 0x5f, 0x9d, 0xf4, 0x15, 0xb9, 0x21, 0x17,
6635 0xb7, 0x41, 0x97, 0xbf, 0xd8, 0xc1, 0xa9, 0xa6, 0xf1, 0x92, 0xf7, 0xfe,
6636 0x46, 0xa4, 0x35, 0xb2, 0x62, 0x06, 0x22, 0xf0, 0x77, 0x25, 0x3b, 0x93,
6637 0x3e, 0xa6, 0x67, 0xce, 0x9c, 0x3d, 0xd0, 0x85, 0x10, 0x1e, 0x07, 0xcd,
6638 0x30, 0xff, 0xa7, 0x22, 0x12, 0x10, 0x82, 0x59, 0xba, 0xc4, 0xae, 0xe1,
6639 0x2b, 0x17, 0x26, 0x74, 0x89, 0x44, 0xfa, 0x28, 0xfd, 0x4a, 0xb4, 0x89,
6640 0x29, 0x88, 0x9e, 0x63, 0xef, 0x12, 0x49, 0x08, 0x75, 0x07, 0x82, 0x9c,
6641 0x93, 0xa4, 0x56, 0xdb, 0x57, 0xcc, 0x42, 0xd6, 0x9e, 0x2f, 0x5c, 0xcd,
6642 0xde, 0xcf, 0x23, 0x54, 0xbe, 0x93, 0xb7, 0x34, 0x55, 0xa8, 0x56, 0x40,
6643 0x1e, 0x2f, 0xe9, 0xe5, 0xc0, 0x45, 0xa4, 0x02, 0x38, 0x87, 0x9a, 0x05,
6644 0x21, 0xb3, 0xf3, 0xe4, 0x41, 0xaf, 0xff, 0xdc, 0x42, 0xff, 0x2f, 0xd8,
6645 0x04, 0x2f, 0x78, 0x19, 0xf0, 0xeb, 0xcf, 0xfb, 0xe2, 0xc2, 0x73, 0xef,
6646 0x72, 0x37, 0x1a, 0x21, 0x57, 0x11, 0xd0, 0x70, 0x3c, 0xf9, 0x95, 0x23,
6647 0xd6, 0x14, 0x5b, 0x8c, 0x89, 0x00, 0x32, 0x5c, 0xa7, 0xd2, 0x64, 0x3e,
6648 0x53, 0x46, 0x3a, 0xe7, 0x30, 0x96, 0xc6, 0x13, 0x66, 0x59, 0x60, 0xdb,
6649 0xb1, 0xcf, 0xc8, 0x3c, 0xbc, 0xd7, 0x77, 0x3c, 0x9d, 0xf0, 0x61, 0x42,
6650 0xdd, 0x15, 0x89, 0xb1, 0xb5, 0x6d, 0x68, 0x02, 0xb0, 0xb7, 0xe5, 0xc3,
6651 0x81, 0x95, 0x81, 0xe9, 0xe0, 0xd3, 0xa9, 0x84, 0x35, 0xa3, 0xb5, 0x45,
6652 0x5e, 0x71, 0xae, 0xa2, 0x7e, 0xf4, 0x25, 0x4f, 0xf7, 0xee, 0xe8, 0x3a,
6653 0xbd, 0x92, 0xc9, 0x20, 0x15, 0x79, 0x9d, 0x6c, 0xd3, 0x3f, 0x07, 0xf4,
6654 0xf3, 0x3d, 0xb6, 0xc9, 0xf8, 0x2f, 0x4f, 0x00, 0xe8, 0x09, 0x4f, 0xfe,
6655 0x60, 0x6f, 0xb8, 0x7d, 0xc1, 0x7f, 0x49, 0xdd, 0x89, 0xaf, 0x51, 0x16,
6656 0xed, 0xe5, 0xd0, 0x88, 0xb5, 0x5d, 0x79, 0x11, 0x29, 0x27, 0xe2, 0x23,
6657 0x28, 0xe0, 0x51, 0xce, 0x61, 0x9d, 0x94, 0x1e, 0xff, 0xaa, 0x88, 0x03,
6658 0x35, 0xd3, 0xd9, 0xea, 0x4e, 0xd5, 0x61, 0xc2, 0xd9, 0x06, 0x38, 0x57,
6659 0x93, 0xfb, 0xad, 0x41, 0x88, 0x2a, 0xb4, 0x42, 0xde, 0xcc, 0x09, 0xe0,
6660 0x33, 0xbf, 0xf8, 0xf3, 0x9b, 0x5a, 0xdd, 0x99, 0xe9, 0xc4, 0x34, 0xa3,
6661 0x11, 0xcb, 0x9c, 0x36, 0x57, 0xb0, 0x5e, 0x21, 0x59, 0x90, 0x60, 0x69,
6662 0x59, 0x6d, 0xf1, 0x67, 0x92, 0x79, 0x89, 0x9b, 0x3a, 0x77, 0x7a, 0x23,
6663 0x24, 0x02, 0x33, 0x52, 0x57, 0x7c, 0xaa, 0xcf, 0x9c, 0xa6, 0xdb, 0x08,
6664 0x14, 0x8b, 0x6e, 0x3b, 0x5e, 0x48, 0x5d, 0x34, 0x88, 0xed, 0x7c, 0x28,
6665 0xe7, 0xa5, 0x1a, 0x41, 0xc3, 0x57, 0xa3, 0xe8, 0x14, 0x98, 0xd8, 0x32,
6666 0x16, 0xf6, 0x07, 0x3b, 0x53, 0x4d, 0x02, 0x48, 0x5c, 0x4a, 0x63, 0xb0,
6667 0xe2, 0xf7, 0x38, 0xe1, 0xde, 0xc4, 0x08, 0xb4, 0xd4, 0xfe, 0x9a, 0x29,
6668 0x16, 0x85, 0x5a, 0x20, 0x03, 0x78, 0xa1, 0xdd, 0x73, 0xf0, 0xbb, 0xe3,
6669 0xa9, 0x18, 0xa9, 0x25, 0x4e, 0x48, 0x83, 0x46, 0x04, 0xe9, 0xa3, 0x26,
6670 0x67, 0xa0, 0xca, 0x9d, 0xe0, 0x4b, 0x5e, 0x7f, 0x22, 0x6e, 0x16, 0x3e,
6671 0x86, 0x99, 0x82, 0x02, 0x61, 0x59, 0x6a, 0x0d, 0x92, 0x05, 0x3e, 0x57,
6672 0x12, 0x9d, 0x1e, 0x6e, 0x8a, 0xf3, 0xc4, 0x5d, 0xa7, 0xb5, 0xde, 0x8c,
6673 0xd4, 0x7f, 0xc9, 0x95, 0xa4, 0x56, 0x79, 0xe0, 0x5d, 0xc8, 0x8c, 0x3b,
6674 0xc9, 0xfd, 0x8a, 0xef, 0xe8, 0x2f, 0x7c, 0xc8, 0x4f, 0x0a, 0x5a, 0xe9,
6675 0xa4, 0x90, 0xe3, 0x00, 0x5f, 0x0d, 0x0b, 0x77, 0x7f, 0x7d, 0xf9, 0xfa,
6676 0x34, 0x32, 0x16, 0x8d, 0x2b, 0x6f, 0x1c, 0x1a, 0x9c, 0x0f, 0x43, 0x54,
6677 0x5f, 0x88, 0x58, 0x40, 0xfa, 0x94, 0x9c, 0x6c, 0x32, 0xb7, 0x9c, 0x87,
6678 0x1b, 0xf1, 0xe4, 0xd4, 0xb6, 0x69, 0xf0, 0x84, 0xbc, 0xba, 0x21, 0x8c,
6679 0x3f, 0x7d, 0x9e, 0x82, 0xfe, 0x20, 0xea, 0x73, 0x57, 0xf9, 0x17, 0x7d,
6680 0xcc, 0x27, 0x7e, 0x1c, 0x4c, 0x5f, 0x7f, 0xd4, 0xb1, 0xf3, 0xf8, 0x99,
6681 0x97, 0x5f, 0xd4, 0x66, 0x09, 0x3f, 0xb7, 0xa6, 0x5e, 0x0a, 0x8c, 0xbe,
6682 0x65, 0x65, 0xdb, 0xbb, 0x41, 0xfb, 0x2f, 0x0f, 0xa9, 0x15, 0x29, 0x0c,
6683 0x2e, 0x6b, 0x02, 0x83, 0xda, 0xfd, 0x2c, 0x45, 0x3e, 0x5e, 0xab, 0xa1,
6684 0x0f, 0xef, 0xdc, 0x4b, 0x53, 0x3f, 0x0e, 0x37, 0x28, 0x1a, 0x4d, 0x44,
6685 0xc0, 0xb4, 0x2d, 0xad, 0x66, 0x2a, 0x37, 0xbd, 0xfb, 0x1c, 0x7e, 0x05,
6686 0xe8, 0x99, 0xdd, 0x11, 0xf2, 0xb3, 0x7c, 0x81, 0x46, 0xd7, 0x80, 0xbb,
6687 0xae, 0xf7, 0x30, 0xa1, 0x3d, 0x73, 0x93, 0xb8, 0x4b, 0xbc, 0xcd, 0x72,
6688 0x97, 0xbe, 0x5a, 0xa6, 0x53, 0x50, 0xc4, 0xbe, 0xfc, 0x62, 0x96, 0x5f,
6689 0xb3, 0xb6, 0x1a, 0xd0, 0xc1, 0xca, 0xff, 0xed, 0xf1, 0xc3, 0x7b, 0xfa,
6690 0x51, 0xe9, 0x30, 0xf6, 0x8a, 0xd8, 0xed, 0xf6, 0xef, 0x35, 0xb8, 0x46,
6691 0x6a, 0x78, 0x96, 0x4f, 0xb5, 0x6d, 0xd7, 0xb4, 0xac, 0x07, 0xb5, 0xef,
6692 0x7e, 0x11, 0x7e, 0xcb, 0x26, 0x27, 0xd6, 0x96, 0xa5, 0x40, 0xfb, 0x3c,
6693 0xad, 0xe4, 0xf8, 0x76, 0x95, 0xc5, 0xe0, 0xd2, 0xe2, 0x1a, 0x8b, 0x72,
6694 0x56, 0xcd, 0x35, 0x69, 0xa8, 0xff, 0x45, 0x5f, 0x30, 0xd0, 0xfd, 0x17,
6695 0x7d, 0x68, 0x2d, 0xd6, 0x45, 0x56, 0x4a, 0x46, 0x0f, 0xa4, 0xbe, 0x9c,
6696 0x84, 0x43, 0xb1, 0x17, 0x94, 0x4b, 0xac, 0x06, 0x5b, 0x63, 0x85, 0x61,
6697 0x17, 0xc7, 0x10, 0x71, 0x07, 0xc7, 0x00, 0x0a, 0x5c, 0xa1, 0x57, 0x4c,
6698 0x8e, 0x38, 0xa9, 0x04, 0xab, 0xa2, 0x07, 0x2d, 0x4c, 0x31, 0x70, 0x31,
6699 0x94, 0x8c, 0x21, 0x10, 0xc7, 0xe6, 0x2a, 0x5b, 0x72, 0xe6, 0xed, 0xb4,
6700 0x92, 0x82, 0x49, 0xd8, 0x4b, 0xa3, 0xe8, 0x6d, 0x26, 0x24, 0xd6, 0x09,
6701 0x5f, 0x8f, 0x43, 0x20, 0xcd, 0xc0, 0x01, 0x82, 0x68, 0xa2, 0x6a, 0x21,
6702 0xf2, 0xb0, 0xc3, 0xe2, 0x0e, 0x11, 0xb7, 0xb5, 0x7e, 0x17, 0x68, 0x10,
6703 0x86, 0x29, 0xa9, 0x5b, 0x1a, 0x96, 0x80, 0xe3, 0x64, 0x50, 0x05, 0xc4,
6704 0xd1, 0xb9, 0xe3, 0x57, 0xc7, 0x17, 0x17, 0xc7, 0x17, 0x3c, 0xdf, 0x07,
6705 0xf5, 0x0a, 0x6e, 0xc6, 0xca, 0xe8, 0xa3, 0x7d, 0x06, 0x15, 0x6d, 0x33,
6706 0x42, 0x8b, 0x26, 0x8c, 0x67, 0x33, 0xa6, 0xe0, 0xdd, 0x88, 0x0c, 0xba,
6707 0x21, 0x4c, 0x24, 0xe2, 0x10, 0x86, 0x37, 0x11, 0x40, 0x61, 0xe7, 0xb9,
6708 0x67, 0x3a, 0x34, 0x2d, 0xc4, 0x16, 0x1a, 0x13, 0x1b, 0x91, 0xbd, 0x5a,
6709 0x68, 0x09, 0xce, 0x95, 0x25, 0xfb, 0xde, 0x24, 0x35, 0xbb, 0x74, 0xa4,
6710 0xd8, 0xce, 0x44, 0xa3, 0xd9, 0x73, 0xe7, 0x8e, 0xc0, 0x78, 0xaf, 0x78,
6711 0x83, 0xf2, 0x55, 0x09, 0x33, 0x51, 0x56, 0xab, 0x65, 0x3a, 0x73, 0xce,
6712 0x5d, 0xfa, 0x39, 0xd9, 0x7b, 0x91, 0x6c, 0xf1, 0xd2, 0x7a, 0x8c, 0x60,
6713 0xa2, 0xf9, 0x1e, 0x42, 0xe7, 0x9a, 0x10, 0x7f, 0x78, 0xd7, 0x18, 0x92,
6714 0x81, 0x32, 0x94, 0xd9, 0xb0, 0x72, 0x1b, 0xf5, 0xb4, 0x55, 0x15, 0xfc,
6715 0x04, 0x4e, 0x45, 0x56, 0x15, 0x06, 0x7f, 0x09, 0xd5, 0x02, 0xbb, 0xae,
6716 0x16, 0x1e, 0x21, 0xcd, 0x28, 0xaf, 0x7d, 0x21, 0x58, 0x40, 0xb6, 0x5a,
6717 0xb1, 0x1f, 0xfd, 0x58, 0xa6, 0xd3, 0x9f, 0xfc, 0xc9, 0x81, 0xdc, 0x06,
6718 0x0f, 0x62, 0x16, 0xb8, 0x0c, 0x0d, 0x5e, 0x27, 0x4a, 0xef, 0xbe, 0x92,
6719 0x25, 0xfa, 0x76, 0x7c, 0x7c, 0x11, 0x1d, 0x7c, 0xc5, 0x04, 0xa3, 0xff,
6720 0xda, 0xea, 0xf2, 0x73, 0x7a, 0x32, 0xd8, 0xda, 0x2a, 0x6b, 0x42, 0x32,
6721 0x0b, 0xab, 0x2d, 0x8e, 0x6a, 0x0b, 0x9b, 0x5a, 0x01, 0xd5, 0x20, 0xbd,
6722 0xbd, 0xb6, 0x84, 0x1b, 0xd1, 0x07, 0x17, 0xf1, 0x63, 0x96, 0x90, 0x37,
6723 0x58, 0xb8, 0x88, 0xc2, 0xb7, 0x22, 0x01, 0x08, 0x5b, 0x1a, 0xed, 0x7d,
6724 0xd9, 0xba, 0x66, 0xca, 0x22, 0x1d, 0x44, 0xfd, 0xd7, 0xf9, 0xcf, 0x64,
6725 0x08, 0xc4, 0xdb, 0x4f, 0x46, 0x3b, 0xd1, 0xe6, 0x77, 0x69, 0xf6, 0xfc,
6726 0xd9, 0x5f, 0xa2, 0x93, 0xad, 0x7e, 0x0d, 0xfd, 0x2d, 0x75, 0x74, 0x26,
6727 0x71, 0x76, 0xeb, 0x56, 0xec, 0x0c, 0xbb, 0x5a, 0x30, 0x6d, 0xc6, 0xe9,
6728 0xbf, 0x0f, 0x11, 0x58, 0xdb, 0xa2, 0x90, 0x40, 0x0b, 0x90, 0x3c, 0xfa,
6729 0x56, 0x33, 0x23, 0x9f, 0xe0, 0x4e, 0x4f, 0x4f, 0xcd, 0x78, 0xea, 0x9e,
6730 0x3f, 0x6b, 0x35, 0xf1, 0xd4, 0xb5, 0xf1, 0x56, 0xda, 0xf8, 0x85, 0x4d,
6731 0xec, 0x8d, 0x76, 0xf6, 0xa2, 0xcd, 0xb3, 0xf1, 0xf6, 0x9e, 0x6b, 0xa1,
6732 0xdd, 0xc4, 0x1e, 0x9a, 0xe0, 0x87, 0xea, 0x2f, 0x3f, 0xe5, 0xef, 0xff,
6733 0x98, 0x64, 0x3f, 0x45, 0x9b, 0xdf, 0xef, 0xee, 0x52, 0x03, 0x7f, 0x89,
6734 0x0e, 0x4e, 0xbe, 0x8f, 0x9e, 0x8e, 0xa8, 0xb1, 0x37, 0xf1, 0x9d, 0x36,
6735 0xa7, 0x34, 0x99, 0x63, 0x34, 0x42, 0xbf, 0x6f, 0xb5, 0xf1, 0xac, 0xd1,
6736 0xc6, 0x29, 0xdd, 0x03, 0xdf, 0xd3, 0x91, 0xb2, 0x33, 0x7a, 0xb2, 0x17,
6737 0xa5, 0xcf, 0x3e, 0xfb, 0xc4, 0x1a, 0xd2, 0x36, 0xf0, 0xfb, 0xba, 0x6f,
6738 0x52, 0x88, 0x18, 0xc8, 0xcc, 0x39, 0x7e, 0x4f, 0xca, 0x0c, 0x1a, 0x02,
6739 0xac, 0xef, 0x37, 0x71, 0x31, 0x53, 0x71, 0x63, 0x26, 0x70, 0x5a, 0x29,
6740 0x25, 0xa8, 0x4d, 0xe0, 0xa4, 0xa4, 0x43, 0x73, 0xbf, 0xd5, 0x1d, 0xbe,
6741 0x8b, 0xda, 0xa3, 0x7f, 0x89, 0x5e, 0x8f, 0x4f, 0x8e, 0x69, 0x44, 0x3b,
6742 0xd4, 0x35, 0x3f, 0x87, 0xd2, 0x21, 0xfc, 0x0a, 0x93, 0xfb, 0x1c, 0x7c,
6743 0x87, 0xda, 0x46, 0x58, 0xca, 0x0d, 0x42, 0x47, 0x87, 0x76, 0x89, 0xef,
6744 0x32, 0x24, 0x64, 0x78, 0x70, 0xcd, 0x57, 0x06, 0x39, 0x66, 0xf1, 0xe9,
6745 0x6f, 0xf2, 0x8c, 0xb6, 0x49, 0x91, 0x17, 0x8c, 0x5c, 0xea, 0xd7, 0x2c,
6746 0x85, 0x6f, 0x8e, 0x8e, 0x25, 0x59, 0xf7, 0x75, 0x9c, 0x91, 0x8a, 0x64,
6747 0xd2, 0x9d, 0xf2, 0x96, 0xa3, 0xee, 0x12, 0xbc, 0x91, 0xf7, 0x4f, 0x1f,
6748 0xb2, 0xf7, 0xb4, 0x8e, 0x9f, 0x8e, 0x76, 0x99, 0xf2, 0x80, 0x6f, 0xb9,
6749 0xaf, 0x5e, 0xd3, 0xbf, 0x77, 0x9f, 0xf6, 0x23, 0xfe, 0x55, 0xfd, 0xc6,
6750 0x6e, 0xfb, 0x75, 0xe3, 0xf0, 0xec, 0xec, 0x9b, 0x13, 0x01, 0x60, 0x1c,
6751 0xaa, 0x13, 0x95, 0x0d, 0x2b, 0x77, 0x0b, 0x16, 0xe5, 0x4a, 0xb7, 0x35,
6752 0x9f, 0x58, 0x82, 0xd0, 0xdb, 0x6d, 0x92, 0x2c, 0x19, 0x03, 0x50, 0x35,
6753 0x34, 0x82, 0xd5, 0x99, 0x70, 0xd8, 0x22, 0x36, 0x7d, 0x6a, 0x84, 0x41,
6754 0x25, 0x93, 0xb0, 0x9a, 0xc3, 0x76, 0xf2, 0xe0, 0x08, 0x01, 0x62, 0x17,
6755 0x20, 0x93, 0x2e, 0x3a, 0x78, 0xbb, 0x39, 0x9c, 0x85, 0x40, 0x9f, 0x5e,
6756 0xd4, 0xbb, 0x6e, 0x7f, 0x9c, 0x54, 0x43, 0xe9, 0xf4, 0xbe, 0xfa, 0x68,
6757 0xfb, 0x01, 0x6d, 0x2d, 0xac, 0xd9, 0xa5, 0x16, 0x98, 0x80, 0xa3, 0xf8,
6758 0x81, 0xec, 0x08, 0x8c, 0x49, 0x55, 0x73, 0x09, 0xcf, 0x35, 0xe0, 0x71,
6759 0x6f, 0x0e, 0x5e, 0x1f, 0xbf, 0xfc, 0xf6, 0xe0, 0xf4, 0xed, 0x31, 0xbd,
6760 0x92, 0xd2, 0xc7, 0x36, 0x3d, 0x84, 0x0e, 0x7d, 0x5c, 0xa4, 0xd3, 0x7c,
6761 0xce, 0x31, 0xa5, 0xfe, 0x5f, 0xfa, 0x1b, 0x82, 0xbb, 0x8e, 0x7a, 0xfc,
6762 0xd6, 0xae, 0xbc, 0x46, 0x72, 0xc1, 0xff, 0xda, 0x93, 0x7f, 0xed, 0xfd,
6763 0xa5, 0xb7, 0x55, 0x1b, 0x74, 0xeb, 0x56, 0xcc, 0xf2, 0x72, 0x2f, 0x80,
6764 0x5b, 0xd4, 0x09, 0x05, 0xd8, 0x5f, 0x66, 0xa5, 0x67, 0x11, 0x19, 0x3b,
6765 0xda, 0xf8, 0xd9, 0xcd, 0xc9, 0x43, 0x78, 0xe7, 0xee, 0xf1, 0x4b, 0x2f,
6766 0x61, 0x5c, 0xf4, 0xb6, 0x06, 0xce, 0xdc, 0x40, 0xb0, 0x9a, 0xdb, 0xb0,
6767 0x26, 0x92, 0xf7, 0x4b, 0x46, 0x24, 0x6e, 0xf6, 0xe4, 0x2f, 0x2f, 0x8f,
6768 0x0e, 0x2e, 0x8f, 0xf9, 0x05, 0xfb, 0xbc, 0x31, 0x82, 0x1b, 0x24, 0x9f,
6769 0xfb, 0xb3, 0xd9, 0x93, 0x1f, 0xbe, 0xe4, 0x01, 0xf5, 0xb6, 0x24, 0x72,
6770 0x81, 0xb0, 0x76, 0xa3, 0x5f, 0x79, 0xa6, 0xe8, 0xe6, 0x20, 0x4f, 0xb9,
6771 0x34, 0x9c, 0xc8, 0x66, 0x4f, 0x7e, 0xd7, 0x73, 0xfe, 0x5a, 0x3a, 0xca,
6772 0xfb, 0x77, 0x89, 0x05, 0x27, 0x67, 0x00, 0xec, 0xb7, 0xf2, 0x06, 0x05,
6773 0x12, 0xe6, 0xd7, 0x47, 0x43, 0x13, 0xe2, 0x61, 0x0a, 0x78, 0x7c, 0xdd,
6774 0xc2, 0x6b, 0x5a, 0x35, 0xfb, 0x94, 0xf2, 0x7c, 0x77, 0xef, 0xc9, 0x5f,
6775 0x30, 0x9f, 0x2f, 0x7b, 0xdb, 0x74, 0x36, 0xf4, 0xfe, 0xc2, 0x9f, 0x4e,
6776 0xab, 0xa0, 0xe0, 0xa8, 0x7e, 0x86, 0xef, 0x52, 0x2a, 0x51, 0x02, 0x52,
6777 0xe1, 0x55, 0x0f, 0x78, 0x43, 0x30, 0xa1, 0xf7, 0x92, 0x56, 0x64, 0x4c,
6778 0x1b, 0x16, 0xbe, 0xc7, 0x7a, 0x4d, 0x92, 0xeb, 0x34, 0x43, 0x8d, 0x28,
6779 0x71, 0xe1, 0xe2, 0x73, 0xe1, 0xf9, 0x31, 0x90, 0x77, 0x65, 0x8c, 0xca,
6780 0x4c, 0xc2, 0xdf, 0x5c, 0x3c, 0x58, 0xe6, 0x11, 0xbe, 0x05, 0x7b, 0x5c,
6781 0xd6, 0xac, 0x65, 0x15, 0x4f, 0xd4, 0x97, 0x63, 0x17, 0x11, 0x98, 0x04,
6782 0xa4, 0x5a, 0x1e, 0x60, 0x27, 0x49, 0xbc, 0x3f, 0x80, 0x39, 0xd8, 0x99,
6783 0x1d, 0x4f, 0x38, 0x85, 0xd6, 0xa5, 0x59, 0x04, 0xb7, 0x70, 0x37, 0xf5,
6784 0xb6, 0xfd, 0xd2, 0x80, 0xf3, 0x85, 0x0f, 0x4a, 0x99, 0xcb, 0xd2, 0xf9,
6785 0x8c, 0x10, 0x5b, 0xd4, 0x67, 0xeb, 0xeb, 0xd4, 0x48, 0x60, 0xc2, 0x30,
6786 0xe4, 0x0a, 0x2f, 0x77, 0x63, 0x52, 0x35, 0x59, 0x52, 0x3c, 0x0a, 0x71,
6787 0xe8, 0x08, 0x3d, 0x61, 0x88, 0x41, 0xfe, 0x1b, 0xbf, 0x33, 0x1a, 0x8d,
6788 0x7c, 0xd1, 0x4b, 0x5e, 0x16, 0x8d, 0x38, 0xa1, 0x30, 0x47, 0xc0, 0x4c,
6789 0x89, 0x39, 0xde, 0x84, 0x21, 0x0f, 0x63, 0x7a, 0x4b, 0xe1, 0x2e, 0xea,
6790 0x8d, 0x70, 0x5b, 0x23, 0xf0, 0x69, 0xf4, 0xf5, 0xb3, 0x7d, 0x4b, 0x07,
6791 0xbf, 0xed, 0x5a, 0x84, 0x47, 0xfa, 0x26, 0xbe, 0x46, 0xad, 0xcc, 0xe6,
6792 0xf4, 0x54, 0xee, 0xe6, 0x82, 0x25, 0x98, 0xf1, 0xdb, 0x90, 0x13, 0xc9,
6793 0xa6, 0x94, 0x49, 0xd3, 0xae, 0x68, 0x15, 0x57, 0x56, 0x72, 0xf9, 0x3d,
6794 0x52, 0xbc, 0xa5, 0xba, 0xc2, 0xb2, 0xe0, 0x5b, 0x1e, 0xcf, 0xb1, 0x9d,
6795 0x20, 0x4b, 0x67, 0x2e, 0x6b, 0x3b, 0x4a, 0x54, 0xca, 0xf7, 0x65, 0xd8,
6796 0xfd, 0x03, 0x4f, 0x66, 0xba, 0x81, 0x62, 0x71, 0x89, 0xde, 0x9c, 0xa9,
6797 0xab, 0x08, 0x72, 0xe9, 0xe0, 0xbd, 0x9b, 0x84, 0x31, 0x5e, 0x43, 0xa1,
6798 0x8a, 0xb0, 0xcc, 0x35, 0xd3, 0x1e, 0x4a, 0x16, 0xf0, 0x58, 0x74, 0x7c,
6799 0x6a, 0x2d, 0xba, 0xd0, 0x78, 0x63, 0x6e, 0xfc, 0xa9, 0x5c, 0x57, 0x5d,
6800 0x34, 0xa3, 0xe2, 0x4d, 0x96, 0xa4, 0x7c, 0xaf, 0xf7, 0xa2, 0xf8, 0x9e,
6801 0x8b, 0xaf, 0x26, 0x8c, 0x8f, 0x04, 0xae, 0x01, 0x1e, 0x99, 0xd3, 0xc0,
6802 0xaf, 0xe8, 0xe9, 0x5a, 0x45, 0x6a, 0x15, 0x55, 0xc4, 0x7a, 0x67, 0xdf,
6803 0x2a, 0x25, 0x0a, 0x11, 0xa7, 0x39, 0xf0, 0x52, 0xd4, 0x73, 0x64, 0xe2,
6804 0x44, 0x35, 0xd4, 0xed, 0x6a, 0xce, 0x3d, 0x27, 0x15, 0x3d, 0x56, 0xb9,
6805 0x49, 0x81, 0x06, 0x64, 0x1f, 0x87, 0xa0, 0x28, 0x6c, 0xb6, 0x40, 0x5e,
6806 0xee, 0x3e, 0xe2, 0xa2, 0xd1, 0x70, 0x37, 0x25, 0x80, 0xd7, 0x66, 0x43,
6807 0x57, 0x47, 0xd7, 0x21, 0xae, 0x8a, 0xf4, 0xfa, 0x5a, 0x6e, 0x6c, 0x51,
6808 0x73, 0x68, 0xdd, 0x42, 0x76, 0xca, 0xb3, 0xc2, 0x28, 0xe4, 0x87, 0x75,
6809 0xb3, 0x79, 0x69, 0xfe, 0x1e, 0xf3, 0xb8, 0xd4, 0x84, 0xd9, 0x22, 0x90,
6810 0xb2, 0x6e, 0x15, 0x8a, 0xa1, 0x22, 0xff, 0x9a, 0xdd, 0x5e, 0xf5, 0x88,
6811 0xf1, 0xd9, 0xc5, 0x06, 0xb8, 0xab, 0x33, 0x9f, 0x6e, 0x6e, 0x8b, 0x0e,
6812 0xde, 0x2f, 0x8f, 0x37, 0xf1, 0x48, 0xd0, 0x7b, 0x07, 0x76, 0x92, 0xa2,
6813 0xc3, 0x93, 0xd8, 0xdf, 0xb8, 0x36, 0xa2, 0x9a, 0x77, 0x97, 0x8b, 0x9b,
6814 0x9e, 0x64, 0xaa, 0x87, 0xf2, 0xbb, 0xc4, 0x93, 0xcf, 0x79, 0x07, 0xa3,
6815 0x27, 0x0c, 0xd5, 0xdd, 0xef, 0x94, 0x49, 0x23, 0x9c, 0xeb, 0xf4, 0x15,
6816 0x06, 0xd9, 0x98, 0x95, 0x51, 0x14, 0x34, 0x29, 0x6e, 0x92, 0x3c, 0x54,
6817 0xf1, 0xd2, 0x37, 0x8d, 0x52, 0x5b, 0x8b, 0x9a, 0xe4, 0x03, 0xf2, 0x88,
6818 0xe0, 0x6a, 0x22, 0xa5, 0x0c, 0x8c, 0x83, 0xdb, 0x21, 0xe3, 0x7c, 0xb4,
6819 0xd7, 0x46, 0xd9, 0x73, 0x8b, 0xd4, 0xb3, 0x8a, 0xb1, 0x10, 0x02, 0xc8,
6820 0x00, 0x1b, 0x74, 0x2e, 0x60, 0x7f, 0x30, 0x8f, 0x19, 0xb2, 0x92, 0x0b,
6821 0x16, 0x00, 0x4b, 0x06, 0xa1, 0x86, 0x23, 0xad, 0xa1, 0x53, 0x5b, 0xdb,
6822 0xcf, 0x61, 0x33, 0x44, 0xd6, 0x40, 0x1d, 0xca, 0xcd, 0x90, 0x94, 0x00,
6823 0x4d, 0x3d, 0x35, 0xe5, 0xfe, 0x78, 0x5e, 0xf6, 0xa4, 0xb6, 0x47, 0x3f,
6824 0xb4, 0x65, 0xcf, 0x2f, 0xce, 0xbe, 0xba, 0x38, 0x1e, 0x8f, 0xa3, 0xd7,
6825 0xc7, 0x97, 0x72, 0xe5, 0xd7, 0x02, 0xc0, 0xd7, 0x7c, 0x6d, 0x8f, 0x10,
6826 0x66, 0x30, 0x9a, 0x18, 0xc3, 0x9a, 0x98, 0x3f, 0x01, 0x84, 0xf5, 0x39,
6827 0x87, 0xd0, 0x60, 0xca, 0xe1, 0x3a, 0x3f, 0x57, 0xf8, 0xdc, 0x0d, 0x1c,
6828 0xfd, 0x00, 0x33, 0x21, 0x12, 0xe9, 0xfc, 0xe6, 0xde, 0x9b, 0x0a, 0x1b,
6829 0x59, 0xe0, 0x4d, 0x37, 0xa6, 0xb9, 0xbc, 0xf7, 0x9c, 0x4f, 0x6f, 0xfa,
6830 0x2f, 0x86, 0xf7, 0x87, 0xe8, 0x32, 0xaf, 0x98, 0xd2, 0x92, 0xff, 0x7a,
6831 0x61, 0xf2, 0xf1, 0x87, 0xe8, 0x7b, 0x6a, 0x73, 0x46, 0xb3, 0xce, 0xce,
6832 0x63, 0x3a, 0x70, 0xc7, 0x28, 0x99, 0xe7, 0x8b, 0x83, 0x80, 0x96, 0x3b,
6833 0xac, 0x6e, 0xba, 0x2a, 0x8a, 0xd1, 0xe3, 0x05, 0xc7, 0xc1, 0xa4, 0x21,
6834 0xcc, 0x2a, 0x0a, 0xa6, 0x73, 0x5f, 0xd6, 0x7a, 0x98, 0x51, 0x74, 0x9a,
6835 0x5c, 0x55, 0x30, 0x48, 0xf8, 0x73, 0xd4, 0xdc, 0x0e, 0x53, 0xcc, 0xee,
6836 0x72, 0x6d, 0x20, 0xfa, 0xeb, 0x93, 0xcf, 0x3e, 0xd9, 0xf9, 0x4c, 0xfe,
6837 0x6a, 0x7f, 0x3e, 0x7f, 0xba, 0xa3, 0x54, 0xcd, 0xf4, 0xaf, 0xa7, 0xfb,
6838 0x4f, 0x77, 0xf7, 0x99, 0x41, 0x6e, 0x67, 0x7f, 0x87, 0xfe, 0xff, 0x53,
6839 0xfd, 0x09, 0xd3, 0xe4, 0x3d, 0xdf, 0xfb, 0xec, 0x53, 0xc0, 0x60, 0x58,
6840 0x3e, 0xe6, 0xf4, 0x91, 0x61, 0x95, 0x0f, 0x41, 0x64, 0x03, 0x23, 0xe8,
6841 0x0f, 0x75, 0x87, 0x24, 0xc7, 0xd5, 0xa7, 0x1c, 0x47, 0xbd, 0x96, 0xeb,
6842 0xcd, 0x3c, 0x01, 0x83, 0xfd, 0x55, 0xc0, 0xef, 0x61, 0x60, 0x6d, 0x49,
6843 0xf9, 0xd5, 0x61, 0xe8, 0xdb, 0x15, 0xfe, 0x0d, 0x66, 0xa8, 0xda, 0x3b,
6844 0x82, 0xf9, 0x0e, 0x48, 0xa8, 0x7e, 0xe9, 0xa7, 0x2d, 0x09, 0x79, 0x03,
6845 0xd4, 0x52, 0xba, 0x54, 0xfa, 0xde, 0xd4, 0x4a, 0x8a, 0xba, 0xa7, 0xd8,
6846 0x22, 0x5c, 0x48, 0x7a, 0xc0, 0x95, 0xe0, 0x85, 0x7f, 0xe9, 0xf7, 0xc4,
6847 0x81, 0xc5, 0x6f, 0xa9, 0x34, 0x44, 0xed, 0xaf, 0xb9, 0xb4, 0x80, 0x8e,
6848 0x6f, 0xd5, 0x84, 0x67, 0xc3, 0x2f, 0xbf, 0x9f, 0x29, 0xd6, 0x6a, 0xfa,
6849 0x90, 0xcb, 0xa6, 0x92, 0xea, 0x8c, 0x1d, 0x43, 0x6e, 0x35, 0xa7, 0x62,
6850 0xf4, 0x0b, 0x9a, 0xf3, 0x23, 0x82, 0x04, 0xbb, 0x95, 0x1b, 0x06, 0x8b,
6851 0x93, 0x0a, 0xa2, 0xcd, 0x66, 0xc3, 0x51, 0x17, 0xda, 0x89, 0x27, 0xaf,
6852 0x3a, 0x91, 0x1d, 0xca, 0x1b, 0x6a, 0x7e, 0xba, 0x0c, 0x35, 0xda, 0x85,
6853 0x77, 0x39, 0x4e, 0x7b, 0x79, 0xde, 0x24, 0xbb, 0xf5, 0x29, 0x96, 0xc6,
6854 0xe0, 0x7b, 0xfa, 0x0d, 0xec, 0x27, 0xb7, 0xe9, 0x1e, 0x1d, 0x9a, 0x07,
6855 0xb7, 0xbb, 0xda, 0x94, 0x9b, 0x0e, 0x2c, 0xde, 0xb5, 0x25, 0xfd, 0x73,
6856 0xc0, 0x8f, 0xbb, 0xe6, 0xc2, 0x83, 0x08, 0x95, 0x49, 0xd1, 0x3f, 0x90,
6857 0xd8, 0xac, 0x98, 0x40, 0x7c, 0xcb, 0x54, 0xd8, 0xf0, 0xf7, 0x0e, 0xaf,
6858 0x85, 0x73, 0x4d, 0x4b, 0xdf, 0xc5, 0x22, 0xf9, 0xf3, 0x30, 0xdf, 0xd4,
6859 0x69, 0xbb, 0x49, 0x5c, 0xd4, 0x88, 0xba, 0x37, 0x94, 0x02, 0x7e, 0xc1,
6860 0xd9, 0x8c, 0x41, 0xdd, 0xe4, 0xdf, 0x6d, 0x6c, 0x8c, 0xcf, 0x8f, 0x8f,
6861 0x8f, 0xa2, 0xd3, 0x93, 0xd7, 0x27, 0x97, 0x81, 0x41, 0xee, 0x0e, 0x12,
6862 0x73, 0xb8, 0x5a, 0x51, 0x9b, 0xc6, 0x74, 0x78, 0x62, 0x58, 0x2d, 0x36,
6863 0xa0, 0x47, 0xf9, 0x22, 0xd1, 0x34, 0x86, 0x79, 0xf3, 0x3d, 0x5c, 0xbd,
6864 0xc1, 0x60, 0x33, 0x8a, 0xbe, 0x0c, 0x10, 0x91, 0x51, 0x49, 0xc6, 0xcd,
6865 0xd4, 0xd5, 0xec, 0x1c, 0xfe, 0xa0, 0x00, 0x8d, 0xba, 0xe5, 0xa4, 0xfc,
6866 0x96, 0x2e, 0xbb, 0x46, 0x41, 0xad, 0x8d, 0x5e, 0xf1, 0xdc, 0x26, 0x82,
6867 0x73, 0x0e, 0x3c, 0x74, 0xc0, 0xeb, 0xdd, 0x27, 0xc8, 0x94, 0x5f, 0xa4,
6868 0x92, 0xf5, 0x18, 0x82, 0x89, 0x5d, 0x09, 0xc4, 0xcb, 0x5c, 0xf4, 0x78,
6869 0xf8, 0xc5, 0xb0, 0x3e, 0xad, 0x21, 0x69, 0xed, 0x5b, 0x61, 0xe1, 0xd3,
6870 0x27, 0x3b, 0x2e, 0x5f, 0x60, 0x09, 0x9d, 0xa3, 0xa6, 0x3e, 0x7f, 0x6c,
6871 0x37, 0x22, 0x7b, 0x64, 0xc5, 0x56, 0x7d, 0xb1, 0xca, 0x5a, 0xc7, 0xdd,
6872 0x0f, 0xf2, 0x2e, 0x8d, 0xff, 0x93, 0x1d, 0x1c, 0x6f, 0x57, 0x71, 0x31,
6873 0x24, 0xcb, 0xeb, 0x61, 0x68, 0xce, 0x55, 0x91, 0x08, 0x05, 0x1a, 0x8b,
6874 0xeb, 0x27, 0xf1, 0xd5, 0x16, 0x1b, 0xd6, 0xa2, 0x4f, 0xfa, 0xc8, 0x11,
6875 0x92, 0x9c, 0xeb, 0x06, 0xe0, 0xa1, 0x73, 0x61, 0x76, 0x73, 0x76, 0x7a,
6876 0x5b, 0xc7, 0x73, 0x9f, 0xda, 0x2a, 0x7a, 0x1d, 0xc5, 0x29, 0x00, 0x50,
6877 0xab, 0xdc, 0x6a, 0xca, 0xc3, 0xd4, 0xb1, 0xb4, 0x4d, 0xeb, 0x45, 0xb4,
6878 0xfb, 0x19, 0x8f, 0xe3, 0xe3, 0xc6, 0xf3, 0x2a, 0x2f, 0xa6, 0x86, 0x62,
6879 0x93, 0xeb, 0x42, 0x90, 0xea, 0x29, 0x79, 0x09, 0x28, 0x08, 0x23, 0xb3,
6880 0x6b, 0x68, 0x58, 0xa0, 0xf5, 0xf8, 0x7e, 0xa2, 0xa1, 0x74, 0x78, 0xa6,
6881 0x10, 0xdb, 0x16, 0x0b, 0x89, 0xcf, 0x1a, 0x9d, 0x17, 0xf6, 0xb5, 0x0a,
6882 0x5a, 0xaf, 0x5f, 0xb8, 0x54, 0x50, 0x99, 0x06, 0xf6, 0x8e, 0x90, 0xac,
6883 0xdd, 0xa7, 0x33, 0x58, 0xd5, 0xe6, 0x04, 0x80, 0xfc, 0x89, 0xf0, 0x09,
6884 0x48, 0x1a, 0xa1, 0x4b, 0xc4, 0x3c, 0x5d, 0xcf, 0xd4, 0x80, 0x41, 0x31,
6885 0x79, 0x38, 0x17, 0x36, 0x61, 0x3f, 0x70, 0x41, 0xcc, 0x7a, 0x68, 0x80,
6886 0x55, 0x73, 0xcf, 0x7f, 0x85, 0x81, 0xfb, 0x55, 0x35, 0x37, 0xbf, 0xc2,
6887 0x6b, 0x27, 0xd8, 0xf5, 0x31, 0x33, 0xcb, 0x47, 0x30, 0xec, 0xdd, 0x1d,
6888 0xb2, 0x5f, 0xe7, 0x79, 0xb3, 0xbe, 0x72, 0xfb, 0x52, 0x8a, 0x61, 0x0d,
6889 0x31, 0x3b, 0xbb, 0x3b, 0xdf, 0xac, 0x9f, 0x75, 0xf0, 0x68, 0x3f, 0xfa,
6890 0xf2, 0xde, 0xd3, 0x47, 0x16, 0xed, 0xac, 0xc0, 0xbd, 0x3c, 0x31, 0xf0,
6891 0x23, 0x0c, 0x41, 0x1f, 0x80, 0x69, 0x2d, 0x1b, 0x09, 0x7e, 0x72, 0x1d,
6892 0x73, 0xf7, 0x1f, 0xeb, 0xbd, 0x25, 0x68, 0x34, 0xba, 0xf2, 0x5a, 0xe1,
6893 0xd8, 0xf2, 0xcb, 0x92, 0x3d, 0x64, 0x4b, 0xf0, 0x90, 0xf9, 0x6b, 0xac,
6894 0xcb, 0xf5, 0x16, 0xf2, 0x87, 0xe0, 0x6d, 0xd1, 0x9c, 0x83, 0xba, 0x92,
6895 0x30, 0xe9, 0x29, 0x92, 0xeb, 0x95, 0xb0, 0x2b, 0xe4, 0x72, 0xed, 0x67,
6896 0xca, 0x5c, 0xdd, 0xaf, 0xa4, 0x9b, 0x19, 0x39, 0x24, 0xf2, 0x04, 0xc5,
6897 0x3b, 0x8d, 0xcd, 0x64, 0x15, 0x93, 0xa3, 0x79, 0x30, 0xb0, 0x7f, 0x76,
6898 0xca, 0xc1, 0x30, 0x68, 0x83, 0x8d, 0xa8, 0x59, 0xb7, 0x55, 0x38, 0xe1,
6899 0x46, 0x48, 0xba, 0x15, 0x41, 0x71, 0xca, 0x9e, 0xf3, 0xba, 0x38, 0x28,
6900 0x56, 0x49, 0x84, 0x00, 0x0d, 0x0c, 0x54, 0x6a, 0xd1, 0x92, 0xfb, 0x14,
6901 0x6b, 0xfc, 0xd2, 0x72, 0xd3, 0x85, 0xc9, 0x9b, 0xfd, 0xfe, 0x87, 0x67,
6902 0x6f, 0x5e, 0x9d, 0x7c, 0xe5, 0x18, 0x6f, 0x44, 0x89, 0x5b, 0x3d, 0x49,
6903 0xb4, 0xe9, 0x8a, 0xe9, 0xba, 0x80, 0xb7, 0x56, 0x7b, 0x53, 0xd8, 0x2d,
6904 0xa9, 0xa7, 0x77, 0xe1, 0x0f, 0xa0, 0x40, 0xb2, 0x27, 0xec, 0x2b, 0x17,
6905 0x5a, 0x89, 0x72, 0xcb, 0x7b, 0x1e, 0x1a, 0x9c, 0x5c, 0x92, 0x9e, 0x11,
6906 0x17, 0xd5, 0x6a, 0xe9, 0xd0, 0x83, 0x41, 0xb5, 0x38, 0xe5, 0xf8, 0xb5,
6907 0xa4, 0xf0, 0xd5, 0x52, 0x54, 0x93, 0xe6, 0x76, 0xd6, 0x1c, 0xbb, 0x72,
6908 0x06, 0xb0, 0x67, 0x41, 0x79, 0x38, 0xf4, 0x00, 0x68, 0x41, 0x72, 0xe6,
6909 0x4c, 0x0a, 0x18, 0x02, 0xe5, 0x2d, 0x94, 0xc3, 0x35, 0x77, 0x65, 0xa0,
6910 0x56, 0x71, 0x77, 0x21, 0x37, 0x33, 0x1e, 0x37, 0x0a, 0xa5, 0x3a, 0x1c,
6911 0x8e, 0x83, 0xfd, 0xfa, 0x50, 0x91, 0x2b, 0xb0, 0xe3, 0xa1, 0x49, 0x96,
6912 0x51, 0x1a, 0x23, 0x62, 0x89, 0x90, 0x27, 0x7e, 0xf2, 0x92, 0x23, 0x34,
6913 0xfb, 0x4c, 0x75, 0xbd, 0x10, 0xde, 0xac, 0x30, 0x13, 0x54, 0xb5, 0xa4,
6914 0xe7, 0xa3, 0x3e, 0xb9, 0x0a, 0x52, 0xca, 0x04, 0x22, 0x68, 0x42, 0x27,
6915 0xee, 0x62, 0xf6, 0xb5, 0xf4, 0x7f, 0xdf, 0x1f, 0x96, 0x0f, 0x8b, 0x49,
6916 0x3e, 0xb7, 0x8c, 0x0b, 0xc7, 0xb6, 0x60, 0x0f, 0x59, 0xfd, 0xa6, 0x58,
6917 0x6a, 0x88, 0xe3, 0xd3, 0x81, 0x87, 0xd2, 0xc3, 0xa4, 0x7c, 0xff, 0xa5,
6918 0x02, 0x0a, 0x22, 0x45, 0x36, 0x0a, 0x47, 0xfd, 0x91, 0x64, 0xd3, 0x79,
6919 0xae, 0x52, 0xcd, 0xb9, 0xde, 0x98, 0xa9, 0xfa, 0xd0, 0x39, 0xf6, 0x97,
6920 0xaf, 0xd8, 0xd9, 0x81, 0xea, 0x06, 0x64, 0xee, 0xb0, 0x73, 0xf8, 0x3b,
6921 0x1b, 0x20, 0xbf, 0x2d, 0xbf, 0x50, 0x38, 0xbe, 0x71, 0xa6, 0x50, 0x43,
6922 0x52, 0x0e, 0x81, 0xba, 0xfa, 0x57, 0xf1, 0x2d, 0x4a, 0x04, 0xf0, 0x07,
6923 0xfb, 0xb8, 0x3d, 0xda, 0x98, 0x7a, 0x92, 0xa7, 0xb8, 0xb8, 0x56, 0x32,
6924 0x32, 0x0d, 0xaa, 0xe1, 0x92, 0xe8, 0x8a, 0x54, 0x38, 0x1f, 0x25, 0x1b,
6925 0x25, 0x0e, 0x2e, 0x03, 0xf3, 0x69, 0x25, 0x49, 0x7d, 0x9a, 0xfe, 0x24,
6926 0xde, 0x49, 0x27, 0x88, 0x81, 0xc6, 0xf9, 0xbd, 0x83, 0xa4, 0xc4, 0xfe,
6927 0x2c, 0x33, 0xf2, 0x7c, 0xef, 0xaa, 0xd5, 0xc3, 0x2c, 0x78, 0x8d, 0xfd,
6928 0x79, 0xb8, 0x09, 0x27, 0xea, 0x43, 0x91, 0x4f, 0xc1, 0x96, 0x60, 0x26,
6929 0x3e, 0x64, 0xfd, 0x24, 0xa5, 0x6f, 0x42, 0x7e, 0xff, 0x52, 0xb9, 0x27,
6930 0x68, 0x3f, 0x2b, 0x9b, 0x88, 0xb2, 0xa4, 0x7d, 0xb6, 0xa3, 0x9e, 0xb8,
6931 0x4a, 0x71, 0xaa, 0x65, 0x74, 0x70, 0x71, 0x4c, 0x96, 0xed, 0x75, 0x06,
6932 0xb6, 0x08, 0xee, 0xa1, 0x56, 0x97, 0xca, 0xb4, 0x4a, 0x4f, 0x66, 0xfb,
6933 0x83, 0x3f, 0x78, 0x1f, 0xbc, 0xc9, 0xc2, 0xa4, 0xf8, 0x00, 0x49, 0xa5,
6934 0xf6, 0x22, 0x37, 0x35, 0xc6, 0x52, 0x68, 0x1d, 0x26, 0x2c, 0x10, 0x91,
6935 0xe2, 0x68, 0x09, 0x7d, 0x2a, 0x37, 0xb6, 0xd2, 0xf3, 0x96, 0x5a, 0x0f,
6936 0x69, 0x4a, 0x6d, 0xae, 0xb1, 0xab, 0x7d, 0x0e, 0xc2, 0xdf, 0x8d, 0x80,
6937 0x50, 0xbf, 0x55, 0x8b, 0x80, 0x7a, 0x71, 0x1a, 0x74, 0x7b, 0x8f, 0xfe,
6938 0x8e, 0x73, 0x86, 0x6d, 0x91, 0xa6, 0x5d, 0x90, 0x38, 0x68, 0xbd, 0x38,
6939 0xb2, 0x67, 0x81, 0xf1, 0x2b, 0xf9, 0x78, 0x28, 0xfb, 0x0c, 0x1f, 0x35,
6940 0x1b, 0x3f, 0x71, 0xa9, 0xb9, 0x4f, 0x7a, 0x1d, 0x98, 0xe9, 0x5e, 0x65,
6941 0xa9, 0x60, 0x9c, 0xf0, 0x84, 0x19, 0x78, 0xa4, 0xec, 0x6b, 0x4d, 0x3f,
6942 0x75, 0xba, 0x79, 0x7f, 0xef, 0x46, 0xeb, 0xfb, 0xe0, 0x7e, 0xc9, 0x3f,
6943 0x7a, 0xe9, 0x08, 0xc9, 0x50, 0xbe, 0x9a, 0x3f, 0x04, 0x95, 0x8a, 0xf0,
6944 0x29, 0xff, 0x05, 0x3f, 0x06, 0xe0, 0xcd, 0x68, 0x1d, 0x6b, 0xa4, 0x42,
6945 0x5a, 0x96, 0x23, 0xec, 0x88, 0xc4, 0xf8, 0xa0, 0xa1, 0x27, 0xa1, 0x69,
6946 0x3c, 0xfc, 0x66, 0xdb, 0x0a, 0x6d, 0xb2, 0x2b, 0x87, 0x33, 0x78, 0x6d,
6947 0xc3, 0x97, 0x49, 0xad, 0x32, 0xa7, 0x4b, 0x11, 0xea, 0x0d, 0x7b, 0x34,
6948 0x17, 0xfd, 0xf9, 0xdc, 0x2b, 0x7c, 0x7b, 0x8c, 0x57, 0x15, 0xd9, 0x74,
6949 0xde, 0x60, 0x52, 0xdd, 0xc5, 0x94, 0xff, 0x0f, 0xb5, 0xdc, 0x06, 0xae,
6950 0x99, 0xc4, 0xa9, 0x3f, 0x8e, 0x14, 0x0a, 0xf9, 0x21, 0x80, 0x0b, 0xdc,
6951 0xa5, 0xa5, 0xc5, 0x21, 0x49, 0xb6, 0xa7, 0x8a, 0x8d, 0x10, 0x6e, 0x80,
6952 0xa4, 0x9a, 0x06, 0x53, 0x99, 0x4c, 0x6f, 0x72, 0x81, 0xd3, 0xd2, 0xa4,
6953 0x05, 0x69, 0x97, 0xbd, 0xe8, 0x3f, 0x55, 0x06, 0xbe, 0xf1, 0xd9, 0x7a,
6954 0x2c, 0x08, 0x23, 0xa1, 0xdb, 0x1b, 0x79, 0x81, 0x38, 0xfe, 0xfe, 0xf2,
6955 0xe2, 0x20, 0xfa, 0xfa, 0xf8, 0xe0, 0xe8, 0xf8, 0x62, 0xdc, 0x38, 0xf4,
6956 0x15, 0x05, 0x22, 0x16, 0x1a, 0xfb, 0x83, 0x61, 0x1a, 0x1b, 0x07, 0x80,
6957 0x02, 0xf6, 0x4d, 0xeb, 0x91, 0xf0, 0xf0, 0x46, 0xa2, 0xfd, 0xc1, 0x17,
6958 0x22, 0x09, 0x1c, 0x80, 0x5a, 0xb5, 0x84, 0xb2, 0x71, 0x6d, 0x4c, 0x49,
6959 0x43, 0x31, 0x9c, 0xc1, 0xbc, 0xe7, 0x61, 0xaa, 0x8c, 0xe7, 0x79, 0xf3,
6960 0x87, 0xc9, 0x2c, 0xb7, 0x2c, 0xc0, 0xfa, 0xca, 0x7d, 0xed, 0x13, 0xae,
6961 0x03, 0xb5, 0xa5, 0x87, 0x8c, 0x3a, 0x10, 0x7b, 0xdf, 0x0f, 0xe9, 0xbb,
6962 0x43, 0x9a, 0xfc, 0x21, 0x53, 0xf1, 0x3d, 0x24, 0x65, 0xaf, 0xe1, 0x0d,
6963 0xac, 0x7f, 0x7e, 0x43, 0xaa, 0xd5, 0xb7, 0x76, 0xd2, 0xd7, 0x9d, 0x2d,
6964 0xf1, 0xee, 0x9a, 0x73, 0xf5, 0x96, 0xe6, 0x0d, 0x02, 0x87, 0x6a, 0x60,
6965 0x24, 0xeb, 0x0e, 0x6a, 0xe5, 0xb5, 0x28, 0x4e, 0xc9, 0x5f, 0x33, 0x15,
6966 0x16, 0x86, 0x8e, 0xe8, 0x10, 0x60, 0xeb, 0xd0, 0xde, 0x93, 0x43, 0x1d,
6967 0x7e, 0x11, 0xe3, 0x89, 0xa5, 0x6e, 0xe9, 0x43, 0xe1, 0xf9, 0x80, 0x58,
6968 0x88, 0x02, 0xf4, 0xcb, 0x5a, 0xa8, 0x54, 0xfd, 0xa2, 0x5a, 0x40, 0x4c,
6969 0x9b, 0xe3, 0x3e, 0x38, 0x99, 0x37, 0x5c, 0x3f, 0x7f, 0xd2, 0x6a, 0x17,
6970 0xe8, 0xbb, 0x02, 0x06, 0xe3, 0x4b, 0x3d, 0x5c, 0x9d, 0x52, 0x08, 0x91,
6971 0xdf, 0x31, 0x7b, 0x35, 0x48, 0x02, 0x0a, 0x85, 0x19, 0x85, 0x96, 0x00,
6972 0x1c, 0x77, 0xcf, 0x25, 0xd1, 0xd7, 0x79, 0x89, 0xb3, 0xa0, 0xfd, 0x38,
6973 0x1f, 0xf2, 0x5d, 0xd3, 0x8f, 0x37, 0x34, 0xd4, 0xe5, 0xb8, 0x30, 0x41,
6974 0x1e, 0x0b, 0xf5, 0x75, 0x7e, 0x70, 0xf9, 0x35, 0x02, 0xad, 0x10, 0xe1,
6975 0x23, 0x90, 0x97, 0x58, 0x78, 0xad, 0x9d, 0x8b, 0xe5, 0x2e, 0x70, 0x62,
6976 0xff, 0x1a, 0xa9, 0x9f, 0xd9, 0x93, 0x08, 0xe4, 0xc1, 0x45, 0x09, 0x8e,
6977 0xb0, 0x54, 0x1d, 0x8f, 0xf5, 0xf2, 0x5f, 0x40, 0xbd, 0xbb, 0x44, 0x3b,
6978 0x07, 0xbb, 0xec, 0x4b, 0x26, 0x7a, 0x5f, 0xc6, 0x04, 0xa1, 0x67, 0x63,
6979 0x8e, 0x6f, 0x3c, 0x21, 0xc5, 0x2a, 0x7e, 0x71, 0xa5, 0x29, 0xb6, 0x03,
6980 0x5a, 0xd3, 0x6e, 0xce, 0xbc, 0x60, 0x4b, 0x7f, 0xb1, 0x78, 0x18, 0xb5,
6981 0xa9, 0x70, 0xa2, 0x2f, 0x57, 0x55, 0x5d, 0xad, 0x34, 0x88, 0x5e, 0x9d,
6982 0x65, 0x59, 0xe4, 0x79, 0x55, 0xa7, 0x4a, 0xc5, 0xec, 0xc8, 0x8e, 0x16,
6983 0x72, 0x44, 0xe9, 0x0b, 0x37, 0x95, 0xa9, 0xdd, 0x1d, 0x1a, 0x86, 0xf1,
6984 0xa4, 0xcc, 0xe7, 0xab, 0x2a, 0x00, 0x5e, 0xff, 0xb2, 0x3e, 0x07, 0x9d,
6985 0xde, 0x3c, 0x19, 0x25, 0x26, 0x50, 0x8c, 0x1c, 0x2e, 0x62, 0xba, 0xe9,
6986 0x93, 0x79, 0x89, 0xb8, 0x63, 0x91, 0x67, 0xf5, 0x0a, 0x55, 0xc0, 0x78,
6987 0x6f, 0x6d, 0x6c, 0x8c, 0x6d, 0xb1, 0x99, 0x95, 0xb3, 0xbd, 0xe8, 0xe0,
6988 0x89, 0x00, 0xf5, 0xa7, 0xc4, 0x0d, 0xa6, 0xf4, 0x17, 0x23, 0x4a, 0x4b,
6989 0x64, 0x4d, 0xa1, 0xc2, 0x65, 0x8d, 0xd3, 0xb2, 0x3e, 0x28, 0xfc, 0xca,
6990 0x45, 0x2e, 0x2c, 0xb1, 0xec, 0x32, 0x37, 0xb6, 0x70, 0x8d, 0xdc, 0x79,
6991 0x81, 0xa8, 0xa5, 0xa6, 0x77, 0x52, 0xe9, 0xf2, 0x21, 0x60, 0xe5, 0x4c,
6992 0x1d, 0x2a, 0x97, 0x3b, 0xb9, 0xfd, 0x5f, 0xdb, 0xd1, 0x40, 0xf8, 0xaf,
6993 0x3a, 0xf8, 0x73, 0x56, 0xd1, 0xff, 0x07, 0x08, 0x96, 0xb2, 0x98, 0x72,
6994 0x9b, 0x0d, 0xea, 0xcf, 0x11, 0x5d, 0xa1, 0x6e, 0x8a, 0xa9, 0x97, 0x7e,
6995 0xb2, 0x0e, 0x92, 0x7b, 0xbe, 0xbf, 0xd8, 0x1d, 0x41, 0x99, 0x3b, 0xa4,
6996 0xa2, 0xa8, 0xe3, 0x42, 0x02, 0xdf, 0xc5, 0x95, 0xf3, 0xea, 0x71, 0x71,
6997 0x3f, 0x29, 0x75, 0x27, 0x66, 0x3d, 0x0a, 0xbd, 0x58, 0x04, 0x55, 0xd2,
6998 0xdb, 0xdd, 0xbd, 0xbd, 0x8c, 0xca, 0x5c, 0xfe, 0x6b, 0xd9, 0x46, 0x8a,
6999 0xf1, 0x52, 0xf1, 0xd7, 0x6b, 0x94, 0x56, 0xd5, 0x52, 0x5a, 0x2b, 0xc3,
7000 0x9d, 0x0a, 0xac, 0xce, 0x02, 0x93, 0xd6, 0x47, 0x33, 0x02, 0x38, 0x6e,
7001 0x09, 0x46, 0x44, 0xe5, 0x00, 0x61, 0x4c, 0x19, 0x73, 0xb4, 0x4a, 0xb2,
7002 0x36, 0x57, 0x86, 0xb3, 0x8b, 0x8c, 0x9d, 0xa8, 0x96, 0xc0, 0xe1, 0x16,
7003 0xca, 0xf7, 0x5e, 0x8f, 0x7e, 0x24, 0xc4, 0x23, 0x46, 0x77, 0x1f, 0xa7,
7004 0x55, 0x68, 0x11, 0xd8, 0x88, 0xb4, 0xba, 0xa4, 0xc0, 0x38, 0x42, 0x68,
7005 0x8a, 0xc7, 0x6d, 0x5e, 0x73, 0x7e, 0x87, 0x7a, 0xa4, 0x94, 0x4b, 0x04,
7006 0xee, 0xaf, 0x9b, 0x54, 0xd1, 0xa5, 0x32, 0xe9, 0xe6, 0x0e, 0x64, 0x7f,
7007 0x06, 0xdc, 0x7b, 0x0c, 0x2d, 0xf0, 0xd1, 0x55, 0x07, 0x80, 0x18, 0xb5,
7008 0x77, 0xcb, 0xc8, 0xd1, 0x71, 0xea, 0x09, 0x72, 0x12, 0x66, 0x92, 0x63,
7009 0x56, 0x1c, 0xdc, 0xf9, 0xa3, 0x3e, 0x1d, 0x7e, 0x8f, 0x51, 0xac, 0x59,
7010 0xe4, 0xe7, 0xa3, 0xd4, 0x62, 0xf1, 0xbb, 0xb8, 0x92, 0x0a, 0x70, 0x03,
7011 0xec, 0x96, 0x56, 0x72, 0xb0, 0x56, 0x20, 0x2a, 0x98, 0xf7, 0xad, 0x81,
7012 0x4e, 0x90, 0x4b, 0xb2, 0xd7, 0x38, 0xb3, 0x58, 0x84, 0x41, 0xc4, 0xa9,
7013 0x56, 0x99, 0x4a, 0x12, 0xb7, 0xcb, 0xaa, 0x58, 0x4d, 0x6b, 0x4c, 0x76,
7014 0x10, 0x86, 0x5a, 0x7c, 0xde, 0x4d, 0x6f, 0x1e, 0xde, 0xea, 0x37, 0xe3,
7015 0x5a, 0x1a, 0x8b, 0x3e, 0x19, 0x7e, 0x62, 0x2b, 0x3a, 0x61, 0xea, 0x70,
7016 0xb9, 0xfe, 0xcb, 0xed, 0x84, 0xfa, 0xef, 0x04, 0x6c, 0x78, 0xee, 0x92,
7017 0xe8, 0x1b, 0x95, 0xa7, 0x39, 0x25, 0x21, 0x38, 0x75, 0xd5, 0x04, 0x83,
7018 0xc9, 0x51, 0x44, 0x4a, 0x4d, 0x08, 0x83, 0x86, 0x9d, 0x95, 0x1b, 0x8e,
7019 0x3e, 0x90, 0x3e, 0x37, 0x54, 0xb0, 0xaa, 0x84, 0x80, 0xb7, 0x69, 0x22,
7020 0xad, 0xfa, 0x88, 0xab, 0xbc, 0x53, 0x7a, 0x0a, 0xc2, 0x06, 0x56, 0x15,
7021 0x3c, 0x49, 0xce, 0x32, 0x54, 0xc2, 0x36, 0x9d, 0xbf, 0x91, 0xab, 0x06,
7022 0xaf, 0x5f, 0x68, 0x1a, 0x12, 0xed, 0x53, 0xf1, 0x5c, 0x58, 0x48, 0x5a,
7023 0x42, 0x74, 0x64, 0xde, 0x54, 0x28, 0x1b, 0x4c, 0x18, 0xdf, 0x69, 0x6c,
7024 0x91, 0x4e, 0xce, 0xdd, 0x27, 0xa8, 0x0b, 0x3c, 0xe2, 0xfe, 0x3c, 0xd9,
7025 0xe9, 0x07, 0xa5, 0x83, 0x36, 0x05, 0xf5, 0x9f, 0xe3, 0xde, 0xc3, 0x9e,
7026 0x43, 0x0c, 0x50, 0xfc, 0x16, 0x8c, 0x70, 0xdb, 0xea, 0xe8, 0x0a, 0x35,
7027 0xf1, 0x4b, 0x3b, 0xb3, 0xfb, 0x7c, 0x6f, 0xb4, 0xfb, 0xc9, 0x67, 0xa3,
7028 0x9d, 0xd1, 0xee, 0x0e, 0x6b, 0x16, 0xee, 0x4a, 0xd0, 0x39, 0x99, 0x97,
7029 0x8e, 0x4f, 0xd5, 0xde, 0x6b, 0x7f, 0xf3, 0xcd, 0xf1, 0xe5, 0x77, 0x67,
7030 0x17, 0xdf, 0x44, 0x27, 0x6f, 0x2e, 0x8f, 0x2f, 0x5e, 0x1d, 0x1c, 0x7e,
7031 0x2c, 0x27, 0x79, 0xe8, 0xb0, 0x0e, 0x4a, 0xe7, 0x26, 0x7e, 0x62, 0xda,
7032 0x5e, 0x41, 0x3f, 0x67, 0x49, 0x75, 0xb3, 0xb3, 0xbf, 0xfb, 0x28, 0x91,
7033 0x71, 0x87, 0x63, 0xd0, 0xbf, 0x6f, 0x83, 0xda, 0xe5, 0x41, 0xad, 0x6f,
7034 0xc5, 0xd1, 0x23, 0x8e, 0x05, 0x60, 0xe5, 0xc0, 0xb9, 0x50, 0xf0, 0xa8,
7035 0xcc, 0x92, 0x4e, 0x8a, 0xd8, 0x5c, 0x52, 0x13, 0x61, 0x53, 0x95, 0x8c,
7036 0x5a, 0xe5, 0x77, 0x51, 0x10, 0xba, 0xaa, 0xdb, 0x0d, 0x29, 0x53, 0x5b,
7037 0xa9, 0x23, 0x45, 0xc8, 0x51, 0x67, 0x30, 0xee, 0x4c, 0x21, 0x6b, 0xc2,
7038 0x1a, 0x4b, 0x8b, 0x16, 0x4f, 0x14, 0xd2, 0xbf, 0x99, 0x4b, 0x14, 0x71,
7039 0xc4, 0x03, 0xb5, 0x74, 0x1b, 0xf4, 0xb5, 0x5e, 0x69, 0x38, 0xc4, 0xd0,
7040 0x36, 0x98, 0x49, 0x4b, 0xc3, 0x36, 0x63, 0x60, 0x35, 0xa7, 0xe8, 0xa1,
7041 0x76, 0x04, 0xbb, 0x21, 0xe8, 0x8d, 0x7c, 0x0a, 0xa6, 0x94, 0xb1, 0x61,
7042 0xd7, 0x79, 0x75, 0xe5, 0x74, 0x42, 0xf2, 0x84, 0x58, 0x7e, 0x46, 0xdc,
7043 0xcf, 0xad, 0x97, 0x35, 0xa6, 0xc0, 0x48, 0xaa, 0xe5, 0x84, 0xaf, 0x8b,
7044 0x91, 0x0d, 0x88, 0xe6, 0xac, 0x88, 0xef, 0x51, 0xf2, 0x21, 0xf5, 0xcc,
7045 0x9c, 0x1b, 0xf5, 0x8a, 0x3f, 0x6c, 0x32, 0xf9, 0x39, 0x8f, 0xce, 0x8f,
7046 0x5f, 0x0f, 0xad, 0x56, 0x29, 0xfd, 0x5d, 0xdc, 0x50, 0xc6, 0xf1, 0x28,
7047 0xc9, 0x3d, 0xcb, 0x24, 0x33, 0x40, 0x0d, 0x74, 0xa2, 0x22, 0x80, 0xc2,
7048 0x01, 0xf0, 0xa6, 0x71, 0x2c, 0x90, 0x8a, 0x1b, 0x35, 0xe0, 0xa5, 0x63,
7049 0x12, 0xad, 0x51, 0x63, 0xf2, 0x7a, 0x2a, 0x6a, 0x39, 0xda, 0x74, 0x48,
7050 0x5d, 0xfe, 0x1e, 0xe0, 0xa8, 0x40, 0x0b, 0x38, 0x80, 0x40, 0x6e, 0xc9,
7051 0xd6, 0xe7, 0xdf, 0x1c, 0x8e, 0x7f, 0xbf, 0xbb, 0xa7, 0xdd, 0xd9, 0x1a,
7052 0x79, 0x9e, 0xdb, 0x56, 0x1e, 0x3e, 0xd4, 0x75, 0xd8, 0x47, 0xcb, 0xaa,
7053 0xc6, 0x06, 0xc7, 0x62, 0x6c, 0xba, 0xcc, 0xa0, 0xad, 0x5a, 0x6a, 0x10,
7054 0xe0, 0x5f, 0x0f, 0xce, 0xb8, 0x74, 0xb5, 0x44, 0x39, 0x18, 0x82, 0x92,
7055 0x33, 0x5a, 0xf4, 0xa5, 0x72, 0x78, 0xbf, 0x38, 0xb3, 0x1f, 0x49, 0xcb,
7056 0xda, 0x1a, 0xd2, 0xc6, 0x3d, 0xa6, 0xa5, 0xb9, 0xe6, 0x3c, 0xdf, 0xfe,
7057 0xb7, 0x4c, 0xa7, 0xaa, 0x87, 0xba, 0xf1, 0xf2, 0xf8, 0xcf, 0x60, 0x03,
7058 0x28, 0x84, 0x7d, 0x66, 0x65, 0xa5, 0x32, 0x5f, 0xe9, 0x81, 0x9f, 0x3e,
7059 0xa3, 0x85, 0xa2, 0x9d, 0x25, 0x54, 0x0d, 0xac, 0x14, 0xf2, 0x39, 0x5f,
7060 0x5a, 0xdc, 0x23, 0x47, 0x05, 0x57, 0xd4, 0x58, 0x0a, 0x98, 0xf4, 0xcd,
7061 0x28, 0xfa, 0x3a, 0xc9, 0x38, 0x57, 0x9e, 0x61, 0x77, 0x96, 0x7c, 0x05,
7062 0x70, 0x20, 0xd7, 0xb5, 0x43, 0x9d, 0xaf, 0xd3, 0x24, 0x56, 0x5e, 0x4c,
7063 0xd2, 0x75, 0xa5, 0xdc, 0x6d, 0xad, 0xc6, 0x4d, 0xcc, 0x10, 0x3d, 0x25,
7064 0xf1, 0x74, 0xfc, 0x16, 0xfc, 0x80, 0x34, 0xb0, 0x59, 0x67, 0xb7, 0x04,
7065 0x67, 0x3d, 0x9a, 0xd3, 0x6d, 0x8e, 0x28, 0x93, 0xfa, 0x93, 0x6f, 0x40,
7066 0xc2, 0xcc, 0x7e, 0x42, 0xb9, 0x6b, 0x79, 0xa5, 0x32, 0x2b, 0x6e, 0xd8,
7067 0xe9, 0x51, 0xd2, 0x71, 0x13, 0x67, 0xd3, 0x87, 0xd1, 0x8c, 0xac, 0x58,
7068 0x76, 0x9b, 0x8d, 0x56, 0xb7, 0xdb, 0xc1, 0x36, 0x65, 0x95, 0x7f, 0x23,
7069 0xb4, 0x00, 0x75, 0x97, 0xb7, 0xd5, 0x50, 0x6d, 0xb3, 0x76, 0xc5, 0xb5,
7070 0x3d, 0xc1, 0x22, 0x61, 0x09, 0xfe, 0xb2, 0x3d, 0xd7, 0xf2, 0x5b, 0x1d,
7071 0x47, 0x8e, 0xff, 0x97, 0x5b, 0x18, 0x2d, 0x93, 0xc5, 0xbe, 0x4b, 0x41,
7072 0x36, 0xfd, 0xa0, 0x65, 0x03, 0xdc, 0x95, 0x22, 0x70, 0xcf, 0x66, 0xc9,
7073 0xf5, 0x5c, 0x0d, 0x8a, 0xf0, 0xd2, 0xe2, 0xf9, 0x9c, 0xdb, 0x69, 0x20,
7074 0x72, 0xd5, 0xb9, 0x17, 0x5a, 0x55, 0xd8, 0xea, 0x24, 0x87, 0x95, 0xe2,
7075 0x6a, 0xe5, 0x61, 0x14, 0x31, 0xf7, 0x8d, 0x28, 0x59, 0x08, 0xa8, 0x88,
7076 0xd9, 0x0c, 0x56, 0xe7, 0x8e, 0xc1, 0x91, 0x34, 0xf0, 0xc4, 0x64, 0xac,
7077 0x90, 0x10, 0x90, 0x7f, 0x2b, 0x34, 0x1a, 0x61, 0x4f, 0xab, 0x53, 0x2a,
7078 0x7b, 0x85, 0x7e, 0x7d, 0xf7, 0x84, 0x7d, 0xdd, 0x97, 0xa7, 0xe3, 0x81,
7079 0xc8, 0x43, 0x96, 0xdc, 0x07, 0x92, 0x25, 0x7c, 0xf5, 0x2a, 0x7e, 0xec,
7080 0xf9, 0x11, 0xf8, 0x9a, 0x95, 0x8c, 0x2f, 0xa4, 0x37, 0xa2, 0x19, 0x7c,
7081 0x90, 0xcc, 0x67, 0x41, 0xd8, 0x44, 0x28, 0x9e, 0x98, 0xbb, 0x63, 0x25,
7082 0x95, 0xc4, 0x20, 0x72, 0x04, 0x2f, 0x4c, 0x9d, 0x47, 0x06, 0xd3, 0x93,
7083 0x41, 0x34, 0xdc, 0x03, 0x6d, 0xce, 0x6e, 0x7d, 0x22, 0xe3, 0x4a, 0xf8,
7084 0xfa, 0xb8, 0x0d, 0x6a, 0xc9, 0x5a, 0x51, 0x95, 0xb0, 0xa9, 0x62, 0x7d,
7085 0x47, 0xef, 0xf3, 0x7f, 0xf6, 0x74, 0x50, 0x77, 0xbb, 0x80, 0x6e, 0x0b,
7086 0x81, 0xe4, 0xfc, 0xa1, 0x6d, 0x36, 0xec, 0x3d, 0xba, 0xb2, 0x48, 0x92,
7087 0xb8, 0x4f, 0x1d, 0xd7, 0xb2, 0xd0, 0xed, 0xc3, 0x11, 0xaa, 0xdc, 0x9c,
7088 0xd6, 0x01, 0x9a, 0x46, 0x75, 0x71, 0x67, 0xd1, 0xdd, 0x9e, 0x45, 0x9a,
7089 0xf9, 0x37, 0x36, 0x79, 0xe2, 0xaa, 0xf7, 0x8a, 0xa4, 0x95, 0xbb, 0xc8,
7090 0x70, 0xb7, 0x40, 0x72, 0x39, 0xf5, 0x89, 0xe4, 0x96, 0x34, 0x49, 0x4d,
7091 0xd3, 0xe4, 0x99, 0x3a, 0x15, 0x24, 0xd7, 0x3d, 0xce, 0x84, 0x0a, 0x9a,
7092 0x6c, 0x61, 0x0f, 0x72, 0x02, 0x04, 0x1c, 0x7b, 0x9a, 0x2c, 0xd8, 0x72,
7093 0xb5, 0xd0, 0x12, 0x75, 0x50, 0xc4, 0x03, 0x1c, 0xb7, 0x55, 0x44, 0x9a,
7094 0x38, 0x15, 0xc8, 0xdf, 0xfc, 0xc1, 0x71, 0xf9, 0xaa, 0xb3, 0xd4, 0x4f,
7095 0x14, 0x7b, 0xc0, 0x84, 0x4e, 0x0f, 0xf2, 0x72, 0x93, 0x8a, 0x0f, 0x03,
7096 0x08, 0x55, 0x4c, 0x18, 0xa9, 0x8a, 0x7e, 0x44, 0xbb, 0x6f, 0xc5, 0x8d,
7097 0x56, 0x39, 0x20, 0xb0, 0xce, 0x60, 0x90, 0x36, 0xc6, 0x42, 0xce, 0xd9,
7098 0x0f, 0x75, 0xe4, 0xf0, 0x73, 0x9e, 0x83, 0xb2, 0xef, 0x27, 0x4d, 0xd9,
7099 0xc3, 0xeb, 0x33, 0xa0, 0xe1, 0x11, 0x2b, 0x85, 0x74, 0x5e, 0x58, 0xc1,
7100 0xe7, 0x7e, 0xf2, 0x9e, 0x0d, 0xa4, 0xbe, 0x7e, 0x55, 0x7e, 0x2d, 0x2c,
7101 0x00, 0x98, 0xdc, 0xf3, 0x93, 0x37, 0x52, 0xc3, 0xd8, 0x6d, 0xa4, 0x84,
7102 0x29, 0x13, 0x37, 0xa4, 0xfc, 0x36, 0xfa, 0x13, 0x2b, 0xcf, 0x44, 0x24,
7103 0xfe, 0x26, 0x16, 0x36, 0xde, 0x20, 0xa9, 0x7e, 0xeb, 0x62, 0x25, 0x5f,
7104 0xef, 0xf3, 0x21, 0x59, 0x96, 0xf3, 0x7e, 0xa3, 0x2e, 0xa7, 0x5b, 0xcc,
7105 0xc6, 0x69, 0xe4, 0x1c, 0x59, 0xd3, 0x59, 0x58, 0x69, 0x5c, 0x5b, 0xa9,
7106 0x29, 0xc9, 0x41, 0x23, 0x4f, 0x32, 0xf4, 0xa0, 0xff, 0x3e, 0x1a, 0x6d,
7107 0xd3, 0x07, 0xcb, 0x6d, 0x7b, 0x71, 0x79, 0x3b, 0x2d, 0xe9, 0x78, 0xe4,
7108 0xa4, 0xe0, 0x1f, 0x1d, 0xc5, 0x3b, 0xf7, 0x78, 0xf6, 0x53, 0x34, 0x9c,
7109 0xce, 0x31, 0xbe, 0x08, 0x45, 0x80, 0x7f, 0x24, 0x91, 0xe1, 0x27, 0x7e,
7110 0xda, 0xe0, 0x2c, 0xb9, 0xf1, 0xdb, 0xd7, 0x5c, 0x60, 0x01, 0x55, 0x56,
7111 0x2f, 0x2f, 0x0e, 0xde, 0x8c, 0x5f, 0x89, 0x93, 0xf5, 0x32, 0xf7, 0xf5,
7112 0x5b, 0xd5, 0xb3, 0xe0, 0x22, 0x91, 0x8e, 0x69, 0xec, 0x5e, 0x58, 0xff,
7113 0x0d, 0xa4, 0xad, 0x95, 0x5d, 0x07, 0x4d, 0x76, 0x73, 0xa9, 0x0c, 0x0b,
7114 0x5d, 0x4d, 0x9b, 0x69, 0xb3, 0xdc, 0x72, 0x07, 0x6b, 0x19, 0x96, 0x31,
7115 0xf2, 0x1c, 0x77, 0x46, 0xf7, 0xab, 0x0f, 0xb1, 0xa0, 0x1c, 0x5a, 0x67,
7116 0xec, 0xa7, 0xa2, 0xcb, 0xd7, 0xf2, 0x4a, 0x1e, 0xd2, 0xd5, 0x63, 0xa8,
7117 0xf5, 0x32, 0x82, 0xa2, 0x4d, 0xce, 0x31, 0x27, 0xba, 0x5c, 0xd9, 0xe0,
7118 0x5c, 0xe3, 0x61, 0x22, 0xa1, 0x35, 0xbd, 0xf9, 0xa7, 0xdd, 0xad, 0xee,
7119 0xe6, 0x2f, 0x7f, 0x69, 0xf3, 0xdd, 0x7d, 0x37, 0x5b, 0xdf, 0xe7, 0xa9,
7120 0x6c, 0xfe, 0x69, 0x6f, 0xeb, 0xd1, 0x11, 0x85, 0x99, 0x76, 0xfe, 0x9b,
7121 0xf4, 0x06, 0x77, 0x36, 0x7a, 0x69, 0xb5, 0xba, 0xf5, 0x0c, 0x76, 0x58,
7122 0x8f, 0x2b, 0xcf, 0x72, 0x57, 0x63, 0x7d, 0x60, 0x2c, 0xb0, 0xb3, 0xfc,
7123 0x7c, 0x08, 0x47, 0x53, 0x16, 0x4e, 0xfe, 0xe7, 0x71, 0xc8, 0x0e, 0x48,
7124 0x17, 0xf1, 0x50, 0xdd, 0x71, 0xba, 0x79, 0x99, 0x8f, 0xf0, 0xed, 0xbd,
7125 0x47, 0xbe, 0xed, 0x47, 0x17, 0x5c, 0x73, 0x39, 0x1e, 0xca, 0x80, 0x2a,
7126 0xa3, 0x38, 0xd6, 0xef, 0x6c, 0xf8, 0xaa, 0xc0, 0xeb, 0xbf, 0x77, 0x79,
7127 0xf2, 0xfa, 0x98, 0xa9, 0x90, 0x8f, 0x4e, 0x98, 0xbf, 0x6c, 0xac, 0x0c,
7128 0x82, 0x76, 0xa3, 0x75, 0xe4, 0xaa, 0x61, 0xd5, 0x0b, 0x09, 0x14, 0x3a,
7129 0xdc, 0x92, 0xdb, 0xfd, 0x6e, 0x25, 0xf8, 0xd3, 0x0a, 0xac, 0x2d, 0x2d,
7130 0x7d, 0xef, 0xe4, 0x6a, 0xf8, 0x3a, 0x9f, 0xe1, 0xd6, 0x35, 0x14, 0x9e,
7131 0x7a, 0x7a, 0x8b, 0x7e, 0xf8, 0x36, 0x5b, 0xd4, 0x7e, 0x1c, 0x26, 0x09,
7132 0xea, 0x85, 0x7a, 0x63, 0x5d, 0x65, 0x90, 0x9f, 0xb7, 0x87, 0x43, 0x54,
7133 0xe5, 0x16, 0x7c, 0x90, 0x46, 0x09, 0x6a, 0x1c, 0x0f, 0xb6, 0xf7, 0x69,
7134 0x7e, 0xd2, 0xf9, 0x83, 0x44, 0xb4, 0x63, 0x8f, 0x43, 0xf2, 0x19, 0x81,
7135 0xd7, 0x9c, 0x95, 0xe4, 0x9d, 0x45, 0xe2, 0x0e, 0xda, 0x08, 0x29, 0x29,
7136 0x61, 0x97, 0x27, 0xf7, 0x1e, 0x48, 0xa3, 0x15, 0x46, 0xf3, 0xe5, 0x03,
7137 0x06, 0x79, 0x5f, 0x8b, 0xd1, 0x77, 0x06, 0xea, 0x7e, 0x96, 0x77, 0x6a,
7138 0xb5, 0x70, 0x94, 0x37, 0x38, 0x10, 0x40, 0xfd, 0x89, 0x96, 0x8e, 0x39,
7139 0x2b, 0x02, 0x05, 0xa6, 0xdd, 0xb6, 0x6a, 0x50, 0x01, 0x5d, 0x65, 0xc0,
7140 0xae, 0x59, 0xef, 0xa7, 0xf7, 0x5e, 0x6e, 0xf0, 0xb1, 0x36, 0x62, 0xa7,
7141 0xb9, 0x45, 0x59, 0x48, 0xeb, 0x2c, 0xeb, 0x35, 0x3c, 0x93, 0xc8, 0x92,
7142 0x86, 0x25, 0x27, 0xbc, 0x3f, 0xec, 0x83, 0x6a, 0x3f, 0xcd, 0x3a, 0x06,
7143 0x33, 0xfc, 0xe5, 0xa3, 0x69, 0xc5, 0xf0, 0xa2, 0xde, 0x15, 0x13, 0x2b,
7144 0x70, 0x40, 0xa4, 0x27, 0x1d, 0x10, 0xae, 0x11, 0x91, 0x2d, 0xb2, 0xe7,
7145 0x59, 0xad, 0xd9, 0xbd, 0x44, 0xee, 0x68, 0x0e, 0x62, 0xe9, 0xbc, 0xad,
7146 0xe2, 0xe4, 0x62, 0x3d, 0xba, 0x5a, 0xce, 0x10, 0xdd, 0x17, 0x5c, 0xe3,
7147 0xbf, 0x33, 0xd1, 0x71, 0xf1, 0x10, 0xed, 0xee, 0x0d, 0xa2, 0xbd, 0x9d,
7148 0xdd, 0xbd, 0x8e, 0x31, 0xf4, 0xfe, 0x9d, 0xd1, 0x35, 0x7b, 0xf8, 0x75,
7149 0xef, 0x63, 0x47, 0xe1, 0x31, 0xf2, 0x38, 0x55, 0x35, 0x9b, 0x94, 0x74,
7150 0x0f, 0x07, 0xfa, 0xa4, 0x08, 0x39, 0x17, 0xf6, 0x04, 0x21, 0x1a, 0x6c,
7151 0x0a, 0xf1, 0x39, 0x59, 0x51, 0x3a, 0x57, 0xbf, 0x88, 0x9f, 0xd8, 0xd0,
7152 0xda, 0x8a, 0x80, 0x50, 0x38, 0xc7, 0x5b, 0x5c, 0xa0, 0xe2, 0x5e, 0x7d,
7153 0x8d, 0xd2, 0xca, 0x96, 0x85, 0x31, 0x1a, 0xbc, 0x36, 0x24, 0xef, 0x47,
7154 0x27, 0x87, 0x97, 0xc6, 0x98, 0x77, 0xc5, 0xc7, 0x69, 0xf1, 0xf0, 0x71,
7155 0xc5, 0xcb, 0x1e, 0x7d, 0x66, 0xb6, 0x7f, 0x93, 0x90, 0x45, 0x96, 0x4d,
7156 0x56, 0xd7, 0xfb, 0x7f, 0x8b, 0x8b, 0xeb, 0x3c, 0xfb, 0xd0, 0xf3, 0x33,
7157 0x24, 0x29, 0xed, 0x93, 0x82, 0xda, 0x7d, 0xbe, 0xfb, 0x44, 0x10, 0xf0,
7158 0x29, 0xd7, 0x3a, 0x84, 0x7e, 0xe8, 0x2f, 0xfa, 0x42, 0xd8, 0x00, 0xe8,
7159 0xbd, 0x63, 0x69, 0xc8, 0x66, 0x7d, 0xb9, 0x6e, 0xc5, 0xe1, 0xb3, 0x33,
7160 0x7d, 0x56, 0xb2, 0x99, 0xfb, 0x1b, 0x52, 0xc3, 0xb5, 0xcf, 0xa9, 0x7f,
7161 0xab, 0x65, 0xbf, 0x4e, 0xfb, 0xfd, 0x81, 0xb1, 0xf2, 0x27, 0x5c, 0xad,
7162 0xb6, 0x43, 0x47, 0x66, 0x8e, 0xac, 0x94, 0x22, 0x89, 0x6f, 0x7d, 0xa5,
7163 0x4f, 0xcf, 0xe6, 0x60, 0xbe, 0xf3, 0x8b, 0x57, 0x87, 0xc2, 0x81, 0x69,
7164 0x39, 0x38, 0x98, 0xea, 0xc8, 0x79, 0x3a, 0xb6, 0xb8, 0x97, 0x1f, 0xf8,
7165 0x3e, 0x83, 0xe4, 0xf7, 0x67, 0x93, 0x8f, 0x78, 0x88, 0xf6, 0x9d, 0xd0,
7166 0x8d, 0x1d, 0xd4, 0xeb, 0x9c, 0xb0, 0xcd, 0x8f, 0x92, 0x10, 0x56, 0xd2,
7167 0x73, 0x53, 0x2a, 0x37, 0x8a, 0xef, 0x9a, 0xbb, 0xe6, 0xea, 0xa2, 0xab,
7168 0xb3, 0x80, 0xfa, 0xcd, 0x65, 0x11, 0x8f, 0x0e, 0xce, 0x83, 0x7b, 0x13,
7169 0xee, 0x25, 0xde, 0x47, 0xc4, 0xcf, 0xb1, 0xcd, 0x8c, 0xaa, 0xc1, 0xe2,
7170 0x4a, 0x7a, 0x18, 0x78, 0x6b, 0xb7, 0x82, 0x9e, 0x9c, 0xdd, 0xc5, 0x82,
7171 0xb4, 0xce, 0xf5, 0x38, 0x81, 0x3b, 0x03, 0x0c, 0xf5, 0xf3, 0x59, 0x8c,
7172 0x88, 0x9a, 0x1e, 0x42, 0x30, 0x42, 0xd1, 0x56, 0xaa, 0xb0, 0x1a, 0x5a,
7173 0x9b, 0xf7, 0x91, 0x66, 0x03, 0x68, 0xda, 0x83, 0x96, 0x90, 0xc0, 0x63,
7174 0x9c, 0xe9, 0xfa, 0x60, 0x03, 0x10, 0xfd, 0x4c, 0x9d, 0x8f, 0xcb, 0x5b,
7175 0x52, 0xa5, 0x12, 0x09, 0xa6, 0xaf, 0xa7, 0xd3, 0xc4, 0x7c, 0xaa, 0xb3,
7176 0x54, 0x10, 0x19, 0xec, 0xcd, 0x00, 0x97, 0x4e, 0x6d, 0xc1, 0xe4, 0x04,
7177 0xe2, 0xcb, 0xcb, 0xbc, 0x4c, 0x84, 0xf7, 0x2e, 0xba, 0xbc, 0xcf, 0xc5,
7178 0xe8, 0x74, 0x84, 0x03, 0x82, 0x69, 0x2c, 0x57, 0xa9, 0x50, 0x67, 0xd0,
7179 0xe2, 0x41, 0x1f, 0x04, 0x75, 0x17, 0x7b, 0xce, 0x91, 0x72, 0xe4, 0x02,
7180 0x68, 0xe3, 0xa3, 0x6f, 0x22, 0xce, 0xd1, 0xe6, 0x6f, 0x1c, 0x32, 0x47,
7181 0x3b, 0xc7, 0xc2, 0x17, 0xb8, 0x48, 0x7c, 0xb5, 0xe2, 0xfd, 0x7e, 0x78,
7182 0x13, 0x2f, 0xd9, 0x24, 0xde, 0xdd, 0xe1, 0xdb, 0xf7, 0x77, 0x96, 0xed,
7183 0xc5, 0x1b, 0xd5, 0x6a, 0x32, 0x97, 0xbd, 0xe0, 0x62, 0x3e, 0xe3, 0x92,
7184 0xca, 0x6c, 0x13, 0xd7, 0x7d, 0x7e, 0x74, 0x7a, 0x96, 0xdb, 0xc2, 0xcc,
7185 0x5e, 0x92, 0x68, 0x14, 0xe5, 0xec, 0x76, 0x7b, 0x4a, 0x7f, 0x3c, 0xd9,
7186 0xd9, 0x06, 0x15, 0x63, 0x05, 0x17, 0x19, 0xcb, 0xe4, 0xde, 0xde, 0xb3,
7187 0x67, 0x83, 0xa8, 0xc7, 0x4e, 0x2b, 0xfb, 0x00, 0x6f, 0x09, 0xda, 0x59,
7188 0xbd, 0xae, 0x02, 0x94, 0xdb, 0xc5, 0xd5, 0x94, 0xff, 0xc7, 0xaf, 0x59,
7189 0x11, 0xb9, 0x4b, 0x4d, 0xdf, 0xc0, 0x3c, 0x64, 0x21, 0xd7, 0x8a, 0x89,
7190 0xd5, 0x3d, 0xad, 0x83, 0xb9, 0x25, 0x38, 0x02, 0xb1, 0x4c, 0xf2, 0xa5,
7191 0x85, 0x19, 0x17, 0x5a, 0xf3, 0x01, 0x9f, 0x0f, 0x82, 0x33, 0x08, 0x0c,
7192 0x0b, 0xae, 0x4a, 0x13, 0xeb, 0xcb, 0xd5, 0x64, 0xa8, 0x19, 0xa6, 0x72,
7193 0xcf, 0x48, 0x69, 0xe7, 0xd2, 0x3f, 0xe7, 0xe6, 0xfd, 0x6d, 0x69, 0xe4,
7194 0x2f, 0xa3, 0x9e, 0xca, 0x16, 0xff, 0x67, 0x84, 0x28, 0x61, 0x32, 0xe5,
7195 0x61, 0xe4, 0x2f, 0xf5, 0x1f, 0xff, 0xf6, 0x6f, 0xd4, 0xec, 0xbf, 0x71,
7196 0x2b, 0x2f, 0xff, 0x54, 0x56, 0x37, 0xc1, 0x33, 0x3d, 0x15, 0xf8, 0x13,
7197 0x1f, 0x23, 0x05, 0xee, 0x09, 0x44, 0xa5, 0x48, 0x84, 0x7a, 0x7d, 0xaa,
7198 0x1a, 0x79, 0x10, 0x8c, 0x2f, 0x45, 0x8a, 0x9a, 0xf8, 0xdc, 0x1c, 0xec,
7199 0xe0, 0x4b, 0x8e, 0x5f, 0x26, 0x9c, 0xda, 0x4c, 0x52, 0x08, 0x26, 0xba,
7200 0x2d, 0x33, 0x31, 0x8e, 0xdf, 0x7c, 0x7b, 0x72, 0x71, 0xf6, 0xe6, 0xf5,
7201 0xf1, 0x9b, 0xcb, 0xe8, 0xdb, 0x83, 0x8b, 0x93, 0x83, 0x2f, 0x4f, 0x35,
7202 0x83, 0x9a, 0x87, 0xc0, 0x68, 0x11, 0x31, 0xbd, 0x1b, 0x3c, 0xa2, 0x41,
7203 0x46, 0x4b, 0x67, 0x3d, 0x88, 0x46, 0x1d, 0xd1, 0x77, 0x4a, 0x4c, 0x0d,
7204 0xf7, 0xea, 0x3b, 0x54, 0xb6, 0x19, 0x70, 0xc0, 0xef, 0x9d, 0x15, 0xb9,
7205 0x61, 0xb7, 0xe5, 0x43, 0x90, 0x93, 0xcb, 0x40, 0x16, 0x96, 0x52, 0xd3,
7206 0x4f, 0xbe, 0x20, 0x99, 0x2b, 0x98, 0xf0, 0x95, 0xa4, 0x75, 0x5b, 0xf5,
7207 0x08, 0x7b, 0x55, 0x53, 0x8c, 0xe0, 0xc6, 0x71, 0x7d, 0x38, 0x38, 0x3d,
7208 0xf5, 0x9f, 0x7a, 0xbc, 0xb0, 0x88, 0xd2, 0xf9, 0x48, 0x16, 0xd0, 0x8d,
7209 0x95, 0x55, 0xbf, 0xce, 0x3d, 0xcb, 0x76, 0xf6, 0x10, 0x12, 0x6a, 0xf3,
7210 0xc7, 0x68, 0x39, 0x36, 0x85, 0x8b, 0x81, 0xc3, 0x8d, 0xb4, 0x81, 0xd2,
7211 0xf2, 0x76, 0x10, 0xf5, 0xff, 0xd4, 0x97, 0xec, 0xac, 0x04, 0x74, 0xb3,
7212 0x52, 0xb6, 0x64, 0xcb, 0x77, 0xea, 0xcd, 0x99, 0xef, 0x93, 0x06, 0xd1,
7213 0x5c, 0x07, 0xdc, 0x8b, 0x3e, 0xfe, 0x59, 0x9a, 0x3d, 0x03, 0xe0, 0xa1,
7214 0x7f, 0x5c, 0x19, 0xfd, 0x5d, 0x8a, 0xb9, 0xca, 0x28, 0xc7, 0x49, 0x3a,
7215 0xdf, 0xc5, 0xa5, 0x2d, 0x9e, 0x06, 0xac, 0xc2, 0xe2, 0xc6, 0xe1, 0xcb,
7216 0x2f, 0xec, 0x00, 0x29, 0x02, 0x2f, 0x87, 0x03, 0x4d, 0x35, 0xbb, 0x88,
7217 0x36, 0xac, 0x62, 0xb9, 0x6a, 0x50, 0x48, 0xd5, 0xfb, 0x6d, 0x2b, 0x5f,
7218 0x82, 0x90, 0x15, 0x03, 0xcb, 0x8b, 0x74, 0xa6, 0x3c, 0x75, 0x9d, 0x52,
7219 0x31, 0x42, 0xa4, 0xe3, 0xe2, 0x10, 0xa4, 0xde, 0x19, 0x57, 0x86, 0x73,
7220 0x85, 0x10, 0x04, 0x84, 0x4a, 0x5a, 0xa4, 0xe0, 0xcc, 0xae, 0x4c, 0x8d,
7221 0x10, 0x00, 0x3b, 0x61, 0xa2, 0xc7, 0xd7, 0xb9, 0x99, 0xdf, 0xb1, 0x0b,
7222 0xbf, 0x4a, 0xc6, 0x96, 0x60, 0x76, 0xcc, 0x0a, 0x73, 0x44, 0x54, 0xce,
7223 0x03, 0x86, 0x40, 0xad, 0xf9, 0x9b, 0x19, 0xa7, 0x04, 0x7f, 0x99, 0xe2,
7224 0x18, 0xca, 0x20, 0xdd, 0xd7, 0xc3, 0xe0, 0x59, 0x97, 0x48, 0x88, 0xd2,
7225 0x98, 0xa1, 0xc0, 0xbf, 0x65, 0xe9, 0xc1, 0x40, 0xcc, 0xa1, 0x5b, 0xfc,
7226 0x20, 0x9a, 0x54, 0xf0, 0x23, 0x9a, 0x34, 0x57, 0x28, 0xed, 0x9e, 0x39,
7227 0x67, 0x22, 0x99, 0x26, 0x8a, 0xa3, 0x49, 0x7a, 0x1d, 0x99, 0x17, 0x24,
7228 0x62, 0x29, 0x01, 0x4b, 0x58, 0xbe, 0x48, 0x78, 0xa9, 0xc0, 0x01, 0x06,
7229 0xdb, 0xfd, 0x26, 0x9f, 0x87, 0xa4, 0x55, 0x36, 0x92, 0x92, 0x91, 0xfa,
7230 0x81, 0x17, 0x0d, 0x9e, 0xf4, 0x15, 0xcf, 0xa3, 0xc1, 0x9a, 0x94, 0xdf,
7231 0x5a, 0x41, 0x5e, 0xec, 0xa2, 0x05, 0xdd, 0x5e, 0x86, 0x94, 0x12, 0x4b,
7232 0xcf, 0xc5, 0x3c, 0x18, 0x00, 0x96, 0xb5, 0x05, 0x3c, 0x2b, 0x5c, 0x86,
7233 0x6e, 0xd3, 0x11, 0x54, 0x73, 0x2b, 0x53, 0xa1, 0xf8, 0x64, 0xa1, 0x17,
7234 0x7c, 0x7a, 0xbd, 0xc6, 0x8b, 0x2e, 0x96, 0x52, 0x31, 0x91, 0x4c, 0x70,
7235 0xa7, 0xa9, 0x7f, 0x9b, 0x81, 0xe2, 0xc9, 0x48, 0x44, 0xe4, 0x31, 0xb9,
7236 0x3f, 0xea, 0xbf, 0x86, 0xae, 0x3a, 0x95, 0x86, 0x31, 0xb7, 0x7c, 0x04,
7237 0x5b, 0xac, 0x00, 0x96, 0xd6, 0xa9, 0x56, 0xba, 0x43, 0x7f, 0x69, 0xbd,
7238 0xcc, 0x11, 0x15, 0xfa, 0xb1, 0x22, 0xcb, 0xdc, 0x98, 0xcf, 0x03, 0x8a,
7239 0x6a, 0x71, 0x47, 0xc4, 0x2d, 0xe3, 0x83, 0x83, 0x0d, 0x92, 0xd0, 0xa8,
7240 0x18, 0x12, 0xa1, 0xb3, 0x0d, 0x46, 0xa2, 0xe8, 0x64, 0x36, 0xcf, 0x1a,
7241 0xee, 0xb1, 0x40, 0xa3, 0x59, 0xb4, 0x35, 0x3c, 0x99, 0xb4, 0x32, 0x42,
7242 0x1a, 0x2f, 0xc4, 0x78, 0xf4, 0xe2, 0xb7, 0x78, 0x10, 0xfc, 0xda, 0xc6,
7243 0xc6, 0xe1, 0xdb, 0xf1, 0xe5, 0xd9, 0xeb, 0xe8, 0xec, 0xed, 0xe5, 0xf9,
7244 0xdb, 0x4b, 0x3d, 0xba, 0x26, 0x82, 0xfe, 0x95, 0x3b, 0xa2, 0x58, 0x01,
7245 0xb6, 0x9a, 0x0b, 0x0d, 0x21, 0x03, 0xac, 0x90, 0x83, 0x9a, 0x2e, 0x60,
7246 0xa9, 0x71, 0xd9, 0x3d, 0xe0, 0x6e, 0x12, 0xc6, 0x5b, 0xcc, 0xf9, 0x3d,
7247 0xcd, 0x39, 0x32, 0x33, 0xe1, 0xdb, 0xb1, 0x64, 0x21, 0xdc, 0x7b, 0xba,
7248 0xab, 0x8e, 0x34, 0x0a, 0x1c, 0x22, 0xd8, 0x5b, 0x27, 0x05, 0xf2, 0x88,
7249 0x1c, 0xf3, 0xed, 0x78, 0xd7, 0x4f, 0x08, 0x0e, 0x04, 0x2c, 0x66, 0x5a,
7250 0x99, 0x33, 0xd3, 0xf0, 0x99, 0x00, 0xad, 0xd4, 0x53, 0xd4, 0xc2, 0x4c,
7251 0xb9, 0x2a, 0xa7, 0x11, 0xde, 0x38, 0x6c, 0x35, 0xe3, 0x51, 0x80, 0x29,
7252 0x93, 0x80, 0x3c, 0x83, 0xb7, 0xe4, 0xca, 0x40, 0x17, 0x41, 0x76, 0x81,
7253 0xb7, 0x8e, 0xd9, 0xfb, 0xa8, 0xff, 0x5d, 0x12, 0x36, 0xf8, 0x87, 0xff,
7254 0xe0, 0x04, 0xc0, 0x77, 0xf6, 0x93, 0x7f, 0xc8, 0x27, 0xff, 0x9a, 0xf5,
7255 0x01, 0xc5, 0xaa, 0x47, 0x5e, 0xbf, 0x39, 0xbe, 0xf8, 0xf2, 0xf8, 0xe2,
7256 0x6c, 0x0c, 0xf8, 0x89, 0xb9, 0xbb, 0xda, 0xc2, 0x7e, 0x9b, 0x14, 0x93,
7257 0xa4, 0xc8, 0xb5, 0x36, 0x92, 0xfd, 0xeb, 0xd9, 0xf6, 0x57, 0xe3, 0xf1,
7258 0xc1, 0xf9, 0x89, 0xab, 0x39, 0xe2, 0x52, 0x91, 0xe4, 0x8e, 0x94, 0x49,
7259 0xb2, 0x1c, 0x8f, 0xdf, 0x5e, 0x21, 0xb9, 0x98, 0xde, 0x0a, 0x44, 0xb5,
7260 0x15, 0xe3, 0x34, 0x1f, 0x2d, 0x07, 0x37, 0x35, 0x43, 0x8d, 0x1b, 0x36,
7261 0x76, 0x21, 0x49, 0xd4, 0x16, 0x01, 0x7e, 0xc5, 0x2e, 0xe5, 0x81, 0x83,
7262 0x71, 0xdd, 0x16, 0x93, 0x21, 0x09, 0xfa, 0xad, 0x15, 0x8e, 0x15, 0x30,
7263 0x3d, 0xa9, 0x49, 0x41, 0xd9, 0x7a, 0x3f, 0xc3, 0x2d, 0x97, 0x8b, 0xde,
7264 0xbe, 0xe5, 0xad, 0xc1, 0x65, 0x31, 0xe6, 0x23, 0xd1, 0xec, 0xb2, 0x97,
7265 0x0c, 0x3a, 0xc9, 0xea, 0xf5, 0x31, 0xb2, 0x03, 0xfa, 0x9a, 0x2b, 0x64,
7266 0x27, 0xae, 0x2e, 0xfa, 0xc9, 0x53, 0x47, 0xfa, 0x14, 0x56, 0x12, 0xbe,
7267 0x22, 0xe3, 0x7b, 0x79, 0x3f, 0xd3, 0x03, 0x04, 0x14, 0xc7, 0x99, 0x78,
7268 0xb9, 0x45, 0x7f, 0x37, 0x63, 0x1d, 0x5c, 0x79, 0x0f, 0xa8, 0x7f, 0xc5,
7269 0x34, 0x47, 0x93, 0x79, 0x9c, 0xdd, 0xe2, 0x24, 0xc3, 0xd9, 0xc4, 0xd7,
7270 0x4d, 0xe3, 0x32, 0xe2, 0x3a, 0x85, 0x08, 0x6d, 0x29, 0xbd, 0x00, 0x0c,
7271 0xc0, 0x39, 0x2b, 0xb6, 0x07, 0xf1, 0xec, 0x3a, 0xca, 0xa6, 0x20, 0x88,
7272 0x83, 0x9d, 0xe4, 0x27, 0x81, 0xbd, 0x46, 0xc7, 0xa7, 0x74, 0x28, 0xb9,
7273 0x4c, 0x05, 0x5c, 0xcf, 0x93, 0x39, 0x13, 0xef, 0x18, 0xb8, 0x44, 0x92,
7274 0xf3, 0x52, 0x28, 0x31, 0x51, 0x1c, 0xc6, 0xbe, 0x8d, 0x30, 0x04, 0x24,
7275 0x05, 0x39, 0x88, 0xa5, 0xab, 0x51, 0xa1, 0x5a, 0x5b, 0x14, 0x18, 0xc8,
7276 0x25, 0x7d, 0xc9, 0x8a, 0xb0, 0x88, 0x89, 0x62, 0xb6, 0x0e, 0x3d, 0xb4,
7277 0xc4, 0xd5, 0x77, 0x92, 0x4e, 0x78, 0x93, 0xd4, 0x05, 0xab, 0x6a, 0x29,
7278 0x12, 0x6b, 0x97, 0x49, 0x5e, 0xef, 0x72, 0x00, 0x40, 0x01, 0x52, 0x03,
7279 0xe2, 0xfd, 0x76, 0xf4, 0x32, 0x86, 0x7b, 0xad, 0x63, 0x4d, 0xad, 0xe3,
7280 0x12, 0x58, 0x66, 0xbf, 0xed, 0xbc, 0xb2, 0xf8, 0x13, 0x70, 0x92, 0x7a,
7281 0xfa, 0x56, 0x33, 0x68, 0x9b, 0xa2, 0xc6, 0x74, 0x1a, 0x42, 0x3c, 0x85,
7282 0x01, 0x01, 0x6e, 0x41, 0x01, 0xfd, 0xe3, 0x06, 0xe3, 0x6c, 0xdb, 0xe1,
7283 0x1b, 0x3e, 0x2a, 0xf2, 0xe1, 0x64, 0x85, 0x3b, 0x59, 0x50, 0x77, 0x49,
7284 0x12, 0x01, 0xb9, 0x5a, 0x38, 0xc8, 0xb9, 0xf0, 0x7b, 0x0e, 0x6b, 0x20,
7285 0xc5, 0x5a, 0x22, 0x1d, 0xc8, 0xb9, 0xab, 0x13, 0xb7, 0x38, 0xba, 0x0e,
7286 0x01, 0xb2, 0x03, 0xd0, 0x6b, 0x95, 0xba, 0xa4, 0x87, 0xba, 0xc8, 0x0e,
7287 0x72, 0x96, 0x69, 0x39, 0x4d, 0xf8, 0xd9, 0xeb, 0xb0, 0xdd, 0xca, 0xb1,
7288 0xa5, 0x5f, 0xc2, 0x44, 0x48, 0x94, 0x43, 0xdc, 0xf0, 0xb8, 0x86, 0xfe,
7289 0xbf, 0xab, 0xb8, 0x3e, 0x90, 0x30, 0x0d, 0xc4, 0x73, 0x29, 0xf2, 0xb0,
7290 0xf6, 0x14, 0x91, 0xcd, 0x54, 0x5d, 0x5e, 0xfe, 0x70, 0x7e, 0xfc, 0xd2,
7291 0xde, 0x7c, 0x6c, 0xcd, 0x84, 0x80, 0x0b, 0xf0, 0x8b, 0x44, 0xc9, 0x2e,
7292 0x83, 0xe2, 0xbc, 0x24, 0x64, 0xc3, 0xca, 0xc2, 0xc2, 0xf2, 0x99, 0x61,
7293 0xf4, 0xfd, 0xd1, 0xc9, 0xf8, 0xfc, 0xf4, 0xec, 0xf0, 0xe5, 0x8b, 0xef,
7294 0x4d, 0x1b, 0x7f, 0xce, 0x8c, 0x33, 0x62, 0xa3, 0xb9, 0x9f, 0x79, 0x82,
7295 0x00, 0x7d, 0xef, 0xcd, 0xf1, 0x77, 0xef, 0xe8, 0x66, 0xf0, 0x92, 0x49,
7296 0xc1, 0x07, 0x77, 0xf1, 0x5c, 0x5f, 0xe2, 0xeb, 0x55, 0x87, 0x5d, 0x17,
7297 0xa4, 0x73, 0x74, 0x4d, 0xac, 0xab, 0x36, 0xe9, 0xc1, 0xee, 0x0f, 0x86,
7298 0xc8, 0x0a, 0xea, 0x09, 0xc5, 0xb5, 0xdc, 0xcc, 0x8e, 0xaa, 0xad, 0xb9,
7299 0x3b, 0xf9, 0xfb, 0x95, 0x20, 0xf3, 0x38, 0x1a, 0x1d, 0x06, 0x79, 0x01,
7300 0x7e, 0xd4, 0xdf, 0x78, 0x50, 0xa8, 0xd2, 0xef, 0x16, 0x8c, 0x85, 0x70,
7301 0x5c, 0x86, 0x5a, 0x3a, 0x17, 0xe1, 0x53, 0x25, 0x3c, 0x54, 0x26, 0x1f,
7302 0xc6, 0x61, 0x1a, 0x24, 0xdb, 0x95, 0x67, 0x17, 0xf3, 0xc5, 0xf5, 0x85,
7303 0xcb, 0x9c, 0x15, 0x7c, 0x28, 0xa1, 0x9c, 0xcb, 0xf9, 0xf1, 0xc5, 0xf8,
7304 0x64, 0x7c, 0xc9, 0x57, 0x28, 0x2d, 0xc4, 0xa7, 0xee, 0x67, 0xab, 0x92,
7305 0x88, 0xc4, 0xff, 0x3a, 0x77, 0x65, 0x58, 0x6a, 0xa2, 0xb6, 0xa3, 0x9d,
7306 0x9a, 0xab, 0x67, 0x02, 0xb2, 0x17, 0x41, 0xd2, 0x0b, 0xd9, 0x08, 0x15,
7307 0x06, 0xd6, 0xf8, 0xca, 0x36, 0x70, 0xae, 0xa2, 0xd1, 0xa8, 0xb8, 0x80,
7308 0x6a, 0x29, 0x58, 0x9d, 0x79, 0x3a, 0xf1, 0x0e, 0xf3, 0x46, 0x24, 0x92,
7309 0x03, 0xdd, 0xca, 0xf8, 0x10, 0x6e, 0x21, 0x73, 0x85, 0xfb, 0xf4, 0xda,
7310 0x32, 0xb7, 0xba, 0xaa, 0x22, 0xfc, 0x70, 0x55, 0x87, 0x49, 0x90, 0xee,
7311 0x92, 0x8a, 0x8b, 0x89, 0x99, 0x68, 0xee, 0xa7, 0x01, 0x94, 0x51, 0x49,
7312 0x84, 0xc0, 0x7d, 0xaa, 0x2a, 0x9b, 0x95, 0x72, 0x2a, 0xe9, 0x4c, 0xec,
7313 0x64, 0x21, 0x83, 0x05, 0xe9, 0xd9, 0x80, 0x9c, 0xe8, 0xc8, 0x5a, 0xd6,
7314 0x87, 0x9a, 0x8d, 0xd7, 0x9c, 0x07, 0x05, 0xa6, 0xa6, 0x19, 0x9b, 0x5a,
7315 0xf0, 0xbe, 0x85, 0x1f, 0xb3, 0x93, 0x94, 0x67, 0x70, 0xb2, 0x0a, 0xeb,
7316 0x79, 0xb9, 0xde, 0x4b, 0x49, 0x0b, 0x4c, 0x3c, 0xc0, 0x76, 0x71, 0x01,
7317 0x26, 0xc4, 0x4a, 0x99, 0xc6, 0xed, 0xd2, 0xa3, 0xc8, 0xb9, 0x51, 0x9d,
7318 0x14, 0xc6, 0xe4, 0xd2, 0xaa, 0x4f, 0x3e, 0x36, 0xa3, 0x41, 0x29, 0x40,
7319 0x16, 0xdf, 0x22, 0x31, 0x08, 0x8c, 0xb8, 0x18, 0x4a, 0x8e, 0x35, 0x64,
7320 0x53, 0x77, 0x18, 0x73, 0xe6, 0x0a, 0x43, 0x41, 0x0a, 0x25, 0xdc, 0x21,
7321 0xf5, 0xc7, 0x5e, 0x65, 0xd4, 0x0f, 0x44, 0x61, 0x5c, 0x0e, 0xb8, 0x19,
7322 0x19, 0x9b, 0xc7, 0x02, 0xcb, 0x74, 0x07, 0x62, 0x25, 0xae, 0xf5, 0x07,
7323 0xfd, 0xa0, 0xcb, 0xb2, 0xb6, 0xc5, 0x1a, 0x48, 0xd2, 0x4e, 0x8c, 0x1c,
7324 0x11, 0xf3, 0xe9, 0x06, 0xb9, 0x86, 0xa5, 0x66, 0x70, 0xba, 0x60, 0xa5,
7325 0x28, 0x3c, 0x54, 0x2c, 0xf2, 0x39, 0x4f, 0xb5, 0xa0, 0x20, 0x59, 0x96,
7326 0x4b, 0x94, 0xdf, 0x99, 0x2a, 0x03, 0x39, 0xc0, 0x9f, 0xae, 0x3d, 0x3b,
7327 0x43, 0xfc, 0x5c, 0xd1, 0xa4, 0xbe, 0x7e, 0x7b, 0x7a, 0x79, 0x72, 0x1e,
7328 0x06, 0x1e, 0xa3, 0xef, 0x4e, 0x2e, 0xbf, 0x26, 0x7b, 0x9d, 0x8b, 0xbe,
7329 0x9f, 0x72, 0x74, 0xe7, 0xf5, 0xeb, 0x83, 0x37, 0x9c, 0xa1, 0xfe, 0x06,
7330 0x18, 0xb9, 0x03, 0xdc, 0x19, 0x58, 0x1b, 0xd1, 0x0c, 0xb3, 0xe8, 0x70,
7331 0xee, 0xf2, 0xa0, 0x1d, 0x65, 0x68, 0xec, 0x3e, 0x29, 0x91, 0x9b, 0xd5,
7332 0xe7, 0x88, 0x17, 0x5c, 0xef, 0x04, 0x0f, 0xec, 0xd3, 0xc1, 0xae, 0xe5,
7333 0x7b, 0x16, 0xcf, 0x73, 0x93, 0x7a, 0x1c, 0x79, 0x72, 0x62, 0x9b, 0x23,
7334 0xa6, 0x2a, 0x47, 0xb7, 0x8f, 0x5c, 0x60, 0x41, 0x1d, 0x89, 0x29, 0x30,
7335 0xab, 0x64, 0x32, 0x65, 0x7a, 0xa5, 0x91, 0xe3, 0xb2, 0x8e, 0x5b, 0xa7,
7336 0x2f, 0xa2, 0x4b, 0x08, 0x2a, 0xe7, 0xde, 0x19, 0xc8, 0x97, 0x4d, 0xbe,
7337 0x2f, 0x5f, 0x9c, 0x86, 0xe7, 0x69, 0xbd, 0xb0, 0xb8, 0x01, 0xcd, 0xae,
7338 0xf3, 0xc4, 0x6f, 0xdc, 0xe1, 0x99, 0x35, 0x63, 0x9e, 0x5f, 0xdc, 0xc0,
7339 0xe4, 0x6c, 0x19, 0xb2, 0x5a, 0x1b, 0xd2, 0x92, 0x6c, 0xb9, 0x1a, 0x35,
7340 0xea, 0x39, 0xdb, 0x17, 0xab, 0xd2, 0xd1, 0xf4, 0x5a, 0x89, 0x35, 0x6a,
7341 0xce, 0x5a, 0x56, 0x40, 0x03, 0x70, 0xbd, 0x9a, 0x1a, 0xa3, 0x63, 0x86,
7342 0xb2, 0xb4, 0xc7, 0x6a, 0x99, 0xbd, 0x72, 0xdc, 0x9d, 0x99, 0x57, 0xcf,
7343 0x52, 0xa3, 0x90, 0x10, 0xc9, 0x14, 0x2e, 0x3e, 0x66, 0x8a, 0xb2, 0x5c,
7344 0x79, 0x3e, 0x4a, 0xde, 0x27, 0x1c, 0xde, 0xe4, 0xbf, 0xfe, 0x6d, 0x79,
7345 0x1d, 0x66, 0x4d, 0x49, 0x95, 0xe0, 0x65, 0xd7, 0xca, 0x2a, 0x27, 0xb0,
7346 0x58, 0x45, 0x5a, 0x9c, 0xac, 0xd6, 0x03, 0xad, 0x38, 0xb6, 0xbb, 0xee,
7347 0x83, 0xfa, 0xfb, 0xbd, 0xf6, 0xef, 0xf7, 0xc4, 0xe3, 0x78, 0x72, 0x7e,
7348 0xf7, 0x89, 0xe3, 0xd3, 0x94, 0x5c, 0xe0, 0xd0, 0x7a, 0x33, 0x9b, 0x80,
7349 0x25, 0x8c, 0x1f, 0x95, 0x23, 0x27, 0x16, 0x95, 0x28, 0x6e, 0x7f, 0xc6,
7350 0x22, 0xad, 0x0a, 0xe4, 0x38, 0xe2, 0x11, 0x78, 0x88, 0x05, 0x40, 0x0a,
7351 0xb8, 0x16, 0xd4, 0x14, 0x9f, 0x56, 0xd4, 0x20, 0xfd, 0xfe, 0xa9, 0x03,
7352 0x74, 0x7b, 0x95, 0x86, 0x02, 0x5f, 0x9a, 0x51, 0x33, 0x4c, 0x97, 0x77,
7353 0x56, 0xb3, 0x95, 0xfe, 0xfa, 0x89, 0x2b, 0xee, 0x52, 0xd6, 0xc2, 0x53,
7354 0x35, 0xe2, 0x5a, 0xd3, 0xfd, 0xe8, 0x1c, 0x00, 0x76, 0xac, 0x18, 0x1c,
7355 0xe7, 0xeb, 0xa8, 0xd1, 0xaf, 0xa4, 0x0e, 0xed, 0x0d, 0x4a, 0x4d, 0xc2,
7356 0xb7, 0x3c, 0x47, 0x76, 0x25, 0xd4, 0x51, 0xa0, 0x5b, 0x42, 0x9e, 0x78,
7357 0x5d, 0xf5, 0x1f, 0xf7, 0x76, 0x76, 0x76, 0xf7, 0x77, 0x3f, 0x7b, 0xbe,
7358 0xb3, 0xbf, 0xbb, 0xbb, 0xbb, 0xb7, 0xbf, 0xbb, 0xbf, 0xbf, 0xb7, 0xf3,
7359 0xd3, 0x36, 0xbb, 0x8e, 0xee, 0xd2, 0xe4, 0xde, 0x62, 0x52, 0x92, 0xcf,
7360 0x05, 0xb1, 0x96, 0x3a, 0xdc, 0x7a, 0x77, 0xd7, 0x1b, 0xae, 0x19, 0x3e,
7361 0x8e, 0x99, 0x40, 0xc0, 0xd7, 0x42, 0x48, 0xb6, 0xf4, 0xd9, 0x8a, 0xd8,
7362 0x83, 0x01, 0x61, 0x32, 0x7a, 0xf5, 0xf7, 0x15, 0x8f, 0x74, 0xc2, 0xd6,
7363 0x00, 0x4c, 0x9a, 0xd2, 0xe5, 0x86, 0x5d, 0xcf, 0xf3, 0xc9, 0x04, 0x00,
7364 0x78, 0x97, 0x1e, 0x39, 0x8a, 0x98, 0x99, 0xf3, 0x56, 0x44, 0x42, 0x83,
7365 0x06, 0x80, 0xa7, 0xc9, 0x46, 0xf7, 0xb3, 0x23, 0x76, 0x97, 0x42, 0x72,
7366 0xa7, 0x39, 0xb3, 0xd2, 0xcf, 0x58, 0x29, 0xd1, 0x24, 0x15, 0x2e, 0x6d,
7367 0x22, 0xba, 0x4a, 0x3e, 0xdb, 0xd9, 0xdf, 0xe7, 0xc2, 0x11, 0x7f, 0xd8,
7368 0x1d, 0x28, 0xb2, 0x30, 0x84, 0x4b, 0x0f, 0xdc, 0xe9, 0x24, 0x6d, 0xf0,
7369 0xed, 0x23, 0x1c, 0x67, 0xb6, 0x5a, 0x24, 0x85, 0xde, 0x43, 0x70, 0x1e,
7370 0x0a, 0x81, 0x0c, 0x0b, 0xa3, 0x75, 0xd9, 0x3d, 0x8b, 0x52, 0x28, 0x70,
7371 0xc9, 0x4b, 0x7e, 0x83, 0x3f, 0x3c, 0x75, 0x9f, 0x63, 0xab, 0x64, 0x52,
7372 0x64, 0x92, 0x1f, 0x86, 0x41, 0x0e, 0x56, 0x8c, 0xfc, 0x36, 0xb4, 0x55,
7373 0x35, 0xa7, 0xe3, 0xc7, 0xa0, 0xf3, 0x7b, 0xcf, 0x76, 0x7f, 0x12, 0x20,
7374 0x1b, 0x0b, 0xb8, 0x9f, 0x05, 0x2d, 0x0d, 0x36, 0x53, 0x7b, 0x44, 0xd2,
7375 0xc0, 0x54, 0x30, 0x36, 0x93, 0xd1, 0xf5, 0xc8, 0x8c, 0x04, 0x75, 0x1c,
7376 0x0e, 0x42, 0x38, 0xb1, 0x30, 0x58, 0x4b, 0x19, 0x59, 0x5c, 0xbb, 0xcc,
7377 0x37, 0x64, 0xbe, 0x5d, 0xf1, 0x4b, 0xd6, 0x6a, 0xbc, 0x6c, 0xd0, 0x91,
7378 0x71, 0x70, 0x72, 0xca, 0x78, 0x95, 0x53, 0xb2, 0xc0, 0xc6, 0xa6, 0xca,
7379 0x00, 0xe9, 0x01, 0xde, 0x26, 0x4b, 0xf9, 0x34, 0x1d, 0x38, 0x6a, 0x79,
7380 0x83, 0xc5, 0xc3, 0xac, 0x60, 0xbf, 0xbb, 0x58, 0xe6, 0xca, 0x03, 0x45,
7381 0xf6, 0x30, 0xe9, 0xb3, 0x52, 0xdc, 0x29, 0xa0, 0x5b, 0x64, 0x1e, 0x62,
7382 0xc4, 0x38, 0x60, 0xf1, 0xca, 0xc4, 0xa3, 0x9a, 0x45, 0x91, 0xcc, 0x93,
7383 0x3b, 0xf5, 0x7b, 0x08, 0x79, 0xdd, 0x57, 0x1a, 0x5e, 0x90, 0x62, 0x76,
7384 0x95, 0x8f, 0x92, 0xd4, 0x22, 0x18, 0xfc, 0xcd, 0x6d, 0xc9, 0xfb, 0xf7,
7385 0xe9, 0xdc, 0xa8, 0x67, 0xed, 0x08, 0x97, 0x2d, 0x9a, 0xc3, 0xef, 0x0d,
7386 0xd9, 0x04, 0x55, 0x1c, 0xd2, 0xdb, 0x52, 0x33, 0x76, 0x9b, 0xa8, 0x40,
7387 0xb9, 0xca, 0x5b, 0x39, 0x24, 0x71, 0x8b, 0x0d, 0x8c, 0x13, 0x53, 0x9c,
7388 0x79, 0x6c, 0xb5, 0x0c, 0xd8, 0x85, 0x22, 0x05, 0x77, 0xc9, 0x5e, 0x62,
7389 0xe6, 0xf3, 0x81, 0x24, 0x07, 0xe1, 0x00, 0xca, 0xe7, 0xf4, 0x4f, 0x00,
7390 0x1d, 0x78, 0xd6, 0xf1, 0x2c, 0x73, 0xfa, 0x05, 0xf0, 0x23, 0xfa, 0xa7,
7391 0xc0, 0x5e, 0xf5, 0x5f, 0x68, 0xaa, 0x58, 0x81, 0x3a, 0x72, 0x20, 0xc2,
7392 0xca, 0xf1, 0x80, 0x6a, 0x3a, 0x72, 0xbd, 0xd7, 0x70, 0x9c, 0xf4, 0xff,
7393 0xc8, 0xa2, 0x45, 0xa6, 0x26, 0xf2, 0xc2, 0x66, 0x57, 0x56, 0x61, 0x22,
7394 0xd5, 0xab, 0xbe, 0x5c, 0xb1, 0x9f, 0xda, 0x55, 0x67, 0xe0, 0x5e, 0x2c,
7395 0x58, 0xb4, 0x12, 0x29, 0x14, 0xe7, 0x1a, 0x67, 0x83, 0x6b, 0x45, 0xab,
7396 0x2b, 0xad, 0x9f, 0xe6, 0xf7, 0x5c, 0xe5, 0xee, 0xea, 0x2a, 0x9d, 0x72,
7397 0x21, 0x03, 0x4f, 0x11, 0xc9, 0x5a, 0x55, 0x1e, 0x5c, 0x58, 0x69, 0x0d,
7398 0x1a, 0x5b, 0xb4, 0x5c, 0x4d, 0xe6, 0xb4, 0x97, 0x0c, 0xb8, 0x38, 0x8a,
7399 0x0e, 0x30, 0x4b, 0x64, 0x0b, 0xa1, 0x39, 0x09, 0xb3, 0xc1, 0x1c, 0x6c,
7400 0xe0, 0xe4, 0xb4, 0x04, 0x2f, 0x9f, 0x90, 0x0b, 0x94, 0xfb, 0x63, 0x4c,
7401 0xd8, 0x22, 0xcf, 0x0c, 0xf6, 0xbc, 0x2a, 0x85, 0x30, 0xcc, 0xea, 0xf5,
7402 0x6e, 0x88, 0xcf, 0x30, 0x9d, 0x2b, 0x43, 0xaf, 0x1a, 0xce, 0x78, 0x23,
7403 0x1c, 0xcc, 0x6c, 0xb8, 0xbc, 0x59, 0xda, 0x4a, 0x9b, 0xbe, 0x12, 0x65,
7404 0xa6, 0x40, 0x5b, 0x1c, 0x6f, 0xe7, 0x5f, 0x9f, 0x8f, 0xa2, 0x63, 0x6e,
7405 0x49, 0xfa, 0xa4, 0xe7, 0x10, 0x6e, 0x50, 0xf4, 0x3b, 0x1a, 0xec, 0x35,
7406 0x2b, 0xf0, 0xb3, 0x82, 0xff, 0x85, 0xd6, 0xf4, 0x97, 0xe2, 0x34, 0xc1,
7407 0x6f, 0xeb, 0x5f, 0xa5, 0x86, 0x0c, 0x11, 0x77, 0x8e, 0xbf, 0xd3, 0x56,
7408 0x21, 0xed, 0xe8, 0x96, 0xc9, 0x7f, 0x21, 0x2f, 0x6a, 0xf4, 0x0a, 0xf2,
7409 0x66, 0x44, 0x4a, 0x13, 0xaa, 0x6f, 0xf9, 0x80, 0xf5, 0xc3, 0x85, 0x1b,
7410 0x9c, 0x1c, 0x7a, 0x3c, 0x48, 0x03, 0x81, 0x68, 0xa9, 0xf8, 0x39, 0x60,
7411 0x8d, 0xec, 0xab, 0x42, 0x88, 0x05, 0x8a, 0x44, 0x61, 0x48, 0xb9, 0x06,
7412 0x30, 0xe4, 0xbe, 0x51, 0x26, 0x8d, 0xed, 0x1a, 0x98, 0x57, 0xf6, 0x0b,
7413 0x36, 0x8a, 0xb9, 0x2f, 0xa4, 0x84, 0x68, 0x09, 0x46, 0x1b, 0xff, 0x3f,
7414 0x58, 0xae, 0x68, 0x5f, 0x84, 0x27, 0x02, 0x00,
4498 0x75, 0x6d, 0x1a, 0x20, 0xd8, 0xdb, 0x0a, 0x46, 0x54, 0xac, 0x9d, 0xdc,
4499 0x50, 0xab, 0x1e, 0xfb, 0xc6, 0x3d, 0x2b, 0x1d, 0x1c, 0xc0, 0x0e, 0x32,
4500 0xa6, 0x53, 0x72, 0xc8, 0xc6, 0xb6, 0x72, 0x5e, 0xa8, 0x7d, 0xbb, 0xdf,
4501 0x8b, 0x36, 0x93, 0xd1, 0x35, 0xb5, 0xd7, 0xe3, 0x76, 0x76, 0xf7, 0xf9,
4502 0xcf, 0x3d, 0xfc, 0xf9, 0xa4, 0xb7, 0xd5, 0xba, 0x55, 0x96, 0xd0, 0xbc,
4503 0x6d, 0x1c, 0x34, 0x42, 0x37, 0xc1, 0x35, 0x73, 0xa0, 0x31, 0xc0, 0x74,
4504 0xdd, 0x1e, 0x50, 0xeb, 0xb4, 0x2b, 0xfd, 0xcd, 0x4f, 0x04, 0xb4, 0xfc,
4505 0x4d, 0x0c, 0x3f, 0x12, 0xab, 0xb3, 0x22, 0x9f, 0x4a, 0x1e, 0x4a, 0x98,
4506 0x9e, 0x3b, 0x7d, 0x57, 0x24, 0x37, 0x71, 0x49, 0xea, 0x6d, 0x55, 0xa5,
4507 0xec, 0xd5, 0x6d, 0x9a, 0x2b, 0x2b, 0xc6, 0xee, 0xf2, 0xed, 0x1c, 0x23,
4508 0xd6, 0x0f, 0xbb, 0xe4, 0x4e, 0x5b, 0x5a, 0x71, 0xe7, 0xb0, 0x95, 0xa6,
4509 0x4f, 0x0c, 0x95, 0x8c, 0xbd, 0x4b, 0x87, 0x9b, 0x7b, 0x85, 0x1f, 0x0b,
4510 0x79, 0x71, 0x17, 0x9c, 0xff, 0x0d, 0x3f, 0x73, 0x94, 0x5c, 0xd1, 0x8c,
4511 0xa5, 0x92, 0x0d, 0x25, 0x18, 0x57, 0xe9, 0x75, 0xfb, 0xfa, 0x29, 0xc7,
4512 0xb3, 0x06, 0xcd, 0xdc, 0xbf, 0xa1, 0xfc, 0xf4, 0xb8, 0x2c, 0x85, 0x3b,
4513 0xb7, 0x2e, 0x7c, 0x1f, 0x13, 0x0c, 0xc1, 0xc1, 0x20, 0x89, 0x88, 0xb2,
4514 0x3d, 0x75, 0xb0, 0x82, 0xed, 0x35, 0x61, 0x57, 0x06, 0xae, 0x2e, 0xe2,
4515 0x23, 0x77, 0xc4, 0xfc, 0xb3, 0x3b, 0xe7, 0x0a, 0x2e, 0x3b, 0xda, 0xbe,
4516 0xdd, 0x1e, 0xb9, 0x57, 0x9c, 0x87, 0x5b, 0x72, 0x28, 0x9b, 0xe7, 0x69,
4517 0x93, 0x49, 0x28, 0x85, 0xe4, 0x34, 0xc6, 0xb5, 0x60, 0x8b, 0x1d, 0x0b,
4518 0x96, 0x66, 0x83, 0xb4, 0x9f, 0xb2, 0x9b, 0xf4, 0x00, 0x64, 0x26, 0xc2,
4519 0x8a, 0x09, 0xa4, 0x26, 0x22, 0xb5, 0x70, 0xeb, 0xab, 0x1b, 0x14, 0x6c,
4520 0xf5, 0x74, 0xa6, 0x90, 0x76, 0x0a, 0x7e, 0x39, 0x4b, 0x94, 0x12, 0xb9,
4521 0xa9, 0xe1, 0x85, 0xe4, 0x5e, 0xbd, 0xba, 0xf4, 0xcd, 0x93, 0xcc, 0x22,
4522 0x62, 0x82, 0x05, 0x51, 0x2c, 0xbb, 0xf2, 0x81, 0x58, 0x0f, 0xaf, 0x24,
4523 0x2b, 0xaf, 0xb5, 0x7d, 0x67, 0xc9, 0x3c, 0xc5, 0x03, 0xcc, 0x29, 0xa0,
4524 0x29, 0x54, 0xea, 0xfc, 0x2d, 0x92, 0x6a, 0x55, 0x00, 0xec, 0x05, 0x76,
4525 0x91, 0xd7, 0xa7, 0xee, 0x01, 0x86, 0xb4, 0xc1, 0x3f, 0x54, 0x36, 0x9b,
4526 0x53, 0x7e, 0x3b, 0x90, 0x62, 0x8b, 0xb5, 0x6c, 0x98, 0x2c, 0xee, 0xd8,
4527 0x83, 0x2b, 0x57, 0xb0, 0xa5, 0x67, 0xb9, 0x44, 0x5e, 0x05, 0x0c, 0x40,
4528 0x77, 0xd9, 0x61, 0x4b, 0xb9, 0x18, 0x82, 0x57, 0x4a, 0x57, 0x60, 0x01,
4529 0x2a, 0xb9, 0xe8, 0xc4, 0x95, 0xb2, 0xde, 0x72, 0x2f, 0x35, 0x3d, 0x7a,
4530 0x6f, 0x6f, 0x0d, 0x04, 0x55, 0x69, 0x10, 0x14, 0x89, 0xc2, 0x93, 0x31,
4531 0x2c, 0xe3, 0x2b, 0xc7, 0x89, 0x44, 0xbb, 0x82, 0x6d, 0xe5, 0x7c, 0x4a,
4532 0x53, 0x28, 0x30, 0x2e, 0xfc, 0x2c, 0xcb, 0xdb, 0x11, 0xa1, 0xd5, 0x94,
4533 0x37, 0x3a, 0x5f, 0x83, 0x1c, 0xb0, 0x92, 0xe3, 0xed, 0x0a, 0xa5, 0x89,
4534 0xca, 0x79, 0xba, 0xe4, 0x4d, 0x55, 0xe4, 0xab, 0xeb, 0x1b, 0x9a, 0xc8,
4535 0x04, 0x2a, 0x15, 0x56, 0x45, 0x97, 0xaf, 0xbf, 0x41, 0xd7, 0x00, 0x43,
4536 0xfe, 0x8e, 0xe9, 0xfc, 0x66, 0xd1, 0x66, 0xa3, 0xfd, 0xa7, 0x3b, 0xbb,
4537 0xe8, 0xee, 0xd3, 0x9d, 0x4f, 0xc3, 0x2c, 0x15, 0x07, 0xe7, 0x57, 0xba,
4538 0x24, 0x45, 0x11, 0x3c, 0x8e, 0x7e, 0x9c, 0xf3, 0x9d, 0x12, 0xf3, 0x9a,
4539 0x90, 0xb5, 0x8b, 0xf8, 0xa6, 0x66, 0x39, 0x0c, 0x49, 0x5b, 0xa2, 0x35,
4540 0x06, 0x8d, 0x61, 0x2d, 0x25, 0x2d, 0xa2, 0x99, 0xa5, 0x19, 0x97, 0x91,
4541 0x65, 0xde, 0xad, 0xcb, 0x7d, 0x30, 0x96, 0x0f, 0x4f, 0x55, 0x88, 0x0c,
4542 0x8e, 0x2e, 0xac, 0x73, 0xa8, 0x34, 0x0f, 0x35, 0xd5, 0xe1, 0x92, 0x2f,
4543 0x40, 0x6a, 0x8c, 0xc7, 0x45, 0xb5, 0x8d, 0xac, 0x06, 0xc5, 0x70, 0x4c,
4544 0x39, 0xed, 0xdf, 0x38, 0xc9, 0x2f, 0x5e, 0x1d, 0x36, 0x9a, 0xdb, 0x7b,
4545 0xf2, 0xd9, 0x67, 0xda, 0x89, 0x44, 0x03, 0xde, 0x9e, 0x96, 0x8a, 0xfd,
4546 0x01, 0x02, 0x13, 0x95, 0x83, 0x9a, 0xa9, 0xa4, 0x01, 0xaa, 0x93, 0x28,
4547 0x50, 0x87, 0xd6, 0xef, 0xeb, 0x9c, 0xf6, 0xad, 0xe8, 0x83, 0xc1, 0x80,
4548 0x94, 0x43, 0x69, 0x60, 0x24, 0xb9, 0x0e, 0x2a, 0xae, 0x69, 0xea, 0x6c,
4549 0xe2, 0x66, 0xd1, 0x17, 0xad, 0xa0, 0xe2, 0xb5, 0x24, 0x39, 0xfc, 0x8d,
4550 0xcf, 0x90, 0xeb, 0xa4, 0x6a, 0x43, 0x96, 0x02, 0xec, 0x77, 0xad, 0xf1,
4551 0xb5, 0x29, 0xf1, 0x01, 0xdd, 0x90, 0x82, 0xae, 0x5e, 0xc8, 0x01, 0xe9,
4552 0xc3, 0xc5, 0x46, 0x0a, 0x1e, 0x7d, 0x01, 0x31, 0x7a, 0xa1, 0x39, 0x1e,
4553 0x59, 0x17, 0xc6, 0xfa, 0x0b, 0x25, 0x59, 0x50, 0x5f, 0x15, 0xb2, 0xff,
4554 0xab, 0x2a, 0xb6, 0x4a, 0x05, 0xb8, 0x41, 0x71, 0xc6, 0x00, 0x0c, 0x78,
4555 0x85, 0xe5, 0x2b, 0xfd, 0x63, 0xcb, 0x9d, 0x2c, 0xf5, 0x4b, 0x00, 0x18,
4556 0x34, 0xee, 0x06, 0x2e, 0x50, 0xc3, 0xec, 0x2e, 0x92, 0xb7, 0xc1, 0xbd,
4557 0xe9, 0x9a, 0x0a, 0x44, 0x7b, 0xba, 0x7a, 0x17, 0xbc, 0x1b, 0x4c, 0x54,
4558 0x6b, 0xe7, 0x1f, 0xbf, 0x8f, 0x17, 0xe0, 0xda, 0x37, 0xea, 0x44, 0xd8,
4559 0xc3, 0x1e, 0xa2, 0xa0, 0x77, 0x44, 0x0f, 0xa8, 0x18, 0xe8, 0xb6, 0x8f,
4560 0xfa, 0xfc, 0x50, 0x73, 0xe7, 0xf3, 0x4b, 0x7d, 0x4b, 0x8c, 0x09, 0xad,
4561 0x5b, 0x08, 0xa6, 0x74, 0xc7, 0xb1, 0x9d, 0x88, 0xa9, 0xc9, 0x9f, 0x9a,
4562 0xad, 0xc9, 0xf3, 0xe7, 0x37, 0x91, 0x88, 0xbe, 0xdf, 0x79, 0x15, 0x1b,
4563 0xbe, 0x72, 0x3d, 0x7d, 0xf9, 0x45, 0xad, 0xb5, 0xfb, 0xfb, 0xd1, 0xe2,
4564 0xc1, 0x7e, 0x57, 0xd6, 0x4a, 0x87, 0x78, 0x84, 0xa8, 0xf2, 0x45, 0x89,
4565 0x48, 0xf9, 0xf4, 0x86, 0x90, 0xb6, 0xda, 0x13, 0x75, 0xd3, 0xd1, 0x2e,
4566 0xa8, 0xc4, 0x64, 0x2d, 0x25, 0x98, 0xee, 0xa6, 0xeb, 0x3c, 0x91, 0x18,
4567 0xdc, 0x24, 0x27, 0x71, 0x33, 0x41, 0x62, 0x38, 0x79, 0x55, 0xac, 0xa6,
4568 0x55, 0xfb, 0xdc, 0xf7, 0xf5, 0x29, 0x34, 0x17, 0x14, 0xf4, 0x2a, 0x5a,
4569 0xbe, 0x01, 0x4e, 0xf4, 0xfa, 0x76, 0x37, 0xe2, 0x31, 0x83, 0xda, 0x37,
4570 0x77, 0x22, 0xe8, 0x85, 0xfa, 0x03, 0x89, 0x8e, 0x2b, 0xcc, 0xd9, 0xc3,
4571 0x72, 0xd7, 0x4e, 0x65, 0xef, 0x3e, 0x99, 0xbc, 0xfc, 0x82, 0xdd, 0xe5,
4572 0xef, 0x91, 0x50, 0x2d, 0x34, 0x45, 0x2c, 0x47, 0xdb, 0xfc, 0xcf, 0x5e,
4573 0xc4, 0xb7, 0xaf, 0x8e, 0x99, 0x24, 0xf9, 0x5b, 0xd7, 0x62, 0x90, 0x03,
4574 0x13, 0xb4, 0x76, 0x95, 0xe7, 0x6b, 0x1b, 0xb3, 0xca, 0x21, 0x98, 0x89,
4575 0x20, 0x1a, 0x2a, 0xc1, 0x49, 0x2f, 0x56, 0x22, 0x4a, 0x58, 0xa1, 0xda,
4576 0xd6, 0xea, 0x42, 0xda, 0xc2, 0x94, 0x96, 0x13, 0xd1, 0x50, 0x77, 0x2f,
4577 0x07, 0x52, 0x96, 0x88, 0xed, 0xad, 0xf5, 0x13, 0xc2, 0x4f, 0xbf, 0xfc,
4578 0x02, 0x09, 0xaa, 0xfc, 0xd7, 0xbf, 0xb8, 0xb7, 0xf9, 0x0f, 0x92, 0x4b,
4579 0xda, 0xdd, 0x6b, 0x07, 0xc2, 0x9e, 0xb0, 0xab, 0x55, 0x81, 0x0b, 0x6e,
4580 0x22, 0x9b, 0x4c, 0x18, 0xfb, 0x2d, 0xf9, 0x5f, 0x55, 0xc4, 0xeb, 0x83,
4581 0x37, 0x6f, 0x0f, 0x4e, 0xbb, 0x4f, 0x64, 0x35, 0x04, 0xc3, 0x98, 0x9c,
4582 0xf3, 0xbb, 0xc0, 0x86, 0x0b, 0xaf, 0x38, 0x1c, 0x57, 0x65, 0x9d, 0xcf,
4583 0x25, 0x04, 0x7e, 0xe4, 0x23, 0xe0, 0xa7, 0xce, 0x08, 0x3c, 0x92, 0x21,
4584 0xe2, 0x2c, 0x4c, 0x7e, 0x88, 0xcb, 0x5b, 0x11, 0xd8, 0x9e, 0xbd, 0xcf,
4585 0xaf, 0xf7, 0xd4, 0x6d, 0xe9, 0x90, 0x41, 0x1d, 0xe6, 0xa5, 0xd3, 0x13,
4586 0x7c, 0xd4, 0x99, 0x8d, 0x8f, 0xfb, 0xcb, 0x20, 0x28, 0x31, 0x00, 0x43,
4587 0x16, 0xa5, 0x5f, 0xae, 0x82, 0x43, 0xac, 0xd1, 0xdc, 0xc1, 0xe1, 0xa1,
4588 0xc7, 0x65, 0xd4, 0xf1, 0xdd, 0x4f, 0x18, 0xdf, 0xbd, 0x0e, 0x2e, 0xdf,
4589 0xb8, 0x1c, 0x82, 0xc5, 0x71, 0xa0, 0xfa, 0x0a, 0x29, 0x2a, 0xb5, 0xcc,
4590 0x7d, 0x8b, 0x9c, 0xb6, 0x6c, 0x28, 0x44, 0x52, 0x57, 0x65, 0xd2, 0x9a,
4591 0xd1, 0x39, 0x08, 0xba, 0x39, 0xa8, 0x3d, 0xac, 0x72, 0xe0, 0xa8, 0xa2,
4592 0x17, 0xda, 0xcd, 0xcf, 0x3b, 0x27, 0x98, 0x93, 0xe6, 0x02, 0x83, 0xc5,
4593 0x68, 0x5c, 0x41, 0x58, 0x3b, 0x56, 0xbf, 0xe3, 0xf9, 0x01, 0x38, 0x18,
4594 0x14, 0x3c, 0xa4, 0x86, 0xe7, 0xa0, 0x05, 0x84, 0x91, 0xc4, 0x7b, 0x30,
4595 0x2b, 0xdb, 0xc4, 0x58, 0x36, 0x8b, 0xdd, 0x5a, 0xac, 0xe4, 0xc8, 0xe5,
4596 0x6a, 0x41, 0x47, 0x38, 0x1d, 0x5d, 0xb3, 0x7e, 0x49, 0xb2, 0xc7, 0xfc,
4597 0xa6, 0x4d, 0x89, 0x62, 0x70, 0x04, 0xa0, 0x1d, 0xba, 0xec, 0x80, 0x9b,
4598 0x21, 0x52, 0xa9, 0x8b, 0x12, 0x77, 0x06, 0x40, 0x07, 0xdd, 0x17, 0x9f,
4599 0xde, 0xf8, 0x84, 0x29, 0xef, 0x0e, 0xde, 0x5e, 0x7e, 0xdd, 0x8b, 0x02,
4600 0x26, 0xe3, 0x3a, 0xf4, 0x8e, 0x0c, 0xcf, 0x22, 0x4d, 0xee, 0x1c, 0xc6,
4601 0xa3, 0x90, 0xcd, 0xdb, 0x66, 0x87, 0x6a, 0x44, 0xc6, 0x1a, 0x12, 0xf0,
4602 0x6c, 0xf4, 0x6c, 0xab, 0xb1, 0x30, 0xeb, 0xb3, 0xd5, 0x9b, 0xec, 0xcb,
4603 0x2a, 0xec, 0x9a, 0x2d, 0xcd, 0xe1, 0xf2, 0x6d, 0x4f, 0x28, 0x24, 0xd6,
4604 0x57, 0x6c, 0xfe, 0xf4, 0x0e, 0xe8, 0xb6, 0x07, 0xb2, 0x8b, 0xa7, 0x89,
4605 0xa1, 0x19, 0xef, 0x41, 0x77, 0x91, 0xd5, 0x8e, 0xc5, 0x90, 0x73, 0xde,
4606 0xe1, 0x26, 0xda, 0xd8, 0x46, 0xbb, 0x4e, 0x33, 0x8b, 0x0a, 0xb3, 0x7a,
4607 0x86, 0x7c, 0x8e, 0xed, 0xfc, 0x79, 0x3b, 0x8a, 0x3c, 0x3e, 0xa5, 0x33,
4608 0xc3, 0x3b, 0x5a, 0xa4, 0x92, 0x68, 0x13, 0x64, 0x8b, 0x37, 0x25, 0x59,
4609 0xad, 0xfb, 0x1f, 0xe5, 0xbf, 0xdd, 0xca, 0x01, 0x07, 0x4d, 0x91, 0xdb,
4610 0xb9, 0xa3, 0xaf, 0x08, 0xbd, 0x84, 0x64, 0x4a, 0x78, 0xc2, 0x4b, 0x58,
4611 0xbd, 0xe2, 0xd9, 0xcf, 0x5a, 0x69, 0x38, 0xd4, 0xda, 0xe6, 0x78, 0xcb,
4612 0xe0, 0x17, 0x30, 0xb2, 0xb4, 0xb1, 0xb8, 0xb8, 0xd6, 0xeb, 0x91, 0xe3,
4613 0x66, 0x0c, 0xf0, 0xfa, 0x0a, 0xf3, 0x1b, 0xb6, 0xf8, 0x10, 0xaf, 0xa3,
4614 0x60, 0x27, 0xb6, 0x55, 0x36, 0xd4, 0xe2, 0xf4, 0x7e, 0xd6, 0x0d, 0x24,
4615 0x95, 0xa3, 0x14, 0x49, 0xcc, 0x41, 0x7d, 0x98, 0xc3, 0xef, 0x8e, 0x02,
4616 0x66, 0x29, 0xd6, 0x7f, 0x18, 0x14, 0x04, 0x41, 0x40, 0xed, 0xd9, 0x3a,
4617 0x80, 0xb1, 0x39, 0x68, 0x51, 0x0d, 0xe8, 0x15, 0x4a, 0xb4, 0x25, 0x4b,
4618 0xc7, 0x5c, 0x00, 0x92, 0x4c, 0x5e, 0x4f, 0xa9, 0xea, 0x83, 0xfa, 0x3d,
4619 0xf0, 0x00, 0xac, 0xe9, 0x9d, 0xaa, 0x01, 0xc7, 0x72, 0xc0, 0xff, 0x63,
4620 0x26, 0x1f, 0xae, 0xc5, 0xb6, 0xfb, 0xe9, 0x93, 0xcf, 0xa2, 0x92, 0x61,
4621 0x4b, 0x69, 0x38, 0x65, 0x92, 0x42, 0xb4, 0x1e, 0x3a, 0xae, 0x16, 0x98,
4622 0xb9, 0x0d, 0x14, 0x4a, 0x47, 0x17, 0xaf, 0xfc, 0x3e, 0x81, 0xe7, 0x5d,
4623 0x61, 0x3d, 0x6d, 0x24, 0x31, 0x4d, 0xa2, 0x15, 0x8b, 0x91, 0x02, 0x21,
4624 0x98, 0x27, 0xb9, 0xce, 0x8f, 0xea, 0x45, 0x93, 0xc0, 0x6a, 0x44, 0xea,
4625 0xe1, 0xe2, 0xf8, 0xf2, 0x82, 0xfe, 0x33, 0xbe, 0x3c, 0xbb, 0x58, 0x83,
4626 0xf7, 0xa7, 0x4b, 0x3b, 0xab, 0x3d, 0x9e, 0x34, 0x16, 0x1a, 0x66, 0x8c,
4627 0xc1, 0x34, 0xd7, 0x33, 0xb9, 0xe1, 0x4c, 0x16, 0x15, 0x82, 0x0b, 0xdd,
4628 0x62, 0xb8, 0x2e, 0xcb, 0x03, 0xb3, 0x15, 0x0e, 0xf4, 0x2a, 0xa6, 0x7d,
4629 0xf2, 0xd8, 0xc0, 0x64, 0xcd, 0x1f, 0x97, 0x10, 0x0c, 0x98, 0x85, 0x91,
4630 0x47, 0xec, 0x94, 0x36, 0x7a, 0xab, 0xcc, 0xeb, 0xde, 0xb5, 0xb5, 0x86,
4631 0x27, 0xb8, 0x46, 0x58, 0x96, 0x94, 0x02, 0x93, 0xf7, 0x24, 0x72, 0x5c,
4632 0x19, 0x44, 0x22, 0x1c, 0x3d, 0x76, 0x9b, 0xde, 0x3a, 0x46, 0xa2, 0x0f,
4633 0xc8, 0x6f, 0x5c, 0x3a, 0x67, 0x00, 0x1f, 0xa6, 0xf9, 0x22, 0x11, 0xbb,
4634 0x50, 0x5c, 0x55, 0xa6, 0x75, 0x4a, 0xa5, 0x00, 0x4c, 0x05, 0x0f, 0xd8,
4635 0xc6, 0x42, 0xba, 0xd4, 0x64, 0x5e, 0xe5, 0xbe, 0xc3, 0xb4, 0xe5, 0x2a,
4636 0x1d, 0xb2, 0x2e, 0x64, 0xe1, 0xcc, 0x2b, 0x24, 0x7d, 0xf7, 0xad, 0x57,
4637 0x7d, 0x27, 0x6a, 0x0d, 0xad, 0xbc, 0xdb, 0xd4, 0xca, 0x0c, 0x08, 0xec,
4638 0xd6, 0x2c, 0x08, 0x45, 0x1b, 0xac, 0xcc, 0x31, 0x56, 0xba, 0x84, 0xbf,
4639 0x90, 0x92, 0xe9, 0x5c, 0x9f, 0x92, 0xb5, 0x6d, 0xa9, 0x02, 0xa9, 0x98,
4640 0xe1, 0x65, 0x5b, 0x97, 0x5c, 0x30, 0x7a, 0xab, 0xa6, 0x36, 0xad, 0x59,
4641 0x4f, 0x6d, 0xfd, 0x19, 0xd0, 0x4a, 0x3a, 0x40, 0xd5, 0xf0, 0x7c, 0x3b,
4642 0xc0, 0x41, 0x6a, 0xbe, 0x7d, 0x6d, 0xe4, 0xbb, 0xbf, 0xc0, 0x22, 0x79,
4643 0x14, 0xcb, 0xfc, 0x8b, 0xa0, 0xcc, 0xd1, 0xdb, 0x4c, 0x31, 0xc5, 0x59,
4644 0xe4, 0xd9, 0x46, 0x3d, 0x06, 0x92, 0xf1, 0xf2, 0x60, 0x0e, 0xe7, 0xf3,
4645 0xaa, 0x75, 0x8a, 0x09, 0xe7, 0xa9, 0x95, 0x07, 0x84, 0x6b, 0x16, 0xde,
4646 0x78, 0x3b, 0x62, 0xb4, 0x41, 0xbd, 0x5c, 0x4a, 0x85, 0x32, 0x8f, 0xd8,
4647 0x6b, 0xe5, 0x0f, 0x14, 0xea, 0x0b, 0x6e, 0xed, 0xb4, 0xf3, 0x70, 0x8d,
4648 0x45, 0x03, 0xe2, 0x42, 0xea, 0x55, 0x07, 0x23, 0x23, 0x05, 0x4a, 0x3d,
4649 0xfe, 0xd6, 0x81, 0x3c, 0x25, 0x61, 0xb1, 0xcd, 0x19, 0x2e, 0x11, 0x03,
4650 0x60, 0x30, 0x95, 0x25, 0xb4, 0x0e, 0x6d, 0xb4, 0x79, 0x6e, 0x1e, 0x77,
4651 0x4c, 0x11, 0x07, 0x71, 0x1c, 0xa6, 0xcb, 0x0f, 0x43, 0x51, 0x0d, 0x04,
4652 0xcb, 0xdd, 0x3a, 0x39, 0xf7, 0xf5, 0x2a, 0x02, 0xd6, 0xa3, 0xd5, 0xf5,
4653 0x35, 0x8a, 0xbc, 0xa4, 0xed, 0x14, 0x8e, 0xd2, 0xbb, 0xb9, 0x34, 0x8f,
4654 0x8f, 0x8c, 0x30, 0xee, 0xb3, 0x1b, 0x1d, 0xfc, 0x8d, 0xf8, 0x98, 0x0a,
4655 0x7a, 0xe9, 0x09, 0x10, 0xd6, 0xc6, 0xd3, 0x39, 0x0a, 0x6d, 0x04, 0xee,
4656 0x61, 0x31, 0x3f, 0x2d, 0xe8, 0xe6, 0x83, 0x66, 0x41, 0x8f, 0x5b, 0x30,
4657 0x18, 0x4b, 0xc5, 0x87, 0xa1, 0x63, 0x5b, 0x6e, 0xaa, 0xc7, 0x7c, 0xf8,
4658 0xad, 0x9a, 0x80, 0x3f, 0x1d, 0xed, 0x6d, 0x3d, 0x76, 0x25, 0x61, 0x7b,
4659 0x9f, 0x13, 0x7f, 0x49, 0x36, 0xa7, 0xf0, 0x7d, 0x0b, 0xea, 0x5c, 0x70,
4660 0xcb, 0x85, 0xac, 0xac, 0x6d, 0x80, 0xf5, 0x75, 0x70, 0x78, 0x8a, 0x9a,
4661 0xeb, 0x46, 0xbb, 0xb0, 0x1b, 0x9c, 0x2f, 0x0b, 0xe6, 0x56, 0x0c, 0xd6,
4662 0x71, 0x1c, 0x9d, 0xd3, 0xe1, 0xe3, 0x66, 0x39, 0x40, 0xec, 0x46, 0x9b,
4663 0x88, 0xef, 0x53, 0x3f, 0xb6, 0x9a, 0xe7, 0x24, 0xf3, 0xcb, 0xc4, 0x69,
4664 0x78, 0x03, 0xa2, 0x6d, 0xb9, 0xa0, 0x9f, 0xb0, 0xf3, 0xb9, 0xa0, 0x3e,
4665 0x30, 0xe1, 0xbd, 0xb1, 0xc4, 0xab, 0xfd, 0xcd, 0x4e, 0x4e, 0x53, 0xb3,
4666 0x1b, 0x9d, 0xc7, 0xb7, 0xe2, 0x23, 0x82, 0x28, 0x10, 0x23, 0x6b, 0x68,
4667 0xb7, 0xa2, 0x82, 0x11, 0x18, 0x53, 0x63, 0x54, 0x2b, 0xc3, 0x1d, 0x30,
4668 0xbf, 0xcf, 0x40, 0x1f, 0xd8, 0x96, 0x26, 0x74, 0x9e, 0xf7, 0xce, 0xa8,
4669 0xae, 0x6d, 0xf7, 0x76, 0x46, 0xef, 0x9b, 0xda, 0xb6, 0x2c, 0xe7, 0xc3,
4670 0xe9, 0x74, 0xda, 0x39, 0x5d, 0xac, 0x6f, 0x0f, 0x0f, 0x0f, 0xa3, 0xcd,
4671 0x43, 0xa4, 0x8d, 0x1c, 0x6a, 0x2f, 0x0f, 0x6f, 0xd8, 0x1f, 0x30, 0x67,
4672 0x38, 0xc9, 0xcd, 0x8a, 0x69, 0x72, 0xb9, 0x2b, 0x7a, 0x44, 0x8d, 0xc7,
4673 0xa7, 0xdb, 0x97, 0xa7, 0xe3, 0x26, 0x7e, 0x34, 0x7e, 0xe0, 0x3b, 0xa2,
4674 0x30, 0xce, 0xd6, 0x2e, 0x36, 0x62, 0xd7, 0x21, 0x27, 0xdb, 0xb0, 0x6d,
4675 0x26, 0x57, 0xf2, 0x95, 0x4e, 0x12, 0x90, 0x55, 0x66, 0x8e, 0x5c, 0x17,
4676 0x72, 0xc8, 0x48, 0xbd, 0x31, 0xca, 0x89, 0xc1, 0x61, 0x90, 0x32, 0x04,
4677 0x72, 0xca, 0xe8, 0xcd, 0xc1, 0x25, 0xd7, 0x3a, 0xa8, 0x94, 0x4b, 0x61,
4678 0x0d, 0xba, 0xd5, 0xe5, 0xf2, 0x03, 0xfe, 0x1d, 0x07, 0xbc, 0x7e, 0x76,
4679 0x44, 0x40, 0x15, 0x71, 0x32, 0xb1, 0xa8, 0x26, 0x81, 0xa9, 0x74, 0xea,
4680 0x35, 0x9d, 0xd1, 0xa1, 0x3b, 0xa0, 0x04, 0xbf, 0xc9, 0xff, 0x2c, 0x1b,
4681 0x0b, 0xb2, 0xfb, 0x49, 0xfb, 0xf8, 0xab, 0xbd, 0xfe, 0xa3, 0x60, 0xa1,
4682 0xb7, 0xf5, 0xab, 0x3f, 0xfd, 0x53, 0xcb, 0x04, 0x60, 0x93, 0xfa, 0x7c,
4683 0xe9, 0x31, 0x93, 0x8c, 0x36, 0xc2, 0xa2, 0x81, 0xf0, 0x17, 0x4d, 0x21,
4684 0x19, 0xa5, 0x29, 0x2a, 0x2e, 0x88, 0xba, 0xa0, 0x45, 0x9f, 0x81, 0x63,
4685 0x97, 0x0f, 0x02, 0x53, 0xfd, 0xf7, 0x71, 0x4b, 0x6d, 0x98, 0xa6, 0x08,
4686 0xb2, 0xa8, 0xb8, 0x08, 0xa6, 0xc0, 0x14, 0x1c, 0x91, 0x65, 0x91, 0x2c,
4687 0xe7, 0x0f, 0xce, 0x8a, 0xd3, 0xb6, 0xd7, 0x5d, 0xef, 0xc2, 0xcb, 0x40,
4688 0x08, 0x13, 0xb7, 0x0e, 0x96, 0xf5, 0x56, 0xf0, 0xa1, 0x38, 0xed, 0xf4,
4689 0x70, 0xc6, 0xfa, 0xe5, 0x46, 0xb9, 0x81, 0xf6, 0x0a, 0xed, 0x75, 0xae,
4690 0x90, 0x48, 0x69, 0xe7, 0x7a, 0x5c, 0xe8, 0xbe, 0xd7, 0xbd, 0xe0, 0xe6,
4691 0x01, 0xf9, 0x05, 0xf3, 0xfc, 0x9a, 0xeb, 0x34, 0x68, 0x26, 0x96, 0x6c,
4692 0x78, 0xc7, 0xa7, 0xd9, 0xf4, 0x67, 0x88, 0x08, 0x5b, 0xad, 0x91, 0x46,
4693 0x10, 0x43, 0xe6, 0x9f, 0xb5, 0x8a, 0x13, 0x7d, 0xe5, 0x36, 0xb2, 0x14,
4694 0x86, 0x8e, 0xf5, 0xb0, 0x90, 0xe4, 0x94, 0x4b, 0x15, 0xbd, 0x82, 0x13,
4695 0x49, 0xb3, 0x5b, 0x84, 0x8a, 0x55, 0x43, 0x90, 0x16, 0xcd, 0x72, 0x17,
4696 0xd7, 0xce, 0x62, 0x0e, 0x74, 0x7e, 0xeb, 0x18, 0xdb, 0xb3, 0xb6, 0xb3,
4697 0xa5, 0x47, 0x36, 0x97, 0xf0, 0xad, 0x82, 0xc0, 0xa0, 0x9a, 0x8c, 0xad,
4698 0x7c, 0x87, 0x89, 0xd0, 0x95, 0xdd, 0x19, 0xc7, 0xc2, 0xd5, 0x8a, 0xab,
4699 0x5a, 0x1b, 0x8e, 0xa4, 0xa6, 0xe2, 0xd9, 0x0f, 0xac, 0x58, 0x73, 0x89,
4700 0xc5, 0x3c, 0x5e, 0xee, 0xc7, 0xb3, 0x09, 0x68, 0x00, 0x27, 0xe4, 0x62,
4701 0xf0, 0x34, 0x47, 0x06, 0x5f, 0xd7, 0x35, 0xe9, 0x04, 0xf8, 0xc1, 0x54,
4702 0x2a, 0x62, 0xa9, 0xe9, 0xe8, 0x4e, 0xa7, 0x79, 0x5a, 0xb1, 0x79, 0xc6,
4703 0x74, 0xc1, 0xa7, 0x5a, 0xa3, 0xb9, 0xff, 0x45, 0x1f, 0xd2, 0xd7, 0x7f,
4704 0xd1, 0x67, 0x4d, 0x56, 0xc4, 0x6d, 0x40, 0x0a, 0xce, 0x0c, 0x83, 0x2d,
4705 0xf7, 0xc5, 0xb7, 0xd9, 0xb7, 0x4e, 0xa8, 0x4d, 0x2f, 0x3d, 0x43, 0xf8,
4706 0x3b, 0x53, 0x4c, 0x32, 0xd7, 0x2c, 0x26, 0x8b, 0xa8, 0xe3, 0x7a, 0x5b,
4707 0x4f, 0xe9, 0x93, 0x5a, 0x70, 0x08, 0x48, 0xf8, 0x91, 0xcb, 0xf2, 0x16,
4708 0x49, 0xbf, 0x44, 0x76, 0xa7, 0xd0, 0x0b, 0x77, 0x45, 0xcc, 0xdd, 0xdc,
4709 0x68, 0x7f, 0xa4, 0x23, 0x8c, 0xb5, 0x88, 0xa7, 0xd3, 0x94, 0x81, 0xd0,
4710 0xb0, 0x13, 0xe9, 0x97, 0x64, 0xd2, 0x88, 0x78, 0x63, 0xcc, 0xc8, 0xc2,
4711 0xa7, 0x41, 0x37, 0x45, 0xcf, 0xca, 0xa1, 0x93, 0x92, 0x6f, 0x92, 0x62,
4712 0x0d, 0xaf, 0xd9, 0x40, 0xbc, 0x9e, 0xe7, 0x93, 0xfc, 0xea, 0xea, 0x11,
4713 0x7b, 0x41, 0x12, 0x44, 0xd0, 0x86, 0x08, 0x69, 0x8f, 0xb3, 0x16, 0xf8,
4714 0xbd, 0x09, 0x0a, 0x75, 0x4a, 0x55, 0x8a, 0x91, 0x38, 0x6c, 0xc0, 0x07,
4715 0xd2, 0xb2, 0x02, 0x6a, 0x1e, 0x92, 0x87, 0x46, 0x81, 0x69, 0x94, 0x94,
4716 0x16, 0x99, 0x55, 0x84, 0x9a, 0x27, 0x0f, 0xa1, 0x4d, 0xf8, 0x1f, 0xff,
4717 0xf8, 0xf1, 0xa7, 0x0e, 0x78, 0x30, 0x98, 0x73, 0x15, 0x96, 0x09, 0x4c,
4718 0x85, 0x24, 0x63, 0xe2, 0x8a, 0xc1, 0x76, 0x88, 0xa7, 0xe8, 0xd5, 0xda,
4719 0x42, 0x01, 0xf2, 0xb5, 0xad, 0xe0, 0x4a, 0xff, 0x41, 0xab, 0xcb, 0xad,
4720 0x31, 0x67, 0x4e, 0x3f, 0x45, 0xfa, 0xbd, 0x8f, 0xda, 0xb8, 0xe4, 0x36,
4721 0xbd, 0xd4, 0xb7, 0x37, 0x94, 0x4b, 0x51, 0x76, 0x71, 0x3c, 0xd5, 0xb3,
4722 0x6f, 0x2f, 0x4e, 0xdc, 0x95, 0x2f, 0x58, 0x89, 0xaf, 0xb0, 0x12, 0xad,
4723 0x69, 0xf3, 0xe4, 0x37, 0x83, 0x26, 0xc1, 0x88, 0xa7, 0x07, 0xe0, 0x5b,
4724 0xb7, 0xd4, 0x19, 0x68, 0x94, 0xac, 0x98, 0xb5, 0xf9, 0x7b, 0x84, 0xc9,
4725 0xa3, 0x68, 0xb0, 0xc9, 0x48, 0x6a, 0xb5, 0x2b, 0x74, 0x26, 0x81, 0xf5,
4726 0xaf, 0x8e, 0x3d, 0x17, 0xdd, 0x5a, 0x23, 0xd0, 0xe5, 0xc9, 0xbb, 0x47,
4727 0x85, 0x6d, 0xc0, 0xd5, 0x7b, 0xbd, 0x0f, 0xab, 0xa3, 0x8c, 0x7c, 0x9d,
4728 0x98, 0x6e, 0x3d, 0x64, 0xc9, 0xe4, 0x7e, 0xb6, 0x4e, 0x0d, 0xdc, 0xdd,
4729 0xff, 0xb7, 0xbe, 0xe7, 0xee, 0xe8, 0x42, 0x5f, 0x58, 0xf7, 0x5b, 0x19,
4730 0xb5, 0xc3, 0x93, 0x81, 0xef, 0xa6, 0x84, 0x57, 0xe5, 0x80, 0x75, 0x05,
4731 0x96, 0x26, 0x1d, 0x8c, 0x73, 0xeb, 0xfa, 0xf1, 0xf5, 0xf1, 0xc1, 0x91,
4732 0x0d, 0x76, 0xf4, 0xbf, 0xe0, 0x1a, 0x69, 0x7e, 0x84, 0x49, 0x22, 0x2c,
4733 0x7b, 0x2b, 0xbb, 0x56, 0x62, 0xc1, 0xfc, 0xb9, 0xc1, 0xef, 0xb6, 0x7d,
4734 0xd2, 0xcc, 0x7e, 0x0a, 0xf1, 0x55, 0x9a, 0x7c, 0x25, 0xe3, 0x11, 0xfc,
4735 0x9b, 0x9b, 0x8f, 0xf0, 0x36, 0x19, 0x78, 0xee, 0x3a, 0xeb, 0x4b, 0x05,
4736 0x35, 0x64, 0x03, 0x79, 0x0e, 0xb3, 0xb0, 0x5e, 0xc8, 0x7f, 0xd7, 0x1c,
4737 0x12, 0xc7, 0xa0, 0x1f, 0xd2, 0x47, 0x43, 0xda, 0xac, 0xeb, 0xa0, 0xe2,
4738 0xd5, 0x7d, 0x32, 0x61, 0xfd, 0x7f, 0xcd, 0xd6, 0x13, 0x02, 0x6e, 0xa4,
4739 0x0f, 0x9b, 0x83, 0x0b, 0xaa, 0xd5, 0x7b, 0x32, 0xf2, 0x24, 0x68, 0xbd,
4740 0x06, 0x7d, 0xd7, 0x24, 0x28, 0xab, 0xf5, 0x34, 0x6b, 0xd5, 0xe1, 0x21,
4741 0xcd, 0x51, 0x56, 0x64, 0xa0, 0x58, 0xcf, 0xf8, 0xa5, 0x9b, 0x38, 0x20,
4742 0x0d, 0xcc, 0x94, 0x39, 0x10, 0xe9, 0xfb, 0x0e, 0x35, 0x6f, 0x1e, 0x8e,
4743 0x76, 0xb1, 0x13, 0x87, 0x13, 0x50, 0x76, 0xba, 0x15, 0xd6, 0x02, 0x11,
4744 0x5b, 0xce, 0xcc, 0xd5, 0x42, 0xa2, 0x9c, 0x8f, 0xa5, 0x9f, 0x0c, 0x41,
4745 0x3d, 0xad, 0x33, 0xa7, 0x56, 0x9b, 0xd7, 0xb9, 0x55, 0xd8, 0xb1, 0x58,
4746 0x33, 0xc2, 0x79, 0x8c, 0x86, 0x97, 0x42, 0xf2, 0x17, 0x9d, 0x1b, 0xd3,
4747 0xdb, 0xd6, 0x11, 0xc6, 0x67, 0x6a, 0x59, 0xad, 0xae, 0xae, 0x0c, 0x2d,
4748 0x25, 0xf7, 0x7d, 0x74, 0xd4, 0xd7, 0xc9, 0xce, 0x47, 0x98, 0x7c, 0x9d,
4749 0x33, 0x33, 0x21, 0xe3, 0xe9, 0x3a, 0x2f, 0x8f, 0x0e, 0xc7, 0x53, 0x94,
4750 0x39, 0xb5, 0xcd, 0xa5, 0x22, 0x24, 0x05, 0x34, 0x29, 0xf8, 0x12, 0x0a,
4751 0xec, 0x08, 0x6e, 0x88, 0xf7, 0x6d, 0xed, 0xac, 0x75, 0x89, 0x24, 0x6b,
4752 0x94, 0x19, 0xbb, 0xd9, 0x56, 0x91, 0xa4, 0x35, 0x1d, 0xb6, 0x4e, 0x18,
4753 0xa9, 0xfb, 0xeb, 0xf4, 0xce, 0x6a, 0xb9, 0xa1, 0x67, 0x1d, 0xd9, 0x07,
4754 0xd6, 0x09, 0x8b, 0x1d, 0x6b, 0x24, 0x40, 0xd2, 0xa7, 0x23, 0x66, 0x0d,
4755 0x0b, 0x96, 0x73, 0x9a, 0xcf, 0x91, 0x2a, 0x1a, 0xa3, 0x04, 0xe0, 0x3e,
4756 0x4b, 0x76, 0x33, 0x94, 0xf2, 0x75, 0x5e, 0x56, 0xfb, 0xbd, 0x7a, 0xf1,
4757 0x09, 0xb5, 0x2d, 0xea, 0x22, 0xa4, 0x84, 0x5b, 0x43, 0x39, 0xd1, 0xc5,
4758 0x7d, 0x53, 0x95, 0x9d, 0xe5, 0x79, 0x1c, 0xc4, 0x5a, 0xab, 0x36, 0x57,
4759 0xa6, 0xd3, 0x99, 0xbf, 0x68, 0x91, 0x6a, 0xaf, 0x50, 0xf0, 0x04, 0xdc,
4760 0x95, 0x5f, 0x53, 0x3f, 0xbe, 0x1f, 0x1e, 0xae, 0xca, 0x36, 0xf8, 0x76,
4761 0x31, 0xfc, 0x1a, 0x4d, 0xfe, 0xa5, 0xe7, 0x2e, 0xde, 0xf2, 0xa8, 0xff,
4762 0xd5, 0x7e, 0x6f, 0x0d, 0x58, 0x3a, 0xa4, 0x30, 0x29, 0x57, 0x85, 0x95,
4763 0x94, 0x84, 0xa7, 0x5d, 0x3b, 0x0a, 0xe2, 0xe6, 0xd9, 0x6c, 0x5b, 0xe7,
4764 0xdb, 0xc2, 0x85, 0x5d, 0xe9, 0x3c, 0x0a, 0xf5, 0x5f, 0x02, 0x17, 0x36,
4765 0x1b, 0xe6, 0x57, 0x43, 0x54, 0xca, 0xe0, 0xaa, 0x88, 0x1c, 0x82, 0x09,
4766 0xb6, 0x23, 0x08, 0xd9, 0x90, 0x9c, 0x32, 0x9b, 0x75, 0x9d, 0xd7, 0x8a,
4767 0xaa, 0x2e, 0xdc, 0xd5, 0x55, 0x3b, 0xa3, 0x4b, 0xba, 0xcf, 0xd7, 0x1d,
4768 0x7b, 0xdd, 0x51, 0x7e, 0x71, 0x6d, 0x89, 0xb8, 0x28, 0x52, 0xd2, 0x22,
4769 0x2d, 0x8a, 0x7d, 0xc0, 0xc0, 0x06, 0x72, 0xa6, 0x4b, 0xc8, 0x91, 0xfd,
4770 0x09, 0x0b, 0xf1, 0x22, 0xc1, 0x0d, 0x40, 0x77, 0xff, 0x2b, 0x29, 0xb4,
4771 0x34, 0xea, 0x0a, 0x16, 0xfb, 0xb4, 0x89, 0x66, 0x5d, 0x4c, 0xe4, 0xb6,
4772 0xd5, 0x72, 0x64, 0xd7, 0xd1, 0x29, 0xac, 0x8b, 0x1a, 0x07, 0x70, 0x7d,
4773 0x9c, 0x1f, 0x0a, 0x25, 0xf7, 0x93, 0xbe, 0x2d, 0xe6, 0x7b, 0x57, 0x54,
4774 0x85, 0xdf, 0x32, 0xed, 0x17, 0x18, 0xf2, 0x37, 0x24, 0xb3, 0xcb, 0xd5,
4775 0x64, 0x31, 0x7b, 0x16, 0xbd, 0xa0, 0x3f, 0x3e, 0xef, 0xf0, 0x02, 0x4a,
4776 0xb0, 0x45, 0x0d, 0x73, 0xb5, 0xcb, 0xf0, 0xf7, 0x27, 0x7b, 0x2c, 0xa5,
4777 0xef, 0xa9, 0xcd, 0x69, 0x0a, 0x96, 0x8a, 0x59, 0x7a, 0x9d, 0x56, 0xa5,
4778 0xa6, 0xa4, 0xe0, 0x85, 0xb5, 0x25, 0xd2, 0x78, 0x86, 0x76, 0xf7, 0x3e,
4779 0x8b, 0x26, 0x69, 0x15, 0xbd, 0x3e, 0x7a, 0x26, 0x55, 0x16, 0xcb, 0xd5,
4780 0xc2, 0x17, 0x19, 0x07, 0x6d, 0x72, 0xc4, 0xfd, 0xeb, 0x33, 0xf5, 0xdb,
4781 0x6a, 0x32, 0x6f, 0x55, 0x3b, 0xba, 0x4d, 0x1e, 0x06, 0x4d, 0x9f, 0xda,
4782 0x95, 0xf9, 0xff, 0x02, 0xb2, 0x6f, 0x27, 0x74, 0xdc, 0x9a, 0xf9, 0x1f,
4783 0xdb, 0xb7, 0x0b, 0x1a, 0x3f, 0xf5, 0xa0, 0xb4, 0x0a, 0x6d, 0x97, 0x0d,
4784 0xd6, 0x6f, 0x16, 0x04, 0x5e, 0xf9, 0xf1, 0xe1, 0xb9, 0xa0, 0x6a, 0xc7,
4785 0x8d, 0x6c, 0xf5, 0xc7, 0x18, 0x82, 0x3f, 0xad, 0x7b, 0x19, 0x04, 0xeb,
4786 0x69, 0x34, 0x38, 0xc3, 0x79, 0x92, 0x5d, 0xaf, 0x2b, 0xa0, 0x19, 0x9d,
4787 0xe0, 0xd9, 0x06, 0x62, 0xec, 0x14, 0x6f, 0x04, 0x29, 0xc0, 0x62, 0x0b,
4788 0xf0, 0x56, 0x48, 0xa7, 0x5c, 0x9e, 0xbd, 0x45, 0x51, 0xbb, 0xf2, 0x24,
4789 0xd0, 0x56, 0xd7, 0xb5, 0x58, 0x49, 0x89, 0x8d, 0x83, 0x25, 0xc3, 0x9d,
4790 0xa2, 0xdd, 0xd1, 0xfb, 0x41, 0x58, 0x51, 0x4e, 0xa9, 0xde, 0x51, 0x3a,
4791 0xae, 0x18, 0xb6, 0xb6, 0xca, 0xb4, 0x6a, 0xf6, 0x86, 0xdb, 0x16, 0xa0,
4792 0xd9, 0x9c, 0x03, 0x2d, 0x85, 0x1c, 0x21, 0x7b, 0xa4, 0x8b, 0xaf, 0x63,
4793 0x14, 0x03, 0x09, 0x24, 0x2f, 0x45, 0x35, 0x62, 0xa1, 0xc9, 0x5a, 0x37,
4794 0x70, 0xf9, 0x6d, 0xc0, 0x7d, 0x6c, 0x86, 0x84, 0x5e, 0x0c, 0x04, 0x23,
4795 0x29, 0xf2, 0x16, 0xfc, 0xba, 0x5d, 0xf9, 0x8e, 0x9b, 0x71, 0x1b, 0x18,
4796 0x01, 0x1b, 0x99, 0x82, 0x21, 0x1f, 0xdd, 0x03, 0x36, 0x05, 0x13, 0xaf,
4797 0xe9, 0x03, 0x68, 0x28, 0x1a, 0xed, 0xae, 0x6f, 0xec, 0xe0, 0x9d, 0xa3,
4798 0x51, 0x30, 0xaa, 0x13, 0xb3, 0x76, 0xba, 0x86, 0xc4, 0x04, 0xda, 0xdb,
4799 0xaf, 0x4e, 0x4e, 0x8f, 0xb7, 0xa2, 0x57, 0x09, 0x12, 0xed, 0xeb, 0xfd,
4800 0x86, 0x88, 0xfd, 0x4e, 0x7e, 0x62, 0x4b, 0xa4, 0xb7, 0xb6, 0xae, 0x30,
4801 0xbb, 0xfa, 0x98, 0x60, 0x86, 0xca, 0xaa, 0xc1, 0xe0, 0x94, 0xe4, 0x93,
4802 0x1c, 0x08, 0x33, 0xe3, 0x48, 0x87, 0x9d, 0x17, 0x90, 0x84, 0x76, 0x98,
4803 0xef, 0x01, 0x26, 0x56, 0xd3, 0xe3, 0x45, 0xe7, 0xf0, 0x48, 0x2d, 0xf0,
4804 0xce, 0x7d, 0x57, 0x24, 0x55, 0x58, 0xe4, 0xbd, 0x5c, 0x57, 0xcc, 0xaf,
4805 0x4c, 0x7f, 0x16, 0xd8, 0x29, 0xe0, 0xc9, 0x8b, 0x7c, 0xe6, 0x68, 0xf5,
4806 0x84, 0xfb, 0xbf, 0x51, 0xa0, 0x7a, 0x88, 0x63, 0xfc, 0x8a, 0x0f, 0x8f,
4807 0xce, 0xac, 0xca, 0x73, 0x21, 0x11, 0xe4, 0x03, 0x3f, 0x8c, 0xfc, 0xcb,
4808 0x31, 0xef, 0xaf, 0x3c, 0xae, 0x95, 0x91, 0x83, 0x21, 0x71, 0xad, 0x8a,
4809 0x0e, 0xb9, 0xb0, 0xaf, 0x45, 0x22, 0x06, 0xa1, 0x03, 0x9e, 0x46, 0x0b,
4810 0x65, 0x21, 0x80, 0xb0, 0x83, 0xcc, 0xc0, 0x3f, 0x5a, 0x5c, 0x8f, 0xb3,
4811 0x66, 0x5a, 0x05, 0x1c, 0x6e, 0x93, 0x56, 0x40, 0x5b, 0x41, 0x48, 0xc1,
4812 0xc8, 0xc8, 0x54, 0xde, 0xd9, 0xdf, 0x0d, 0x4b, 0x7f, 0x64, 0x5a, 0xd8,
4813 0x0a, 0xf5, 0x30, 0x7e, 0xbb, 0xe4, 0x89, 0xbf, 0xb1, 0x68, 0xfe, 0x6d,
4814 0x95, 0xdd, 0x0e, 0xb5, 0x22, 0xa5, 0x32, 0xb5, 0x96, 0xdd, 0xbb, 0xef,
4815 0x3b, 0x17, 0xea, 0x00, 0xca, 0x41, 0x00, 0x7f, 0xed, 0xd2, 0x8c, 0x71,
4816 0x40, 0x5a, 0x36, 0x78, 0xac, 0x10, 0x45, 0x68, 0x41, 0x30, 0xe2, 0x9a,
4817 0x64, 0x67, 0xca, 0x10, 0x0b, 0xbe, 0xb3, 0xf6, 0xac, 0x46, 0xa6, 0x36,
4818 0xdd, 0x1b, 0x79, 0xc6, 0xbe, 0x16, 0xb5, 0x6f, 0xa9, 0x89, 0x4b, 0x37,
4819 0x56, 0x1a, 0x03, 0x36, 0xb8, 0x86, 0x30, 0x62, 0xa1, 0xc0, 0xe2, 0xb3,
4820 0xde, 0x15, 0xde, 0x14, 0xb2, 0x2b, 0x26, 0x26, 0x6d, 0x93, 0xaf, 0x5e,
4821 0x4a, 0x4a, 0x59, 0x64, 0x14, 0xe9, 0xa5, 0x63, 0xa4, 0x72, 0x1d, 0x8c,
4822 0x1a, 0x9d, 0x93, 0x3b, 0x09, 0x1b, 0x08, 0xfd, 0xd6, 0xbe, 0x9c, 0xce,
4823 0x73, 0xa9, 0xcf, 0x71, 0x1f, 0x7a, 0xcb, 0xfe, 0x5d, 0xce, 0x7c, 0x3e,
4824 0xd0, 0x74, 0xa7, 0x0f, 0x3b, 0x80, 0x58, 0x21, 0x13, 0xa7, 0x91, 0x3a,
4825 0x21, 0x71, 0x05, 0xc6, 0xc4, 0x59, 0xd0, 0x86, 0x00, 0x32, 0x1d, 0xef,
4826 0x93, 0x1e, 0x78, 0x9d, 0xfc, 0x3b, 0xc3, 0x80, 0x15, 0xc1, 0x69, 0xeb,
4827 0x23, 0xda, 0xb6, 0x79, 0x99, 0xca, 0xba, 0x38, 0x2c, 0x5d, 0x70, 0x99,
4828 0x88, 0xda, 0x78, 0x17, 0x4b, 0x96, 0x75, 0x44, 0x09, 0x0e, 0x01, 0x64,
4829 0xd7, 0xe2, 0x60, 0xc0, 0xb7, 0xa2, 0xdb, 0xcb, 0x2e, 0xfc, 0x92, 0xa6,
4830 0xe4, 0x04, 0xa3, 0x0c, 0xe0, 0x81, 0x7a, 0x57, 0xb1, 0xe0, 0x90, 0xd1,
4831 0x86, 0x92, 0x4d, 0x6b, 0xad, 0xf5, 0x9a, 0x26, 0xd7, 0xf8, 0x34, 0x4c,
4832 0x5d, 0x15, 0x67, 0x9e, 0xe7, 0x8f, 0x39, 0x20, 0xe9, 0x6a, 0x3d, 0xc2,
4833 0x08, 0x78, 0x01, 0xe2, 0x24, 0x1d, 0x35, 0xda, 0x99, 0xb0, 0x9c, 0xd6,
4834 0xc8, 0x3c, 0xbe, 0x35, 0x22, 0xe4, 0x46, 0xde, 0x91, 0xe6, 0xea, 0xc9,
4835 0xc4, 0xc5, 0x0c, 0x29, 0x6f, 0x4a, 0xeb, 0x83, 0x4b, 0xc9, 0x72, 0xb0,
4836 0x10, 0x83, 0x05, 0xcf, 0xe7, 0xb5, 0x5e, 0x05, 0x25, 0x0c, 0xd6, 0x0e,
4837 0x16, 0xe5, 0xd2, 0x2c, 0x7c, 0x5a, 0x9b, 0xe4, 0x76, 0xf8, 0x34, 0x30,
4838 0x49, 0x23, 0x5f, 0x8b, 0x88, 0x34, 0x2e, 0x92, 0x80, 0x51, 0x4d, 0x4a,
4839 0x2b, 0x6a, 0xa9, 0xb7, 0x35, 0x72, 0x38, 0x47, 0xc9, 0x95, 0x00, 0xbc,
4840 0x71, 0x4d, 0xc5, 0x22, 0x64, 0xf0, 0xdd, 0xc4, 0xef, 0xdf, 0x8f, 0xca,
4841 0x44, 0x4a, 0xf8, 0x94, 0xe5, 0x1c, 0xd9, 0x82, 0xf5, 0x52, 0x45, 0xc3,
4842 0x6f, 0xb4, 0x4e, 0xd9, 0x55, 0x7a, 0xcd, 0x78, 0x3b, 0xfc, 0xb7, 0x2b,
4843 0x37, 0xda, 0x25, 0x45, 0x6b, 0xbd, 0x27, 0xff, 0xa4, 0x57, 0x3b, 0xe0,
4844 0x50, 0x51, 0xd8, 0x91, 0x68, 0x9f, 0x91, 0x11, 0x98, 0xb7, 0x32, 0xb7,
4845 0xed, 0x65, 0x50, 0xbb, 0x29, 0x86, 0x7a, 0x9e, 0x78, 0xa0, 0x7f, 0xad,
4846 0x42, 0x9f, 0x6f, 0x54, 0x0e, 0x8b, 0x96, 0x13, 0xc8, 0x2a, 0xdc, 0x59,
4847 0xfd, 0x6c, 0xdc, 0xd8, 0x42, 0x35, 0xab, 0x7a, 0x47, 0x6e, 0x0d, 0x0c,
4848 0xab, 0xb6, 0x37, 0xf2, 0xae, 0x9c, 0x3f, 0xda, 0x47, 0xcc, 0xa4, 0x18,
4849 0xf6, 0x61, 0x14, 0x9d, 0x2d, 0x03, 0x01, 0xbe, 0x49, 0xd2, 0xc2, 0x7b,
4850 0xb9, 0x4b, 0x77, 0x09, 0xc4, 0x6e, 0x6e, 0x0f, 0x16, 0xa5, 0x22, 0xeb,
4851 0xe5, 0x1f, 0x74, 0x06, 0x65, 0xd8, 0xc2, 0xd5, 0xaf, 0x3e, 0x33, 0xf1,
4852 0x86, 0xd2, 0x48, 0xc8, 0x1e, 0x23, 0xbb, 0xaf, 0xc5, 0x0c, 0xa3, 0x57,
4853 0x4a, 0x24, 0x20, 0x32, 0xe3, 0x63, 0x09, 0x10, 0xbf, 0xd0, 0xa0, 0x3c,
4854 0xd4, 0x7c, 0x6a, 0x70, 0x63, 0x93, 0xed, 0xb0, 0xa9, 0xec, 0xde, 0x83,
4855 0x2e, 0x97, 0xbd, 0x38, 0x84, 0x58, 0xac, 0x03, 0xc2, 0x5d, 0x85, 0xfb,
4856 0x04, 0xed, 0x6f, 0xb9, 0xca, 0xdb, 0xde, 0xb9, 0x8f, 0x83, 0xa7, 0x83,
4857 0x24, 0x17, 0x99, 0xcb, 0xc1, 0x00, 0x5c, 0x2a, 0xbd, 0x8b, 0x0a, 0x08,
4858 0x7d, 0xfd, 0x04, 0xdc, 0x05, 0xaa, 0x93, 0x35, 0x05, 0xb3, 0xd1, 0xdc,
4859 0xdf, 0x57, 0x39, 0x72, 0x9d, 0xbf, 0x93, 0xfc, 0xcc, 0x59, 0xbe, 0x62,
4860 0x78, 0x85, 0xfc, 0xb4, 0xe9, 0x9d, 0x4b, 0xa4, 0xfc, 0x64, 0xc9, 0x1e,
4861 0x3f, 0x76, 0xd1, 0x75, 0x10, 0x43, 0xbb, 0x0c, 0xc9, 0xfd, 0xe8, 0xaf,
4862 0x7f, 0x1d, 0x44, 0x7f, 0xed, 0xd1, 0xff, 0xc8, 0x8e, 0xfc, 0x2b, 0xcd,
4863 0xe7, 0x5f, 0x85, 0x66, 0xf8, 0xaf, 0x77, 0xa4, 0x94, 0x50, 0x6b, 0xb0,
4864 0x9c, 0x73, 0xb6, 0x9c, 0xa7, 0x90, 0xed, 0xc8, 0x70, 0x95, 0xa8, 0xa5,
4865 0x72, 0x67, 0xb3, 0x81, 0x2f, 0x19, 0x62, 0x6e, 0xaa, 0x04, 0x6c, 0x41,
4866 0x0b, 0xb6, 0x5a, 0x64, 0x02, 0xa2, 0xd6, 0x65, 0x87, 0x58, 0xb7, 0x8e,
4867 0xe2, 0x38, 0xea, 0xff, 0xde, 0x42, 0x21, 0x95, 0x61, 0x1d, 0xc3, 0xb8,
4868 0x2f, 0x5e, 0x33, 0xb9, 0x0e, 0x0a, 0x68, 0xc7, 0xdd, 0x75, 0x20, 0xc4,
4869 0x54, 0x3c, 0xcb, 0xe0, 0xb3, 0x01, 0x7d, 0xbe, 0xba, 0xc0, 0xf4, 0xc8,
4870 0xe7, 0xfb, 0xfd, 0xf2, 0xe6, 0x01, 0x07, 0xb6, 0x76, 0xc9, 0x15, 0x6e,
4871 0xa3, 0x5e, 0x76, 0x50, 0x7e, 0xb7, 0xd5, 0x97, 0xa7, 0x80, 0xf1, 0xa7,
4872 0x0e, 0xc7, 0x52, 0x42, 0xc5, 0x42, 0x3d, 0xec, 0x0f, 0xfb, 0x38, 0x30,
4873 0x42, 0x92, 0xd5, 0x35, 0x55, 0x10, 0x3c, 0x23, 0x89, 0x54, 0x41, 0xe8,
4874 0xac, 0x60, 0x6f, 0x35, 0xa0, 0x25, 0xf9, 0xc5, 0x6a, 0xc4, 0x3b, 0xcf,
4875 0x22, 0xdc, 0xc0, 0xb5, 0xc1, 0xa8, 0x01, 0xd4, 0xa6, 0x43, 0x31, 0xe6,
4876 0x2c, 0x7b, 0x37, 0xad, 0x42, 0x62, 0x7d, 0xa6, 0xe7, 0xf6, 0x34, 0x64,
4877 0xb8, 0x55, 0xb2, 0xbb, 0x02, 0x07, 0x47, 0x99, 0x92, 0xc1, 0xf9, 0xd0,
4878 0xa1, 0x8a, 0x7c, 0xfe, 0x10, 0x77, 0x03, 0x34, 0xb5, 0x5c, 0xbe, 0xe1,
4879 0x3e, 0x53, 0x55, 0x32, 0xce, 0x07, 0x42, 0x48, 0x6a, 0x96, 0x6a, 0x90,
4880 0x36, 0xd0, 0x11, 0x8d, 0x69, 0x19, 0xad, 0xdc, 0xa7, 0x97, 0x51, 0x6f,
4881 0xad, 0xae, 0xef, 0x35, 0x5f, 0x38, 0xe5, 0x0c, 0x6c, 0x5d, 0x75, 0xe1,
4882 0xe0, 0x98, 0xc6, 0x99, 0xa3, 0x35, 0x9a, 0x23, 0x39, 0x58, 0xab, 0x46,
4883 0x3a, 0x6e, 0xd1, 0x50, 0x41, 0xad, 0xf1, 0xcb, 0x89, 0x43, 0x53, 0xe8,
4884 0xa8, 0x74, 0x67, 0x72, 0xb5, 0xd6, 0x75, 0xa5, 0x01, 0xcc, 0x58, 0xe5,
4885 0xac, 0xb2, 0x5b, 0x25, 0x49, 0x52, 0x63, 0x6e, 0xd3, 0x0e, 0xcd, 0xbf,
4886 0xdb, 0x41, 0xb9, 0xa5, 0x1e, 0x07, 0x41, 0x2b, 0xae, 0xc9, 0xa2, 0x0e,
4887 0x8f, 0x21, 0x97, 0xd7, 0x9f, 0xc2, 0x65, 0x4c, 0xef, 0xad, 0xb2, 0x99,
4888 0x91, 0xe5, 0xba, 0xb4, 0xeb, 0xb5, 0x92, 0xcd, 0xdf, 0xc5, 0x17, 0x95,
4889 0xa9, 0xc9, 0x2a, 0x7f, 0x3b, 0xed, 0x02, 0xff, 0x4d, 0xe9, 0xaa, 0xc6,
4890 0x83, 0xe1, 0xa6, 0xb5, 0x32, 0xbb, 0x5b, 0x2e, 0xc5, 0x0c, 0x95, 0xa4,
4891 0xa4, 0x88, 0xa3, 0xfa, 0x18, 0x7b, 0x37, 0xb9, 0x64, 0xde, 0xf7, 0xf6,
4892 0xb9, 0x28, 0xa4, 0x2a, 0x07, 0x3f, 0xca, 0xb6, 0x6e, 0x06, 0xaf, 0xc1,
4893 0xd7, 0x67, 0xaf, 0x8f, 0x1d, 0x0e, 0x52, 0xae, 0xa4, 0xfc, 0x93, 0x4e,
4894 0xea, 0x95, 0x11, 0xe2, 0xd5, 0x96, 0x93, 0x38, 0x68, 0x93, 0xe0, 0xca,
4895 0x14, 0xd1, 0xd5, 0x73, 0x79, 0xbf, 0x4a, 0x67, 0x9b, 0x48, 0x1c, 0x7d,
4896 0xfb, 0xe6, 0xe4, 0xfb, 0xa1, 0x5c, 0xba, 0xa5, 0x88, 0xb5, 0x65, 0x4e,
4897 0x5a, 0xd2, 0xa5, 0x78, 0x66, 0x16, 0x1d, 0x09, 0xc8, 0x2a, 0x35, 0x21,
4898 0x75, 0x10, 0xa0, 0xfb, 0x69, 0x26, 0xee, 0x72, 0x69, 0x90, 0xce, 0x8e,
4899 0xb3, 0x8c, 0x54, 0x38, 0x68, 0x0f, 0xb0, 0xec, 0x5d, 0x98, 0xce, 0xfa,
4900 0x4c, 0x44, 0x07, 0xe7, 0xe7, 0x47, 0x07, 0x97, 0x07, 0x6e, 0x6c, 0xe0,
4901 0x19, 0x80, 0xae, 0xc3, 0x45, 0x8a, 0xcd, 0x23, 0xad, 0x64, 0xd0, 0xff,
4902 0x03, 0x03, 0xfe, 0x9b, 0xda, 0xef, 0xfc, 0xe2, 0x8c, 0xaf, 0xc3, 0x7f,
4903 0xf8, 0xeb, 0x81, 0xaf, 0x49, 0x84, 0x52, 0x05, 0xed, 0xca, 0x30, 0x7b,
4904 0x5b, 0xdc, 0xbf, 0x7b, 0xd7, 0x3f, 0x0d, 0x00, 0x4b, 0x86, 0x66, 0xf4,
4905 0x8e, 0x17, 0xb4, 0x98, 0x3a, 0x03, 0xc5, 0x66, 0x03, 0x13, 0x80, 0xf4,
4906 0xd4, 0xf5, 0x03, 0xc9, 0xbd, 0x4e, 0x35, 0xda, 0x05, 0x9b, 0xac, 0x39,
4907 0xd9, 0xd5, 0x64, 0x1a, 0x56, 0xd0, 0x5d, 0xec, 0x19, 0x62, 0xf9, 0x9a,
4908 0xf1, 0x4c, 0x35, 0xc9, 0x85, 0x9a, 0xcb, 0xe3, 0xd9, 0xc5, 0x44, 0x03,
4909 0x09, 0xd0, 0x2f, 0x17, 0xd2, 0xea, 0x91, 0xf6, 0xd6, 0xd3, 0x56, 0xb7,
4910 0xf6, 0x8e, 0x78, 0xaa, 0x49, 0xce, 0x4d, 0x1e, 0x5b, 0x13, 0xf2, 0x7b,
4911 0x52, 0x7c, 0x43, 0xcb, 0x59, 0x93, 0x81, 0xd3, 0x0f, 0x5a, 0x0f, 0x55,
4912 0x8e, 0x9c, 0x97, 0x4d, 0xa5, 0xb6, 0x2f, 0x59, 0xf5, 0x54, 0xa8, 0xa0,
4913 0x9a, 0x16, 0xb3, 0xa6, 0x31, 0xeb, 0x53, 0x28, 0xe7, 0x81, 0x24, 0xa8,
4914 0xb6, 0x6f, 0xcc, 0xbc, 0xb4, 0xf4, 0x68, 0xb9, 0x62, 0xef, 0x02, 0xff,
4915 0x6b, 0x7b, 0x77, 0xb4, 0xd3, 0x6b, 0xf7, 0x1e, 0x40, 0x47, 0x78, 0x70,
4916 0x8c, 0x19, 0x4e, 0xc8, 0xfe, 0xf2, 0x0f, 0x77, 0x50, 0x0b, 0x5e, 0xc6,
4917 0x19, 0x62, 0x58, 0x5d, 0x7d, 0x19, 0x9e, 0xb5, 0x3c, 0x6d, 0xe2, 0x2d,
4918 0xf6, 0x2a, 0x39, 0xcb, 0x91, 0xbc, 0x17, 0xf3, 0x9d, 0x03, 0x5e, 0x83,
4919 0x5e, 0xf7, 0x04, 0x67, 0x33, 0x89, 0x7c, 0x35, 0xe6, 0xf9, 0xd1, 0xc2,
4920 0x35, 0xeb, 0xb3, 0x94, 0x9c, 0x0c, 0xb8, 0x1f, 0xaf, 0xd5, 0x76, 0x35,
4921 0x17, 0xf3, 0x6d, 0x42, 0x76, 0xdf, 0x1c, 0x99, 0x37, 0xec, 0xf4, 0x59,
4922 0x57, 0x15, 0xb2, 0x86, 0x33, 0x48, 0x14, 0x59, 0x89, 0x37, 0xe2, 0x7a,
4923 0x15, 0x48, 0x3e, 0x51, 0xd5, 0xf5, 0x4d, 0x17, 0x62, 0x18, 0x83, 0xe9,
4924 0xac, 0x75, 0x88, 0x28, 0x88, 0x10, 0x71, 0x0e, 0x56, 0x58, 0xae, 0x17,
4925 0x1c, 0x79, 0x98, 0x24, 0xce, 0xd0, 0x96, 0x4f, 0x58, 0xbe, 0x28, 0xed,
4926 0xd1, 0xf4, 0x2e, 0x9d, 0xad, 0x5a, 0x61, 0xbb, 0xe6, 0xeb, 0xa8, 0xbb,
4927 0x9b, 0x96, 0x61, 0x36, 0x09, 0x3c, 0x10, 0xfc, 0x44, 0xee, 0xfc, 0x53,
4928 0x28, 0xf7, 0x80, 0x4d, 0xd5, 0xf2, 0xb8, 0x5d, 0x09, 0xb5, 0x93, 0x1c,
4929 0x86, 0x97, 0x87, 0xe7, 0xef, 0xbe, 0x39, 0x3e, 0x3e, 0x3f, 0x39, 0x3a,
4930 0x3d, 0x56, 0x33, 0xc0, 0xfd, 0xe8, 0xcd, 0xe5, 0xb7, 0xa7, 0xc6, 0xf6,
4931 0x64, 0xcb, 0xd4, 0xf2, 0xd9, 0x30, 0x1c, 0x85, 0x9b, 0x3b, 0x4d, 0xb3,
4932 0xd5, 0xfb, 0x01, 0x2a, 0xb8, 0x93, 0x2c, 0x1f, 0x9c, 0x7c, 0x3f, 0x88,
4933 0xbe, 0x3e, 0x1f, 0xbe, 0xfd, 0xbe, 0x95, 0x8c, 0x1e, 0x00, 0x40, 0x49,
4934 0x09, 0x35, 0x2f, 0xfb, 0x0e, 0x0f, 0x0a, 0x9e, 0x52, 0x3f, 0x76, 0xbb,
4935 0x65, 0x76, 0x14, 0xee, 0xf8, 0xc8, 0xf8, 0x77, 0x5d, 0xa4, 0x42, 0xcf,
4936 0x95, 0x8b, 0x7d, 0x63, 0xf5, 0x3b, 0x0c, 0xb7, 0x78, 0xc1, 0x49, 0x6d,
4937 0xa3, 0x50, 0xb0, 0x1e, 0xa2, 0x17, 0xf4, 0x47, 0x17, 0xeb, 0xc7, 0xf6,
4938 0x78, 0xfc, 0x35, 0xd7, 0x2a, 0x14, 0x26, 0x42, 0x7e, 0xd2, 0x25, 0x2b,
4939 0x8f, 0x0c, 0xd4, 0xa5, 0x21, 0x51, 0xcd, 0x75, 0xd3, 0x94, 0xd9, 0xa2,
4940 0x75, 0xbf, 0x72, 0x2d, 0xd8, 0xd9, 0x6c, 0x17, 0xa9, 0x6e, 0x93, 0xf5,
4941 0x57, 0xa4, 0x3b, 0xa1, 0x8f, 0x7e, 0x98, 0x58, 0xab, 0x35, 0x46, 0x7e,
4942 0x76, 0xe4, 0x2c, 0x67, 0xf5, 0x0c, 0x73, 0x2b, 0x18, 0xa0, 0x4c, 0x5b,
4943 0x47, 0x91, 0x1f, 0xe1, 0x2b, 0x59, 0x06, 0xad, 0xa5, 0x24, 0xe5, 0x47,
4944 0xc7, 0x17, 0x03, 0x21, 0xdb, 0x0a, 0x89, 0xb6, 0x3c, 0xb5, 0x9c, 0x46,
4945 0x3b, 0x49, 0x0d, 0x76, 0x46, 0xe1, 0x41, 0x56, 0xf9, 0xdf, 0xc7, 0xb1,
4946 0x75, 0x5b, 0x4c, 0xa2, 0x17, 0x73, 0x7a, 0x71, 0xde, 0x9d, 0xd4, 0xa7,
4947 0x9c, 0xf0, 0x9e, 0xd8, 0xbe, 0xc1, 0x49, 0xa0, 0x46, 0x9e, 0x96, 0x93,
4948 0xe6, 0x76, 0xec, 0xea, 0xdd, 0xa2, 0xd0, 0xab, 0xe0, 0xaa, 0x41, 0x8d,
4949 0xde, 0x66, 0x06, 0x54, 0x1f, 0xc0, 0xc2, 0xfe, 0x20, 0xea, 0x33, 0xef,
4950 0x02, 0xff, 0x17, 0x8a, 0x52, 0xeb, 0x01, 0xf4, 0x07, 0x6d, 0x52, 0xe6,
4951 0xbe, 0x4e, 0x7b, 0x7f, 0xc4, 0x80, 0x5e, 0x41, 0x05, 0x20, 0x80, 0x0c,
4952 0x80, 0x38, 0xd3, 0xfb, 0xa1, 0x2f, 0x56, 0xcf, 0x9e, 0xaf, 0x08, 0x3e,
4953 0xdb, 0xaa, 0x6c, 0x5d, 0xe1, 0x5d, 0x73, 0xf5, 0xec, 0xb3, 0x75, 0xa5,
4954 0x2c, 0x43, 0x85, 0xa0, 0x80, 0x69, 0xd8, 0x41, 0xca, 0x89, 0x24, 0x8c,
4955 0x31, 0x92, 0x74, 0x6f, 0xb5, 0x0b, 0x9e, 0x0a, 0xca, 0xec, 0xab, 0xf1,
4956 0xf8, 0xe0, 0xfc, 0xa4, 0x39, 0xd5, 0xf4, 0xd3, 0xe1, 0x1b, 0xb0, 0xcb,
4957 0x53, 0x1f, 0xb6, 0x4c, 0x56, 0x7c, 0x90, 0x8a, 0xbb, 0x8f, 0x6c, 0x2a,
4958 0x3e, 0xd6, 0x19, 0xe4, 0xcb, 0x98, 0xb9, 0xe1, 0xb7, 0x7c, 0xa3, 0x63,
4959 0x97, 0x65, 0x07, 0x2f, 0xb9, 0x32, 0xda, 0x29, 0x56, 0xa3, 0x88, 0x6a,
4960 0x95, 0x92, 0xc9, 0x5c, 0xf9, 0x0d, 0x65, 0x6a, 0x0e, 0x2a, 0xe0, 0xb4,
4961 0xac, 0x86, 0x1c, 0xad, 0x58, 0x9f, 0x8b, 0xab, 0x30, 0x71, 0x4b, 0x53,
4962 0x0c, 0x18, 0x2e, 0x45, 0x67, 0x08, 0xb5, 0x32, 0xd0, 0x34, 0xb8, 0x50,
4963 0xb3, 0x26, 0x1a, 0xb6, 0xb0, 0x21, 0x7c, 0x95, 0xbe, 0x4b, 0x93, 0x7b,
4964 0xce, 0x10, 0x3d, 0xf6, 0x74, 0x1a, 0x1a, 0xbb, 0x4b, 0x6b, 0xe4, 0xcd,
4965 0x74, 0xd9, 0x9d, 0xde, 0x90, 0xa1, 0x35, 0x04, 0xec, 0xae, 0xc3, 0x14,
4966 0x0b, 0x2b, 0xfb, 0x35, 0xbb, 0xc5, 0x99, 0x54, 0x53, 0x0b, 0xad, 0x59,
4967 0x95, 0x81, 0x00, 0xf5, 0xce, 0x9d, 0x58, 0x93, 0x41, 0x29, 0xac, 0x6d,
4968 0x2e, 0x47, 0x12, 0x17, 0xcc, 0xbc, 0x30, 0xf2, 0xb7, 0x0f, 0x59, 0x17,
4969 0x9a, 0xa9, 0x99, 0x09, 0xd7, 0xf7, 0x9b, 0xd3, 0xb1, 0xc7, 0xfd, 0x57,
4970 0x4a, 0xe2, 0x0c, 0xb7, 0xc2, 0x98, 0x8d, 0xc7, 0x57, 0x6b, 0xca, 0x9d,
4971 0x96, 0x5a, 0xa9, 0x1c, 0x21, 0x59, 0x04, 0x1c, 0xc5, 0x0a, 0x4e, 0x8b,
4972 0x5a, 0x0a, 0x07, 0xb7, 0xfe, 0x17, 0xc5, 0xe7, 0x71, 0xa2, 0x5b, 0x5b,
4973 0x4b, 0x69, 0x6c, 0x90, 0x39, 0x3d, 0xc2, 0x0a, 0xbd, 0xd8, 0xd6, 0xe0,
4974 0x96, 0x48, 0xa7, 0x7c, 0xa9, 0xbe, 0x0d, 0x0d, 0x9a, 0x1a, 0x39, 0x74,
4975 0x67, 0x9c, 0x0f, 0xf4, 0xc1, 0x5b, 0x9e, 0x71, 0xcb, 0x55, 0xa7, 0x13,
4976 0x79, 0x75, 0xc0, 0x4e, 0x05, 0x8f, 0xb1, 0xda, 0x25, 0x6b, 0xb0, 0xa3,
4977 0x1a, 0xab, 0x60, 0x71, 0x99, 0xb8, 0xd2, 0x97, 0x75, 0x8f, 0x1c, 0x2f,
4978 0xf5, 0x26, 0x5b, 0x2b, 0xd3, 0x10, 0x12, 0xd2, 0xe4, 0x86, 0xee, 0xc8,
4979 0xf5, 0x66, 0xd9, 0x7b, 0xf2, 0xfd, 0xf7, 0x51, 0x9d, 0xd2, 0x65, 0x6b,
4980 0x50, 0xdb, 0x2f, 0x8d, 0x8a, 0x43, 0xa4, 0xe9, 0xf2, 0x0e, 0xf9, 0x32,
4981 0xa0, 0x9f, 0xe2, 0x66, 0x38, 0xe6, 0x82, 0x5b, 0xc6, 0xc8, 0x81, 0xf0,
4982 0xac, 0xe4, 0xa7, 0xc2, 0xef, 0xc2, 0x98, 0x6f, 0x5b, 0x09, 0xfa, 0xe0,
4983 0xe9, 0xc0, 0x01, 0x85, 0x24, 0xc6, 0x84, 0x58, 0x74, 0x38, 0x55, 0xa5,
4984 0xdb, 0xad, 0xa4, 0x7c, 0xef, 0xb3, 0x51, 0x17, 0x9d, 0x77, 0x9b, 0x6e,
4985 0x46, 0xd0, 0x93, 0x18, 0x11, 0x24, 0x47, 0x2a, 0x2a, 0xb2, 0xef, 0x24,
4986 0xa8, 0xd6, 0xb2, 0xae, 0xca, 0xb8, 0x39, 0x22, 0x10, 0x16, 0x94, 0x53,
4987 0x8f, 0xb1, 0x45, 0x22, 0x35, 0xa8, 0x3b, 0xee, 0xe3, 0x16, 0xe1, 0x6a,
4988 0xf1, 0xe3, 0x83, 0x0e, 0x5a, 0x5b, 0x70, 0x6e, 0x07, 0xbe, 0x25, 0x44,
4989 0x08, 0x15, 0x13, 0x2d, 0x39, 0xd6, 0x7f, 0xae, 0x97, 0xef, 0x50, 0x56,
4990 0x09, 0x11, 0xbd, 0xae, 0x1a, 0x25, 0xc3, 0xaa, 0x58, 0x61, 0x86, 0x78,
4991 0x41, 0x38, 0xf1, 0x94, 0x93, 0x98, 0x8c, 0x6f, 0x81, 0xcf, 0x72, 0x8b,
4992 0x86, 0xa2, 0x22, 0x7a, 0x60, 0x52, 0xb5, 0xa3, 0x3d, 0x36, 0x2e, 0xc9,
4993 0x6f, 0x86, 0x8f, 0xa2, 0x51, 0x11, 0x12, 0x15, 0xcd, 0xf1, 0x58, 0xb9,
4994 0xae, 0xa6, 0xb9, 0x77, 0xca, 0x48, 0x0b, 0x65, 0x38, 0x61, 0x66, 0x7d,
4995 0x3b, 0x5c, 0xa9, 0xc2, 0x7c, 0x58, 0x82, 0xd8, 0xa2, 0xff, 0xea, 0xf8,
4996 0xb2, 0xb9, 0xb5, 0x80, 0x9d, 0xd7, 0xbb, 0x0c, 0x10, 0x9c, 0xf4, 0xef,
4997 0xf3, 0xb7, 0x97, 0x5b, 0xfe, 0xbe, 0x2a, 0x52, 0x1a, 0x38, 0x55, 0xac,
4998 0xf5, 0x0e, 0x6e, 0x29, 0x41, 0x49, 0x2a, 0xd6, 0x1e, 0x30, 0x57, 0xb7,
4999 0x21, 0xee, 0xc9, 0x28, 0x7e, 0xb2, 0xb3, 0x3b, 0xa0, 0x3f, 0xf6, 0xe0,
5000 0x16, 0x78, 0xb2, 0xf3, 0xc4, 0xf9, 0x5c, 0xed, 0xa9, 0x96, 0xae, 0x45,
5001 0xba, 0x46, 0x5c, 0x6a, 0x31, 0x34, 0xb9, 0x16, 0x46, 0x4f, 0xde, 0xbf,
5002 0xc7, 0xaf, 0xc2, 0x64, 0xf0, 0x22, 0x19, 0x3a, 0x5c, 0x98, 0xeb, 0xea,
5003 0x9a, 0xad, 0xe5, 0x67, 0x1c, 0xf7, 0xfb, 0x55, 0x26, 0x41, 0x74, 0x36,
5004 0xa4, 0x81, 0xb9, 0x0c, 0x8d, 0x1f, 0x3a, 0xaf, 0xf1, 0x91, 0x4e, 0xf2,
5005 0xd9, 0x03, 0xe1, 0xae, 0x0f, 0x37, 0x39, 0x0b, 0x2a, 0x97, 0x05, 0x66,
5006 0x54, 0x32, 0x9f, 0xf3, 0x9a, 0xd7, 0xb6, 0xa8, 0xd5, 0xf7, 0xc5, 0xdf,
5007 0x3b, 0x48, 0x9e, 0x11, 0xcd, 0x65, 0x88, 0x81, 0x90, 0x0f, 0xe3, 0xcb,
5008 0x43, 0xe9, 0xad, 0xc6, 0x95, 0x30, 0x23, 0x16, 0x07, 0x51, 0xf4, 0xac,
5009 0x23, 0x14, 0xef, 0x38, 0x5a, 0x2c, 0x22, 0x40, 0x96, 0xcb, 0x5c, 0x68,
5010 0x26, 0x24, 0x7b, 0x5d, 0x0e, 0x7c, 0xe9, 0x96, 0xe0, 0xc4, 0x7c, 0xf0,
5011 0x9f, 0xdf, 0x6b, 0x95, 0x82, 0x7b, 0x73, 0x76, 0x79, 0xbc, 0xaf, 0xbc,
5012 0x15, 0x92, 0xfb, 0x5c, 0x29, 0xda, 0x8c, 0xf7, 0xbc, 0x18, 0x0d, 0xcc,
5013 0x0b, 0x62, 0x22, 0x68, 0x37, 0x44, 0x46, 0x41, 0xd0, 0xf5, 0xa4, 0xbd,
5014 0xb5, 0x84, 0x08, 0x89, 0xcf, 0x37, 0x54, 0x48, 0x1c, 0xf0, 0x6d, 0x4c,
5015 0x0e, 0x9c, 0x9c, 0xd5, 0x67, 0x6c, 0x6c, 0x9f, 0xea, 0x6c, 0xa0, 0x6f,
5016 0x5d, 0x17, 0xf1, 0x62, 0x0d, 0x17, 0x8e, 0xa5, 0xf8, 0x67, 0x5c, 0x2c,
5017 0xb9, 0xc4, 0xbc, 0xc7, 0x88, 0xf2, 0x4a, 0xc6, 0xe1, 0x3b, 0x1c, 0xa3,
5018 0xb3, 0xd9, 0xe6, 0x93, 0x2d, 0x31, 0xb9, 0x25, 0x3f, 0x80, 0x31, 0x68,
5019 0xf9, 0xbf, 0x5e, 0x8b, 0x54, 0x9d, 0xb0, 0xbe, 0xb6, 0x70, 0xd7, 0xb2,
5020 0x3a, 0x88, 0xf6, 0x63, 0x69, 0x52, 0xd0, 0x21, 0x43, 0xdc, 0x82, 0x5e,
5021 0x90, 0x9d, 0x92, 0xcc, 0xd6, 0x46, 0xf4, 0x60, 0x61, 0x90, 0xb6, 0x48,
5022 0x17, 0xab, 0x85, 0x47, 0x4b, 0x31, 0x2f, 0x71, 0x95, 0xb4, 0x4b, 0x17,
5023 0xab, 0xf5, 0xdd, 0x8a, 0x5d, 0x28, 0x0e, 0x46, 0x47, 0x18, 0x18, 0x43,
5024 0x80, 0x01, 0xc4, 0xa2, 0xd3, 0xf8, 0x74, 0x48, 0x97, 0xe2, 0xab, 0x65,
5025 0xac, 0xe8, 0x4c, 0xb0, 0x3e, 0x2c, 0x41, 0xcd, 0x45, 0xb5, 0x6e, 0xa0,
5026 0xc4, 0x87, 0xc4, 0xd0, 0x05, 0x80, 0x4b, 0xa7, 0x00, 0x47, 0x7d, 0xa9,
5027 0x89, 0xfb, 0x74, 0x56, 0xdd, 0x74, 0x53, 0xac, 0xca, 0x3c, 0x62, 0xdc,
5028 0x91, 0x10, 0x04, 0x30, 0x28, 0x12, 0x53, 0x05, 0x9c, 0xd3, 0xb6, 0xf8,
5029 0x38, 0x5c, 0xae, 0x2b, 0x99, 0x4b, 0xab, 0x2b, 0x26, 0xb6, 0x6a, 0xc7,
5030 0x64, 0x14, 0x5f, 0x3e, 0xb2, 0x2d, 0x8a, 0xcc, 0x95, 0xdb, 0x3e, 0xab,
5031 0x9d, 0xfe, 0x37, 0x6a, 0xc0, 0x0b, 0x9b, 0x0b, 0xce, 0x58, 0xc1, 0x33,
5032 0x03, 0xeb, 0x79, 0x9b, 0xce, 0xdb, 0x95, 0x8f, 0x1f, 0x10, 0xb8, 0x8a,
5033 0xfa, 0x0b, 0xc9, 0x03, 0x79, 0xdd, 0xd7, 0x78, 0x73, 0xca, 0x34, 0x10,
5034 0x8a, 0xc2, 0x1a, 0x28, 0x53, 0x55, 0xff, 0x5a, 0x3e, 0xf3, 0x95, 0x7f,
5035 0xa8, 0xd1, 0x9c, 0x07, 0x6e, 0x99, 0xb7, 0xae, 0xdc, 0x8f, 0xf6, 0x76,
5036 0x76, 0xbe, 0x21, 0xdd, 0x28, 0x45, 0xe1, 0x77, 0xbf, 0xea, 0x9c, 0x21,
5037 0x99, 0x20, 0x2c, 0xb1, 0xc6, 0xfa, 0xe2, 0x3b, 0xf8, 0xd4, 0x74, 0xd2,
5038 0x30, 0x22, 0x3e, 0xaa, 0x66, 0xab, 0xc0, 0x0d, 0x22, 0x93, 0xbf, 0x66,
5039 0xa9, 0xe0, 0x71, 0x69, 0x26, 0x22, 0x2f, 0x80, 0xd5, 0xe5, 0xd5, 0xbb,
5040 0xa1, 0xbf, 0x31, 0xe2, 0xcc, 0x16, 0x16, 0xdf, 0xe9, 0x48, 0xcc, 0x24,
5041 0x83, 0x81, 0xb9, 0x84, 0x56, 0x05, 0x76, 0x32, 0x03, 0xa3, 0xa4, 0x5e,
5042 0x17, 0x7b, 0x81, 0x10, 0x9b, 0x11, 0xb6, 0x04, 0x5f, 0x13, 0xbd, 0xaa,
5043 0x0d, 0x67, 0xd4, 0x5d, 0xf7, 0x16, 0x67, 0xb3, 0xab, 0xf4, 0xfe, 0x03,
5044 0x1b, 0x32, 0xe8, 0x80, 0xec, 0x13, 0x17, 0xe1, 0x91, 0xa8, 0x52, 0x08,
5045 0x89, 0x69, 0x0e, 0x96, 0x6d, 0x2e, 0xe5, 0xc2, 0x67, 0xfb, 0x1c, 0x6e,
5046 0x1b, 0x8c, 0x91, 0x89, 0x13, 0x97, 0x5a, 0x65, 0x87, 0x3b, 0x22, 0x2d,
5047 0x43, 0xdf, 0xce, 0xf9, 0x81, 0x39, 0xdf, 0x34, 0xf2, 0x16, 0x86, 0x78,
5048 0xbe, 0x84, 0xeb, 0xca, 0x9d, 0x22, 0x41, 0xa7, 0x38, 0x0d, 0x6e, 0x8a,
5049 0x0a, 0x4e, 0x8c, 0xa6, 0xfe, 0x0d, 0x6f, 0xe5, 0x60, 0x5e, 0x92, 0x34,
5050 0xfc, 0x17, 0x24, 0xc0, 0x9f, 0xff, 0x38, 0xa4, 0x3f, 0x7f, 0xea, 0x28,
5051 0xc8, 0x17, 0x07, 0xd1, 0x62, 0x43, 0xee, 0x17, 0x9e, 0x0d, 0x1e, 0xed,
5052 0x48, 0xce, 0x9b, 0xfc, 0xb6, 0x0c, 0x78, 0xf4, 0xbb, 0xca, 0x53, 0x78,
5053 0xaf, 0xe1, 0x66, 0x09, 0x0a, 0xdc, 0x30, 0xb6, 0x27, 0xd8, 0x46, 0x6b,
5054 0x88, 0xcd, 0x9b, 0x4c, 0x54, 0x0c, 0xf0, 0x21, 0x4d, 0xa9, 0x99, 0xc6,
5055 0x7c, 0xa6, 0x39, 0xd0, 0x84, 0xaf, 0x6a, 0x4a, 0xe3, 0x9d, 0xac, 0xca,
5056 0x07, 0xa6, 0xd6, 0x10, 0x2f, 0x69, 0x99, 0x3b, 0x9a, 0x2a, 0x4c, 0x20,
5057 0xba, 0xdf, 0x86, 0x99, 0x30, 0xfb, 0x83, 0x80, 0xf3, 0xaa, 0x3c, 0xa7,
5058 0x4f, 0x17, 0x05, 0xd9, 0x58, 0xba, 0xd4, 0x9a, 0xce, 0x11, 0x1c, 0x11,
5059 0xde, 0xfd, 0x49, 0x6d, 0xaf, 0x96, 0x1d, 0xb8, 0x10, 0x4e, 0xed, 0x6a,
5060 0xd1, 0xed, 0xd4, 0xf2, 0x26, 0xed, 0xde, 0x60, 0x76, 0xe2, 0x63, 0x57,
5061 0x97, 0x53, 0xd6, 0x9b, 0xf5, 0x9b, 0x8e, 0x6c, 0x16, 0x3d, 0xf9, 0x85,
5062 0xa2, 0xd5, 0x1d, 0x9d, 0x6b, 0x52, 0xf5, 0xa2, 0x3f, 0x7b, 0x6a, 0x29,
5063 0x61, 0xdf, 0x87, 0x39, 0x1c, 0xdc, 0x80, 0x50, 0xd9, 0x9c, 0x53, 0xda,
5064 0xbc, 0x25, 0x9d, 0x77, 0xea, 0x7f, 0x7e, 0x26, 0x2f, 0x5c, 0xdd, 0xb1,
5065 0x94, 0x53, 0x3f, 0x67, 0xab, 0x29, 0x6e, 0xa2, 0x8c, 0x80, 0xe1, 0x32,
5066 0x62, 0x13, 0xa1, 0xb3, 0xb1, 0xfc, 0x49, 0x6e, 0xda, 0x19, 0xb2, 0xed,
5067 0x4c, 0x02, 0xc7, 0xc3, 0x8d, 0x07, 0xf1, 0x0f, 0xf1, 0x95, 0xf1, 0xc9,
5068 0xc1, 0xc1, 0x0f, 0x47, 0xa3, 0xd7, 0xbc, 0x49, 0x64, 0x57, 0x6b, 0xa8,
5069 0x40, 0x25, 0xcc, 0xc2, 0x96, 0xfc, 0xfb, 0xca, 0x85, 0x87, 0x63, 0x29,
5070 0x3a, 0x07, 0x13, 0xf3, 0x4b, 0x46, 0xaf, 0x35, 0xda, 0x0b, 0x09, 0x2e,
5071 0x51, 0x98, 0x8f, 0x2d, 0xeb, 0x47, 0x3d, 0xe5, 0xaf, 0xf5, 0x30, 0x15,
5072 0x9d, 0x95, 0x29, 0x43, 0x96, 0xce, 0xaa, 0x68, 0x23, 0xcb, 0xa7, 0xa6,
5073 0x21, 0xe5, 0xf3, 0x24, 0xa8, 0x2d, 0xd1, 0xc1, 0x9d, 0xc1, 0x3a, 0x67,
5074 0x14, 0x30, 0xce, 0x04, 0x40, 0x61, 0x2d, 0x78, 0x98, 0x1a, 0xc1, 0xf6,
5075 0x04, 0x85, 0x79, 0xff, 0x96, 0x4f, 0xf4, 0x66, 0xc6, 0xb7, 0x8b, 0x2e,
5076 0x92, 0x9f, 0x2b, 0xc0, 0x27, 0x49, 0xc7, 0x92, 0x7e, 0x97, 0xc8, 0x39,
5077 0x77, 0x28, 0x4b, 0x2a, 0xd6, 0x36, 0x00, 0x57, 0xca, 0xad, 0x9a, 0x4e,
5078 0x18, 0x29, 0x00, 0x06, 0xc4, 0x9c, 0xc0, 0x95, 0x5a, 0xc4, 0x07, 0xae,
5079 0x0c, 0x81, 0xee, 0x02, 0x4c, 0x0e, 0xc7, 0x87, 0xd7, 0xdc, 0x3b, 0x7e,
5080 0x45, 0xcd, 0xb5, 0x60, 0xf2, 0x54, 0x8c, 0xf4, 0x85, 0x02, 0x43, 0xdb,
5081 0x4e, 0xd8, 0xd7, 0x52, 0xd2, 0xca, 0xcc, 0x9d, 0xd8, 0x78, 0x89, 0x3c,
5082 0xf9, 0x84, 0xca, 0xba, 0x1c, 0x22, 0x0b, 0x50, 0xed, 0x8a, 0x8f, 0xaf,
5083 0x9d, 0xe6, 0x57, 0x1a, 0x87, 0x61, 0x6b, 0x54, 0x0d, 0x12, 0x81, 0x9d,
5084 0xad, 0x5a, 0x37, 0xdf, 0xa3, 0x38, 0x03, 0xf0, 0xb6, 0x2f, 0x70, 0x60,
5085 0x7f, 0xfe, 0x08, 0x90, 0xc2, 0x8c, 0x31, 0x3c, 0xbe, 0x69, 0x36, 0xcb,
5086 0x96, 0x27, 0x4a, 0x94, 0xdd, 0x60, 0xec, 0x06, 0xb8, 0xec, 0x76, 0xa9,
5087 0x57, 0x3c, 0xea, 0x2f, 0xe6, 0x69, 0x1d, 0xf6, 0x8d, 0x35, 0x40, 0x86,
5088 0xcb, 0xa0, 0x9e, 0xdf, 0xbc, 0xa6, 0xd0, 0x9a, 0x94, 0x8e, 0xe7, 0x03,
5089 0x2f, 0xbc, 0x2a, 0x81, 0xf0, 0x16, 0xde, 0x83, 0xe4, 0x3d, 0x30, 0x0d,
5090 0x74, 0xa9, 0xf8, 0xe4, 0xc9, 0xa8, 0xdb, 0xe6, 0xbf, 0xac, 0x01, 0x8f,
5091 0xed, 0x4a, 0x29, 0x10, 0x00, 0x4e, 0x34, 0xe2, 0x8c, 0x5c, 0x66, 0xf3,
5092 0x0a, 0x47, 0x27, 0x77, 0x9c, 0x8e, 0x34, 0x6d, 0xe4, 0xd4, 0x88, 0x73,
5093 0xa9, 0x5a, 0x4b, 0x99, 0x61, 0x65, 0xb4, 0xfc, 0xe5, 0x86, 0x47, 0xd9,
5094 0x42, 0x68, 0x49, 0xa2, 0x0b, 0x72, 0x47, 0x24, 0x37, 0xb5, 0x35, 0x51,
5095 0x6a, 0x99, 0xe3, 0x64, 0x76, 0x50, 0x41, 0x2e, 0x9a, 0x94, 0x14, 0xad,
5096 0x68, 0x0f, 0x08, 0x29, 0xd9, 0x7b, 0x06, 0xf8, 0xf7, 0x65, 0xad, 0x24,
5097 0x65, 0x53, 0x78, 0x8b, 0xe9, 0xb2, 0xfa, 0x6f, 0x15, 0x5e, 0xd3, 0xdf,
5098 0x1f, 0x66, 0x3d, 0x0c, 0x51, 0x31, 0x5d, 0xbc, 0x5a, 0xa4, 0xb7, 0xd3,
5099 0x25, 0xf3, 0xd8, 0x95, 0xbf, 0x78, 0x33, 0xa8, 0x63, 0x02, 0xd6, 0x46,
5100 0x87, 0x9d, 0xe1, 0xaf, 0x23, 0x66, 0x4f, 0xf3, 0xdd, 0xcf, 0xce, 0x0a,
5101 0x3e, 0x22, 0xdd, 0xbd, 0xdc, 0x55, 0x00, 0x86, 0x03, 0x80, 0x4e, 0xc4,
5102 0x56, 0x22, 0xad, 0x73, 0xc7, 0x39, 0x0f, 0xd3, 0x3a, 0xda, 0x22, 0xc4,
5103 0x9a, 0x92, 0x3a, 0xcf, 0x73, 0x67, 0x85, 0x7a, 0xa8, 0xc4, 0xa0, 0x3b,
5104 0x25, 0x00, 0xb0, 0x51, 0x3c, 0xa1, 0x5b, 0xc6, 0x6c, 0xb5, 0xe8, 0x8d,
5105 0xa2, 0x2f, 0x1f, 0x0c, 0x73, 0xa2, 0x9a, 0x0c, 0x16, 0x5d, 0xeb, 0xd4,
5106 0x44, 0x91, 0xb9, 0x3c, 0x7a, 0xb6, 0x53, 0x6b, 0x6d, 0x84, 0x49, 0x68,
5107 0xb8, 0x02, 0x86, 0xbb, 0x2e, 0x3d, 0x90, 0x01, 0x14, 0x72, 0xbf, 0x6b,
5108 0x42, 0xdc, 0x49, 0x24, 0x7e, 0x43, 0x75, 0x9b, 0x49, 0x59, 0xda, 0xaa,
5109 0x98, 0xb6, 0x0e, 0xbc, 0x5b, 0x9f, 0x34, 0x59, 0x4a, 0x71, 0x2e, 0x56,
5110 0x40, 0x23, 0x3c, 0x4c, 0xe2, 0xf0, 0x4e, 0xff, 0x92, 0x3b, 0x18, 0xc8,
5111 0x56, 0x88, 0xa7, 0xe8, 0x88, 0xf6, 0xf7, 0x4b, 0x07, 0x4f, 0x50, 0x97,
5112 0x37, 0xef, 0x79, 0x30, 0x43, 0x74, 0xd5, 0xcf, 0x75, 0x24, 0x65, 0x0f,
5113 0xcb, 0x56, 0x7c, 0x50, 0xe0, 0xe8, 0x32, 0x6a, 0x6e, 0x04, 0xc9, 0x12,
5114 0x02, 0x7b, 0xf1, 0x9e, 0x50, 0x57, 0x56, 0x2e, 0xf4, 0x04, 0x09, 0x61,
5115 0x73, 0x47, 0xef, 0x5a, 0x75, 0x8a, 0xd9, 0x01, 0x88, 0x31, 0x6e, 0x3e,
5116 0xdd, 0x82, 0xb3, 0xbd, 0x5a, 0x6e, 0xee, 0x6e, 0xe1, 0x73, 0x46, 0x44,
5117 0x6a, 0x08, 0xd0, 0x2e, 0xf0, 0x91, 0xaf, 0x3a, 0x77, 0xe8, 0x93, 0xa5,
5118 0x58, 0x39, 0x82, 0x68, 0x8c, 0x1d, 0x6e, 0xd0, 0x61, 0xb1, 0xc2, 0x64,
5119 0xcd, 0xd3, 0xcf, 0x77, 0xeb, 0x0e, 0xc5, 0x2f, 0x09, 0x92, 0x4b, 0x86,
5120 0x79, 0x94, 0x42, 0x21, 0xbe, 0xe9, 0x59, 0xed, 0xb8, 0x55, 0x4e, 0x7b,
5121 0x97, 0x9a, 0x20, 0x34, 0x7b, 0xf3, 0xd9, 0x10, 0x07, 0xfe, 0x75, 0x91,
5122 0xb7, 0x09, 0x2c, 0x18, 0xa3, 0xc7, 0x73, 0xb0, 0x65, 0x48, 0xaa, 0xce,
5123 0x9a, 0x17, 0x3d, 0x46, 0x24, 0xf5, 0xc2, 0xf2, 0x46, 0x06, 0x7a, 0x6a,
5124 0xde, 0x77, 0x6a, 0x4b, 0xda, 0x12, 0xd5, 0x83, 0xe8, 0xef, 0xab, 0x74,
5125 0x7a, 0x8b, 0xb5, 0x45, 0x00, 0x0a, 0x00, 0x97, 0xc4, 0x79, 0x15, 0x49,
5126 0x0b, 0xb0, 0xdf, 0x14, 0xe7, 0x03, 0xec, 0x6c, 0xd8, 0x87, 0x26, 0x65,
5127 0x1d, 0xf5, 0x66, 0x60, 0x04, 0x9b, 0xeb, 0x02, 0xdc, 0x35, 0xb9, 0x9e,
5128 0xb0, 0x88, 0xcc, 0x88, 0xaf, 0x78, 0x96, 0x33, 0x48, 0x81, 0x71, 0x1a,
5129 0x22, 0x05, 0xeb, 0x98, 0x58, 0xfb, 0x8b, 0x07, 0x26, 0x27, 0xe8, 0xd7,
5130 0x29, 0x59, 0xfb, 0x64, 0xdd, 0xd1, 0x31, 0xd8, 0xb7, 0xf9, 0x6d, 0xe0,
5131 0xf9, 0xda, 0x14, 0x8a, 0x6b, 0x3e, 0x2d, 0xa2, 0x2d, 0x9f, 0xf0, 0xad,
5132 0x4b, 0xe3, 0x7e, 0x0b, 0xbe, 0x19, 0x48, 0xc8, 0x7f, 0xb2, 0x62, 0xff,
5133 0x75, 0x67, 0xb5, 0x51, 0x75, 0x76, 0xc9, 0x13, 0xea, 0x37, 0x0b, 0xbc,
5134 0x5f, 0x25, 0xe3, 0x46, 0x17, 0x21, 0x55, 0x3f, 0x6a, 0x04, 0x97, 0x6d,
5135 0x6d, 0xb2, 0x92, 0x62, 0x67, 0x8d, 0x0c, 0xbe, 0x46, 0x74, 0x49, 0x3e,
5136 0xc3, 0x79, 0x48, 0x61, 0xf3, 0x5d, 0x3e, 0x44, 0xbc, 0xee, 0x92, 0x42,
5137 0xf4, 0x7c, 0xae, 0xb4, 0x92, 0xbb, 0xa4, 0x72, 0x4a, 0x13, 0x8e, 0xac,
5138 0x8e, 0x29, 0x02, 0x6e, 0x56, 0x64, 0x86, 0x0e, 0x3a, 0x22, 0x43, 0x76,
5139 0xf9, 0x4a, 0x79, 0x6f, 0x93, 0x80, 0x68, 0x6a, 0xb2, 0x96, 0x87, 0xd1,
5140 0x16, 0x38, 0x8b, 0xf4, 0x0e, 0x94, 0x42, 0x2d, 0xfa, 0xcf, 0xae, 0xde,
5141 0xf9, 0x4a, 0xb9, 0x71, 0xe5, 0x27, 0xb0, 0x1b, 0x81, 0xea, 0x8b, 0x34,
5142 0x1a, 0x0d, 0x37, 0x8a, 0x9f, 0xcf, 0x42, 0x9c, 0xa5, 0x4f, 0xd9, 0x82,
5143 0x03, 0xc9, 0x08, 0xa8, 0x5b, 0x5b, 0x56, 0x38, 0x71, 0x69, 0x65, 0xe5,
5144 0x9b, 0xa8, 0x50, 0x1b, 0x24, 0xf6, 0x77, 0xf4, 0x44, 0xf5, 0xf0, 0xb0,
5145 0x03, 0x9d, 0x59, 0x0f, 0xe8, 0x71, 0x68, 0x33, 0x24, 0x77, 0xc1, 0x6b,
5146 0x83, 0x1a, 0xbd, 0x8b, 0xd0, 0x02, 0x08, 0xc6, 0xa2, 0x03, 0x1f, 0xce,
5147 0x04, 0x92, 0x9b, 0x74, 0xb4, 0xe5, 0xf3, 0x15, 0x67, 0xe1, 0x69, 0xb1,
5148 0x71, 0x9a, 0xd6, 0x2d, 0xdb, 0x4d, 0xb2, 0xff, 0x82, 0x62, 0x94, 0xa2,
5149 0xc4, 0x3a, 0x19, 0x37, 0xe0, 0x3f, 0x0c, 0xb9, 0xb8, 0x25, 0xa6, 0x6a,
5150 0x76, 0x06, 0x9f, 0x3e, 0x41, 0x73, 0x4b, 0x60, 0x09, 0xef, 0x72, 0x53,
5151 0xb3, 0x2d, 0x3b, 0xd7, 0x4e, 0xb1, 0x70, 0x3e, 0x0c, 0x83, 0x03, 0x47,
5152 0x81, 0x27, 0x4a, 0xd6, 0x2f, 0xe1, 0x60, 0xc2, 0x49, 0xc7, 0x1f, 0x7b,
5153 0xd4, 0xbf, 0x5a, 0x37, 0x63, 0x76, 0x43, 0x72, 0xdc, 0xce, 0xb9, 0xf6,
5154 0x55, 0xa0, 0xe0, 0xb8, 0xd7, 0x6a, 0xe6, 0xda, 0x35, 0x65, 0x35, 0x7f,
5155 0x40, 0xaf, 0x16, 0x2b, 0xce, 0x30, 0x68, 0x85, 0xab, 0x69, 0x55, 0xe6,
5156 0x2b, 0xa1, 0xce, 0x62, 0x67, 0x9a, 0x54, 0x83, 0xe2, 0xfb, 0x55, 0x3c,
5157 0xe1, 0xc5, 0x99, 0x3c, 0xb8, 0x71, 0x1a, 0x76, 0x97, 0xcf, 0x05, 0x87,
5158 0xe4, 0x68, 0x8b, 0xc7, 0x9a, 0xca, 0xa5, 0xdf, 0xaa, 0x6e, 0x6d, 0x89,
5159 0x85, 0xd0, 0xa5, 0x78, 0x63, 0x41, 0xdc, 0x8e, 0x3c, 0x65, 0xa6, 0x64,
5160 0x57, 0x65, 0x3b, 0x2b, 0xdb, 0x75, 0x86, 0x15, 0x23, 0x9f, 0x2f, 0x1c,
5161 0x0a, 0x88, 0xad, 0x9a, 0x94, 0xdc, 0x0d, 0xe5, 0x75, 0x6d, 0x96, 0xcf,
5162 0xaf, 0x7a, 0x67, 0x15, 0x8c, 0xb0, 0x26, 0xd1, 0xf4, 0x58, 0x0b, 0x27,
5163 0x44, 0x35, 0xe4, 0x42, 0xeb, 0x10, 0xe6, 0x03, 0xaa, 0xf6, 0x44, 0x37,
5164 0x0d, 0x06, 0x07, 0x81, 0x68, 0x91, 0xd2, 0x6b, 0x2d, 0xe5, 0xf4, 0x3a,
5165 0x9d, 0x16, 0x79, 0x99, 0x5f, 0xc9, 0xe5, 0xc6, 0x0e, 0x31, 0x17, 0xb0,
5166 0x66, 0x46, 0x8b, 0x98, 0x31, 0xa4, 0x6d, 0xbb, 0x42, 0xad, 0x35, 0x5e,
5167 0x2b, 0x24, 0xb1, 0xd1, 0xed, 0x65, 0xa1, 0x1a, 0x89, 0x1d, 0xa1, 0x95,
5168 0xf8, 0x81, 0x63, 0x07, 0xc7, 0x81, 0x3d, 0x60, 0xd8, 0x96, 0x67, 0x8f,
5169 0xc7, 0x43, 0x79, 0x29, 0xb4, 0x6e, 0x93, 0x39, 0x2f, 0x67, 0x5a, 0x4b,
5170 0x4b, 0x8b, 0x39, 0x48, 0x08, 0xcb, 0x5e, 0xeb, 0xee, 0x9d, 0x85, 0xa1,
5171 0xc0, 0x9e, 0x0b, 0x9f, 0x69, 0x58, 0x30, 0x91, 0x21, 0x1b, 0x27, 0xc7,
5172 0x97, 0xaf, 0xa2, 0x59, 0x11, 0xd3, 0xf0, 0xf1, 0xe7, 0x70, 0x52, 0x24,
5173 0x3f, 0xc7, 0x2d, 0xe2, 0x89, 0x72, 0xc9, 0x8b, 0x34, 0x64, 0x80, 0xe3,
5174 0x70, 0xe7, 0xe9, 0xa8, 0x7a, 0xdf, 0x89, 0xe9, 0x08, 0xd1, 0x0f, 0x5a,
5175 0x51, 0xc6, 0x2f, 0x97, 0x66, 0xe5, 0x17, 0xa8, 0x55, 0xff, 0xfe, 0xa1,
5176 0xc5, 0xd5, 0xd5, 0xc5, 0x48, 0x29, 0x6a, 0x11, 0xcf, 0x7b, 0x29, 0xf9,
5177 0x00, 0x86, 0xe1, 0x71, 0x88, 0x8c, 0x40, 0x62, 0xea, 0xa0, 0x97, 0x76,
5178 0x95, 0x9c, 0xc7, 0x21, 0x30, 0x06, 0x79, 0xc1, 0x04, 0x02, 0x6d, 0x2e,
5179 0xe3, 0xd2, 0x5f, 0x75, 0x54, 0x56, 0x02, 0xae, 0xa0, 0x26, 0x9b, 0xdd,
5180 0xe1, 0xd8, 0x36, 0xb1, 0xea, 0xc0, 0xf3, 0x88, 0x42, 0x0e, 0x4c, 0x53,
5181 0xc7, 0xd1, 0x15, 0xdf, 0x05, 0x86, 0x2b, 0x63, 0x31, 0xe8, 0xce, 0xeb,
5182 0xb4, 0x5a, 0xe1, 0xc6, 0x4c, 0xd7, 0x90, 0x32, 0xdc, 0xd7, 0x2d, 0xf8,
5183 0x36, 0x92, 0xca, 0xdf, 0x92, 0xec, 0xd2, 0x34, 0x7e, 0x86, 0xa4, 0xb0,
5184 0xf7, 0xfb, 0x22, 0xe7, 0x49, 0xc6, 0x15, 0x65, 0x44, 0xba, 0xa1, 0x4f,
5185 0x9d, 0xc9, 0x54, 0xb7, 0x8d, 0x5c, 0xfa, 0xe1, 0x70, 0xd5, 0xdd, 0x3b,
5186 0xd2, 0x85, 0x6c, 0xc7, 0x4a, 0xc2, 0x95, 0xd6, 0x0d, 0xfc, 0x17, 0x2e,
5187 0x30, 0xc1, 0xed, 0xec, 0x17, 0x51, 0xf5, 0x84, 0xaa, 0x28, 0x80, 0x53,
5188 0x3e, 0x66, 0x5e, 0xa9, 0x72, 0xf7, 0xd0, 0x4b, 0xa6, 0xa0, 0x00, 0xf2,
5189 0x41, 0xd1, 0x16, 0x97, 0x87, 0xe7, 0x81, 0x5b, 0x78, 0x10, 0xb5, 0xb0,
5190 0x23, 0x93, 0x07, 0x9f, 0xc7, 0x00, 0x38, 0x78, 0xe6, 0x5a, 0x5f, 0xfc,
5191 0x37, 0x9a, 0x1c, 0x7e, 0x04, 0x81, 0xd5, 0xe1, 0x7e, 0xd8, 0x98, 0x1a,
5192 0x4d, 0xb5, 0x4d, 0x67, 0xdd, 0x50, 0x47, 0x9d, 0x21, 0xa3, 0x66, 0xd5,
5193 0x39, 0xe2, 0xfc, 0x4e, 0x4b, 0x69, 0x3e, 0x39, 0xa2, 0xde, 0xb0, 0x01,
5194 0xcc, 0xa5, 0xd4, 0xfc, 0x25, 0xb9, 0x6d, 0xb8, 0x7b, 0x97, 0x09, 0x0e,
5195 0x4c, 0x54, 0xab, 0xf2, 0xc1, 0x76, 0x6e, 0x23, 0x09, 0x49, 0x82, 0xb4,
5196 0xb4, 0x8b, 0xe6, 0xd3, 0x77, 0xb3, 0x5a, 0xb0, 0x33, 0xa8, 0xd0, 0xa0,
5197 0xf8, 0xcd, 0xaa, 0x90, 0x2c, 0x1e, 0x4d, 0x34, 0x55, 0xde, 0xaf, 0x22,
5198 0xe1, 0x3e, 0xd7, 0x3b, 0x5c, 0x76, 0x28, 0xa6, 0x82, 0xa3, 0xd2, 0xc9,
5199 0x42, 0x11, 0x51, 0x93, 0x22, 0xbf, 0xa5, 0xbd, 0xcb, 0xaf, 0xe1, 0xbe,
5200 0xc2, 0xb3, 0x2f, 0x67, 0x83, 0x39, 0x99, 0xe9, 0x24, 0x17, 0x7a, 0x94,
5201 0x0e, 0x3a, 0x24, 0x47, 0x81, 0xaa, 0x70, 0x57, 0x6f, 0x84, 0x0a, 0x49,
5202 0x9d, 0xd4, 0x52, 0x56, 0xe5, 0x09, 0x9f, 0x0c, 0x97, 0x7d, 0xf2, 0xf1,
5203 0xdf, 0x96, 0x7b, 0xd7, 0xc8, 0x05, 0xff, 0xfb, 0x64, 0xc8, 0x89, 0x45,
5204 0x28, 0x43, 0x1d, 0x4b, 0x5e, 0x13, 0x26, 0x39, 0x04, 0x5e, 0x90, 0x54,
5205 0x89, 0x7a, 0x67, 0xc4, 0x58, 0xd3, 0x19, 0x04, 0x9e, 0xce, 0xa1, 0x4f,
5206 0x8c, 0xf4, 0x65, 0x94, 0x25, 0x4e, 0x21, 0x6e, 0xfd, 0x99, 0x27, 0x16,
5207 0x8e, 0xe5, 0x6c, 0x41, 0x12, 0x47, 0xdb, 0xbc, 0x63, 0x63, 0xd8, 0x19,
5208 0x4b, 0x72, 0xa1, 0x85, 0x51, 0xc8, 0xcb, 0x83, 0x5c, 0x72, 0x24, 0x33,
5209 0xa8, 0x8b, 0xed, 0x4f, 0x61, 0x26, 0x9e, 0x7c, 0xa9, 0xa5, 0x49, 0x84,
5210 0x6c, 0xcf, 0xc5, 0x4d, 0x04, 0x11, 0xe0, 0x80, 0xe6, 0xcc, 0xc4, 0x14,
5211 0xea, 0x0c, 0x74, 0x6d, 0x14, 0x1d, 0x73, 0x10, 0xa4, 0xe3, 0x7e, 0x69,
5212 0xf0, 0x65, 0x8c, 0x31, 0x55, 0x9a, 0x13, 0x49, 0xf0, 0xd3, 0xdb, 0x7a,
5213 0x1c, 0xc9, 0x85, 0xd1, 0x25, 0xba, 0xba, 0xc2, 0x77, 0x9d, 0x77, 0xed,
5214 0xb2, 0x52, 0xde, 0x04, 0x25, 0x6b, 0x74, 0x3f, 0x72, 0x34, 0x7b, 0xaf,
5215 0x3c, 0x64, 0x67, 0x20, 0xe1, 0x3b, 0xb9, 0x06, 0x77, 0x18, 0xee, 0xe8,
5216 0x4d, 0xe4, 0x1f, 0x1a, 0x04, 0x7f, 0xdf, 0xff, 0x6c, 0xc7, 0xa0, 0x28,
5217 0x4c, 0x98, 0x10, 0x3e, 0x83, 0x98, 0x54, 0xc7, 0xf5, 0x0d, 0xc4, 0x0a,
5218 0x79, 0xe5, 0x1e, 0x6d, 0xb2, 0x63, 0x3e, 0x1f, 0x3d, 0xdd, 0xaa, 0xc9,
5219 0x4b, 0x35, 0x5f, 0xb4, 0xed, 0xc1, 0x37, 0x97, 0xa7, 0xaf, 0xa3, 0x96,
5220 0x1d, 0x28, 0x9e, 0x0a, 0xfc, 0xae, 0xfe, 0xab, 0x7f, 0xc5, 0x1e, 0xa4,
5221 0x5f, 0x9c, 0x9c, 0x8c, 0x61, 0x0d, 0x2a, 0xc6, 0xb1, 0x15, 0x6a, 0x16,
5222 0x2b, 0x10, 0x22, 0x48, 0x96, 0x60, 0x52, 0xb1, 0xe5, 0x41, 0x7f, 0xaf,
5223 0xf2, 0x69, 0x3e, 0x67, 0xcc, 0x3f, 0xbf, 0x94, 0x68, 0x95, 0x70, 0xdc,
5224 0x99, 0x99, 0xf5, 0x70, 0x0e, 0xad, 0xb4, 0x4c, 0x5a, 0x50, 0x81, 0xa5,
5225 0x26, 0xb5, 0x39, 0x95, 0xa2, 0xa4, 0x79, 0x7c, 0x56, 0x70, 0x35, 0xd2,
5226 0x99, 0x9e, 0x34, 0x29, 0x18, 0x4b, 0xd9, 0xc0, 0x50, 0x37, 0xd8, 0x6d,
5227 0x8a, 0xbc, 0x92, 0x56, 0xbe, 0x85, 0x96, 0xca, 0x70, 0xea, 0xd0, 0x3c,
5228 0x41, 0xd9, 0x2c, 0x2f, 0xe0, 0x17, 0x0d, 0x78, 0x9d, 0x98, 0x15, 0x71,
5229 0x05, 0x3c, 0x00, 0x77, 0xef, 0xa1, 0xe3, 0xa6, 0x74, 0x93, 0x4b, 0x2c,
5230 0x1e, 0xd3, 0xcc, 0x5a, 0x49, 0x00, 0xb4, 0x40, 0xd7, 0x09, 0x19, 0x90,
5231 0x08, 0x84, 0x57, 0x25, 0xe1, 0x42, 0x75, 0xe1, 0xe3, 0x5c, 0x61, 0x3c,
5232 0x81, 0x43, 0x7b, 0xd6, 0xac, 0xa3, 0xf4, 0x7a, 0x1d, 0x85, 0x1f, 0xe2,
5233 0x84, 0x4d, 0x8b, 0x93, 0x7b, 0xe4, 0x8c, 0x4d, 0x51, 0x33, 0x4d, 0x5a,
5234 0xd8, 0x8e, 0xfc, 0xb3, 0x9a, 0xa9, 0x49, 0xd2, 0xf6, 0x2f, 0xc0, 0xb0,
5235 0x71, 0x80, 0x98, 0x81, 0xa9, 0xd5, 0xe1, 0xbf, 0x6d, 0x7b, 0xa6, 0x03,
5236 0x4b, 0x72, 0x3d, 0x78, 0x9a, 0x47, 0xf3, 0xbf, 0x80, 0xbd, 0xd0, 0xed,
5237 0xbc, 0x9c, 0xed, 0x4b, 0xf5, 0xcc, 0x74, 0x22, 0xd7, 0xbe, 0x43, 0x66,
5238 0xb1, 0xf9, 0x6e, 0x72, 0x7d, 0x28, 0x24, 0xbe, 0x2b, 0xab, 0x59, 0xce,
5239 0x34, 0x40, 0x86, 0xc5, 0x28, 0xec, 0x28, 0xff, 0x8f, 0x7f, 0xb4, 0x51,
5240 0xa6, 0x3f, 0xfe, 0x24, 0xfe, 0x3d, 0xc9, 0xdf, 0xf2, 0x21, 0x09, 0x93,
5241 0xa3, 0xd2, 0xb3, 0x92, 0xf2, 0x8a, 0x71, 0xc6, 0xb4, 0x0c, 0x51, 0xf6,
5242 0x53, 0xd3, 0x6e, 0xd5, 0x00, 0x82, 0x9e, 0xc3, 0xda, 0x37, 0x3b, 0x04,
5243 0x40, 0xcc, 0x14, 0xd4, 0x6b, 0x56, 0x17, 0xd7, 0x04, 0x24, 0xff, 0x92,
5244 0x90, 0xb7, 0x8e, 0x1e, 0xcd, 0xd2, 0x1d, 0x95, 0x77, 0xcb, 0xb2, 0x16,
5245 0x39, 0xcf, 0x4c, 0x22, 0x48, 0xe8, 0x3f, 0x1f, 0x33, 0xa7, 0x52, 0x7f,
5246 0xa2, 0x4d, 0x3d, 0x23, 0x0b, 0xad, 0x29, 0x63, 0xff, 0x41, 0x5b, 0x6c,
5247 0x50, 0xdd, 0xe7, 0xff, 0x18, 0x71, 0xb8, 0x1b, 0x5a, 0x78, 0x98, 0x4b,
5248 0x69, 0xac, 0x77, 0xbf, 0xdf, 0xe5, 0xfb, 0x56, 0xaf, 0x5d, 0x10, 0x0c,
5249 0x33, 0x60, 0x6b, 0xee, 0x92, 0x40, 0xd7, 0x30, 0xdd, 0xd4, 0x3f, 0xc7,
5250 0x5f, 0x19, 0xf0, 0x79, 0xf0, 0x8f, 0x11, 0xff, 0xf9, 0xe3, 0xee, 0xf0,
5251 0xd9, 0x4f, 0xee, 0xab, 0xbf, 0xdf, 0x7d, 0xf7, 0xfb, 0xbd, 0x5e, 0x67,
5252 0xfd, 0x34, 0xbe, 0x92, 0xae, 0x8c, 0x42, 0xd7, 0xac, 0x78, 0x2d, 0xbc,
5253 0x2a, 0x51, 0x23, 0xbd, 0xf2, 0x7b, 0x66, 0x47, 0x90, 0xc6, 0xb6, 0x21,
5254 0x8a, 0xec, 0x0a, 0xfc, 0x00, 0x43, 0x5b, 0x58, 0x7d, 0x28, 0xb8, 0xd0,
5255 0x68, 0x31, 0x1e, 0xf1, 0xe4, 0x00, 0x73, 0x62, 0x3e, 0xe5, 0x96, 0xfb,
5256 0x1a, 0x49, 0xb8, 0xb3, 0x07, 0x3a, 0xf4, 0x84, 0x95, 0x66, 0xe4, 0x82,
5257 0x69, 0x66, 0x4a, 0x5a, 0x21, 0x55, 0xc9, 0x51, 0xdf, 0x74, 0xc7, 0x3f,
5258 0x67, 0x32, 0x6f, 0x75, 0xb9, 0x87, 0xbc, 0x5f, 0xce, 0xcb, 0xbc, 0x96,
5259 0x8a, 0xc1, 0x4e, 0x16, 0x61, 0xf7, 0x47, 0x57, 0x93, 0x19, 0xe6, 0x03,
5260 0xdb, 0x27, 0xd6, 0x21, 0x05, 0x55, 0xbd, 0xb5, 0x84, 0x9a, 0x23, 0x5d,
5261 0xc3, 0xaf, 0xee, 0x13, 0x98, 0xb2, 0x2d, 0x52, 0xb3, 0x33, 0xe7, 0xe5,
5262 0x12, 0x0f, 0x5a, 0xc0, 0xbd, 0x17, 0xbe, 0x1e, 0x04, 0xc3, 0xa4, 0x34,
5263 0xb2, 0x24, 0xcb, 0x55, 0xed, 0x3c, 0xb8, 0xd1, 0x56, 0x17, 0x80, 0x2c,
5264 0x6c, 0xcb, 0x92, 0xfe, 0x15, 0xe9, 0x13, 0x95, 0x42, 0xf5, 0x2b, 0x57,
5265 0x45, 0xe1, 0xa5, 0x61, 0xed, 0xbf, 0x2e, 0x23, 0xd5, 0xd5, 0xf8, 0x19,
5266 0x38, 0x3e, 0xac, 0x64, 0x5e, 0xb6, 0x65, 0xe3, 0x90, 0x61, 0xbd, 0xcc,
5267 0xed, 0x50, 0x21, 0xe9, 0x62, 0x10, 0x46, 0xb9, 0x1d, 0xdc, 0x3c, 0xbe,
5268 0xf3, 0x65, 0x21, 0x6d, 0x8f, 0x2a, 0x84, 0x6a, 0x5d, 0xfd, 0xe4, 0x51,
5269 0xdd, 0x73, 0xe1, 0x62, 0xd4, 0xb1, 0xe3, 0xd9, 0xf6, 0x68, 0xf1, 0x20,
5270 0x6f, 0xa4, 0x4b, 0x87, 0x82, 0x7a, 0x11, 0xea, 0x49, 0x70, 0xdd, 0x8d,
5271 0x1e, 0x04, 0xd1, 0x2c, 0x4d, 0x7f, 0xe4, 0x67, 0x25, 0x1f, 0xbe, 0x8b,
5272 0xd6, 0xd1, 0x69, 0x9b, 0x36, 0xbd, 0x10, 0x17, 0xab, 0xfd, 0x5d, 0xd7,
5273 0x0e, 0xfd, 0x67, 0x37, 0xe8, 0x07, 0x77, 0xe8, 0x70, 0x39, 0xb0, 0xf3,
5274 0xb1, 0x62, 0xec, 0xd3, 0xbc, 0xcb, 0x7f, 0x41, 0x5a, 0x19, 0x01, 0x6f,
5275 0x39, 0x75, 0xed, 0x58, 0xda, 0x1c, 0xbe, 0x77, 0xef, 0x76, 0x65, 0x32,
5276 0x00, 0x50, 0xd5, 0x82, 0x1c, 0x64, 0x43, 0x6b, 0x0a, 0x16, 0x94, 0xb1,
5277 0x29, 0x6a, 0x89, 0x2e, 0x49, 0x03, 0x40, 0x47, 0x5c, 0x8d, 0x5b, 0x23,
5278 0x1a, 0xe1, 0xef, 0xac, 0xe1, 0x61, 0xe5, 0xf1, 0x2e, 0x68, 0x2d, 0xe7,
5279 0x86, 0x96, 0x4f, 0x2b, 0x65, 0xdd, 0x07, 0xad, 0x1b, 0xb6, 0x9a, 0x03,
5280 0xe3, 0x28, 0x55, 0x22, 0x7d, 0xa5, 0x55, 0x87, 0x92, 0xbe, 0x1a, 0x2f,
5281 0xe9, 0x43, 0xb1, 0xc0, 0x8a, 0xc0, 0x48, 0xe4, 0x96, 0x4b, 0xca, 0x1d,
5282 0xab, 0x97, 0xeb, 0xf0, 0xec, 0xcd, 0x9b, 0xe3, 0xc3, 0x4b, 0x8f, 0x19,
5283 0xef, 0xc0, 0x33, 0x38, 0x73, 0xc2, 0xc5, 0xf3, 0xd5, 0x6c, 0x11, 0x5c,
5284 0xbe, 0x42, 0xaf, 0xd4, 0x9d, 0x60, 0x6e, 0x77, 0xdd, 0x82, 0x6c, 0x26,
5285 0x74, 0x1f, 0x7a, 0x22, 0x43, 0x71, 0x26, 0x69, 0x02, 0x3a, 0x57, 0x36,
5286 0x55, 0x55, 0x1e, 0x2c, 0xad, 0xab, 0x3f, 0x23, 0x20, 0xc0, 0x75, 0x70,
5287 0x04, 0xa5, 0xee, 0x87, 0x1d, 0x5b, 0xaf, 0x7c, 0xa5, 0xc5, 0x05, 0xf2,
5288 0x62, 0x9b, 0x6f, 0x2f, 0x49, 0x06, 0x00, 0x71, 0x0e, 0x1b, 0xfd, 0xde,
5289 0x0a, 0xe9, 0xb5, 0xe7, 0x50, 0x0b, 0xeb, 0x49, 0xea, 0x1a, 0x35, 0xee,
5290 0x80, 0x15, 0x6a, 0x4c, 0x2e, 0x7c, 0xd6, 0x06, 0x2e, 0x77, 0xbe, 0x9a,
5291 0x01, 0xc7, 0xaf, 0x5a, 0x44, 0x36, 0xfc, 0xfb, 0xa9, 0x41, 0xf9, 0x85,
5292 0x2d, 0xc1, 0x11, 0x74, 0x19, 0x5b, 0x3f, 0x4b, 0x8d, 0xcd, 0x23, 0x68,
5293 0x5e, 0xd6, 0xe5, 0x93, 0x48, 0x89, 0xbe, 0x7e, 0x70, 0x63, 0x74, 0xa0,
5294 0x0b, 0x81, 0x7d, 0x17, 0x95, 0xe1, 0x74, 0x6b, 0xe5, 0x96, 0x50, 0xe5,
5295 0x71, 0x1d, 0xdd, 0x97, 0x98, 0x7a, 0x15, 0xca, 0x93, 0x84, 0x6c, 0x76,
5296 0xd6, 0xa2, 0x30, 0x3d, 0xa5, 0x55, 0xa3, 0x9f, 0xbc, 0x56, 0xf5, 0xe6,
5297 0xdc, 0x12, 0xb5, 0xb2, 0x1b, 0x5b, 0x07, 0xbf, 0xa3, 0xb6, 0xeb, 0xae,
5298 0x52, 0x95, 0x8e, 0xb8, 0x5e, 0x16, 0xb3, 0xde, 0xf5, 0x34, 0xb0, 0x5a,
5299 0x4b, 0x4c, 0x75, 0x6f, 0xd3, 0x4c, 0x04, 0x1d, 0x6e, 0x2b, 0x0b, 0x3b,
5300 0x22, 0xd5, 0x16, 0xe7, 0xf5, 0xda, 0x7c, 0x9b, 0xa5, 0xef, 0x71, 0xc3,
5301 0x6e, 0xa7, 0x1f, 0xbb, 0xa6, 0xd6, 0xf7, 0xaa, 0xb7, 0xfb, 0x7c, 0x6f,
5302 0xb4, 0xfb, 0xc9, 0x67, 0xa3, 0xdd, 0x9d, 0xd1, 0x6e, 0x2f, 0x44, 0xa3,
5303 0x20, 0x80, 0xc8, 0x21, 0xbf, 0xb0, 0x9d, 0x8e, 0xeb, 0x6f, 0xd7, 0x2d,
5304 0x3b, 0xfc, 0xc0, 0xe2, 0x61, 0x14, 0x84, 0x61, 0x5b, 0x9f, 0xd0, 0x50,
5305 0x6d, 0xb3, 0xe5, 0x61, 0xa0, 0xf0, 0x21, 0x6a, 0x4b, 0x8e, 0x59, 0x77,
5306 0x55, 0x09, 0xb2, 0x7c, 0x50, 0x57, 0x1d, 0xa8, 0x8b, 0x21, 0x3a, 0x80,
5307 0x34, 0x75, 0xd7, 0x0c, 0x72, 0xdf, 0x77, 0x56, 0xff, 0x3f, 0x8d, 0xe5,
5308 0x60, 0x0f, 0x9d, 0xdb, 0x86, 0xea, 0x65, 0x72, 0xbe, 0x4c, 0xae, 0x2d,
5309 0xa4, 0x89, 0x60, 0xae, 0xc8, 0xd8, 0xc8, 0xf9, 0xf4, 0xe0, 0x3c, 0x0e,
5310 0x75, 0xaf, 0xd5, 0x46, 0xb2, 0xe6, 0x50, 0x94, 0xc8, 0xe7, 0xa7, 0x84,
5311 0x0a, 0x17, 0x2d, 0xbb, 0xfc, 0xa4, 0xb0, 0xb0, 0x14, 0x5f, 0x90, 0xf0,
5312 0x22, 0x03, 0x71, 0x93, 0x30, 0x24, 0xc6, 0xef, 0xfc, 0xf9, 0xcf, 0x5e,
5313 0x47, 0x8d, 0x19, 0x7e, 0xa6, 0x65, 0x1f, 0xe0, 0x1f, 0x78, 0xe6, 0x2f,
5314 0x02, 0x02, 0xd2, 0x8f, 0x7a, 0xfb, 0x3f, 0x02, 0xa4, 0xf6, 0xd3, 0xf0,
5315 0x47, 0xfa, 0xe7, 0x4f, 0x3d, 0xa7, 0x28, 0x81, 0x87, 0x10, 0x23, 0xc8,
5316 0x0d, 0x5e, 0x96, 0x68, 0x80, 0xb1, 0x54, 0xae, 0x46, 0x15, 0x32, 0x5a,
5317 0xd8, 0x75, 0x8b, 0xdd, 0x28, 0xc8, 0x66, 0x9f, 0xf5, 0x10, 0x1b, 0xc0,
5318 0x1d, 0x37, 0x65, 0x92, 0x14, 0x37, 0x97, 0xc2, 0x3a, 0xe4, 0x5f, 0x1a,
5319 0x18, 0xfb, 0x22, 0x5f, 0x4c, 0x0a, 0xb1, 0xeb, 0x0c, 0x02, 0xaf, 0xea,
5320 0x99, 0x33, 0x0a, 0x5c, 0x91, 0x44, 0xfd, 0xd9, 0x86, 0xcb, 0x3e, 0x63,
5321 0x18, 0xa6, 0x55, 0x34, 0x92, 0xb8, 0x9c, 0x78, 0xb9, 0x12, 0x17, 0x32,
5322 0x4f, 0x33, 0xb6, 0x83, 0x4d, 0x11, 0x17, 0x69, 0x79, 0xcb, 0x43, 0x54,
5323 0xa8, 0xb1, 0xa4, 0x8f, 0x6e, 0x04, 0xa0, 0x10, 0xf4, 0xcd, 0xe0, 0xb9,
5324 0x1c, 0x54, 0x32, 0x2a, 0xac, 0xd0, 0xcb, 0xc2, 0x9a, 0x2c, 0x7a, 0xb1,
5325 0xbc, 0x29, 0xa8, 0xdd, 0x47, 0xb2, 0xf6, 0xe9, 0x29, 0x79, 0xc6, 0x49,
5326 0x6d, 0x90, 0x96, 0xfe, 0x1b, 0xc2, 0x3d, 0x39, 0xbd, 0xe7, 0xc9, 0xce,
5327 0x6e, 0xd3, 0x1c, 0x85, 0x92, 0x37, 0x94, 0x47, 0x81, 0x2a, 0xf7, 0x24,
5328 0xa3, 0x5c, 0xd6, 0x31, 0xda, 0xfb, 0x64, 0xf7, 0x93, 0x6d, 0xd2, 0x1f,
5329 0x4f, 0x46, 0x7b, 0x21, 0x7d, 0x13, 0x6d, 0x2e, 0xfa, 0x7a, 0x25, 0x55,
5330 0xe0, 0xbb, 0x53, 0xbb, 0xd8, 0xf7, 0x4a, 0xcd, 0x05, 0xb5, 0x15, 0x94,
5331 0x59, 0xd2, 0x5f, 0xa8, 0x63, 0xce, 0x42, 0x0b, 0x91, 0x5b, 0xa3, 0x8e,
5332 0x82, 0x41, 0x6c, 0xc7, 0x70, 0x57, 0xd4, 0xff, 0xb2, 0x02, 0x51, 0xd8,
5333 0x6a, 0x92, 0xd2, 0x81, 0x5f, 0x71, 0x15, 0x3c, 0xa6, 0xbc, 0x4b, 0x26,
5334 0x8e, 0xdf, 0x52, 0x92, 0x97, 0x82, 0x52, 0x9a, 0x6b, 0x70, 0xf3, 0xe6,
5335 0x3b, 0x08, 0x29, 0x0c, 0x05, 0x20, 0x96, 0x0a, 0x01, 0x1b, 0xf8, 0x0a,
5336 0xf9, 0x28, 0xe6, 0x32, 0x36, 0x5f, 0x1b, 0x01, 0x5c, 0xdc, 0x7d, 0x2c,
5337 0x09, 0xc2, 0x5b, 0xfc, 0xd0, 0xb1, 0x24, 0xef, 0x61, 0x2a, 0xe1, 0x6c,
5338 0xd4, 0x1f, 0x48, 0x69, 0x2a, 0x71, 0xca, 0xb0, 0x34, 0xf3, 0xb8, 0xbb,
5339 0x48, 0x87, 0xcd, 0x05, 0x57, 0xd7, 0x53, 0x4a, 0x80, 0xc1, 0xc0, 0x65,
5340 0x71, 0xb9, 0x4a, 0x74, 0x0f, 0xfa, 0xc0, 0xc1, 0xd8, 0x3b, 0xbd, 0x42,
5341 0x8f, 0xd1, 0x34, 0x8b, 0x40, 0xec, 0xfd, 0xef, 0x24, 0x10, 0x7b, 0xff,
5342 0x4f, 0x20, 0xfe, 0x3b, 0x05, 0xe2, 0x79, 0x43, 0x20, 0xf8, 0xb2, 0x40,
5343 0x1a, 0xcc, 0xee, 0x0c, 0x9f, 0x77, 0x8a, 0x86, 0x71, 0x74, 0x05, 0xa7,
5344 0x98, 0x84, 0x16, 0x50, 0xbc, 0xc8, 0xdf, 0x37, 0xd4, 0x1a, 0x2b, 0x7d,
5345 0x7a, 0x71, 0x9b, 0x8f, 0x9e, 0xeb, 0x2e, 0xc7, 0xf3, 0x51, 0x74, 0xee,
5346 0x5e, 0x63, 0xff, 0x16, 0xff, 0x6c, 0x85, 0x90, 0xc5, 0x3c, 0xb9, 0xc2,
5347 0x3a, 0xe0, 0x10, 0x1a, 0xe0, 0x97, 0x38, 0x23, 0x99, 0xa5, 0xa4, 0x39,
5348 0x3c, 0x89, 0x72, 0x48, 0x14, 0x01, 0xad, 0x48, 0xf5, 0x5f, 0xeb, 0x91,
5349 0x5c, 0xb4, 0x39, 0x23, 0x8c, 0x0e, 0xca, 0xfe, 0x20, 0x0a, 0x19, 0xdc,
5350 0xba, 0xaa, 0x6d, 0x5f, 0xa5, 0xef, 0xc5, 0x29, 0xf6, 0x73, 0x52, 0xe4,
5351 0x91, 0x01, 0x00, 0x34, 0x43, 0x15, 0xec, 0xab, 0x76, 0x06, 0xf8, 0x1f,
5352 0xf2, 0x77, 0x5b, 0x26, 0xe4, 0x9f, 0xc1, 0xed, 0x2c, 0x49, 0xc9, 0x9c,
5353 0x43, 0x61, 0xfd, 0x61, 0x59, 0x98, 0xcd, 0x52, 0xf3, 0xcb, 0xf8, 0x99,
5354 0x33, 0x7b, 0x07, 0x18, 0xc4, 0xaa, 0xa3, 0xbe, 0x2c, 0xcf, 0xcc, 0x66,
5355 0xd5, 0x51, 0x42, 0x37, 0xbd, 0x92, 0xec, 0x2e, 0xe9, 0x8e, 0x63, 0x83,
5356 0x1b, 0x75, 0x18, 0x61, 0x47, 0x09, 0x5f, 0x69, 0xc3, 0x0e, 0x0d, 0xa4,
5357 0x3c, 0x96, 0x5e, 0xeb, 0x5c, 0xf4, 0xd9, 0x47, 0x8d, 0x7c, 0x17, 0xdb,
5358 0x5d, 0xaa, 0xf7, 0xb9, 0xea, 0x08, 0x44, 0xbf, 0x74, 0xd3, 0x20, 0x22,
5359 0x5b, 0x9f, 0x8c, 0x4d, 0xb0, 0x3f, 0x9a, 0x5b, 0x09, 0x9f, 0xfc, 0x98,
5360 0x69, 0xc0, 0x7d, 0x18, 0x37, 0xb2, 0x72, 0x35, 0xf9, 0x9b, 0x9a, 0xfb,
5361 0x8c, 0x50, 0x12, 0xa2, 0xcc, 0x90, 0x93, 0x5b, 0x58, 0x07, 0x57, 0x13,
5362 0xf5, 0x82, 0xb4, 0x9b, 0xa3, 0x1f, 0xc2, 0xe3, 0xe5, 0x98, 0x0f, 0x55,
5363 0xce, 0x34, 0x7a, 0xc6, 0x7d, 0x6a, 0x0d, 0x2a, 0x08, 0x01, 0xb5, 0xd6,
5364 0xdd, 0xf6, 0x13, 0x9b, 0x83, 0xa5, 0x72, 0xc7, 0x85, 0x8b, 0xe5, 0x66,
5365 0x53, 0x2d, 0x14, 0x0b, 0x76, 0xf1, 0xe3, 0x6b, 0xdb, 0x22, 0x71, 0x1d,
5366 0xb0, 0x17, 0xb2, 0x1c, 0xfc, 0x99, 0xff, 0xd3, 0x6d, 0x0d, 0xd7, 0x18,
5367 0x37, 0x2c, 0x32, 0xce, 0x8f, 0x63, 0x6f, 0xe0, 0xf5, 0x75, 0x1f, 0x78,
5368 0xc9, 0xbf, 0x95, 0x2f, 0x3c, 0xde, 0x36, 0xfc, 0x8c, 0xbf, 0xe0, 0x03,
5369 0x6f, 0x33, 0xc9, 0x51, 0x08, 0x35, 0xc4, 0x52, 0xb3, 0x9c, 0x50, 0xfa,
5370 0x26, 0x2e, 0x32, 0x09, 0x6c, 0x87, 0x75, 0x5d, 0x4a, 0x4e, 0x0c, 0xac,
5371 0x3a, 0x98, 0x52, 0x99, 0x7b, 0x66, 0xce, 0x5a, 0x76, 0xce, 0xb0, 0x37,
5372 0xf5, 0x1a, 0x1b, 0xdb, 0x80, 0x05, 0x81, 0x97, 0x79, 0x65, 0xfe, 0xae,
5373 0x68, 0xc6, 0x86, 0x65, 0xc1, 0x47, 0x44, 0x17, 0x3d, 0x90, 0x2d, 0x84,
5374 0x2f, 0xdd, 0xc2, 0x2d, 0xe3, 0x7e, 0xbd, 0x5a, 0xb2, 0xf0, 0x84, 0x18,
5375 0x24, 0xd8, 0x90, 0x4e, 0x72, 0xf1, 0xe9, 0x66, 0xb8, 0x08, 0xd1, 0x0c,
5376 0x9c, 0x78, 0x8e, 0x35, 0xe1, 0x2e, 0x4f, 0x99, 0x51, 0x27, 0x4a, 0x8a,
5377 0xa2, 0xa3, 0xb0, 0xd3, 0xc7, 0x25, 0x15, 0x0c, 0x02, 0x8e, 0xdf, 0xb8,
5378 0x0c, 0xb1, 0xa0, 0xed, 0x58, 0xad, 0xbf, 0x53, 0xc5, 0xe0, 0x5f, 0x66,
5379 0x2a, 0x8d, 0x2c, 0xae, 0x6c, 0x8b, 0xf9, 0x65, 0x40, 0x37, 0x85, 0x6b,
5380 0x8f, 0x81, 0xa9, 0xd3, 0xa4, 0x1d, 0xfe, 0x82, 0xbf, 0xb6, 0x3b, 0x1f,
5381 0xa9, 0x91, 0xac, 0xb0, 0xd7, 0x3a, 0x4f, 0x24, 0x5d, 0xe1, 0x83, 0xa7,
5382 0x4a, 0x90, 0x22, 0xed, 0x54, 0x00, 0x18, 0x9b, 0x9c, 0xb4, 0xe8, 0x89,
5383 0x19, 0xfb, 0xe4, 0x81, 0x51, 0x57, 0x4a, 0x95, 0x49, 0xb2, 0x64, 0x69,
5384 0xdd, 0x87, 0x7a, 0xb5, 0x60, 0xb7, 0x0f, 0xa9, 0xfa, 0x52, 0x82, 0xf3,
5385 0xbf, 0x70, 0x28, 0xef, 0x1f, 0x86, 0x71, 0xf6, 0xc0, 0xb1, 0xb0, 0x47,
5386 0x8e, 0x45, 0x56, 0xe4, 0x00, 0x61, 0x93, 0xc4, 0xa4, 0x42, 0x4f, 0xd8,
5387 0x00, 0x0d, 0x59, 0xdc, 0x14, 0xfc, 0x11, 0xa4, 0x63, 0x56, 0x2d, 0xcf,
5388 0x8e, 0x56, 0x2e, 0x55, 0xcf, 0x4e, 0xe5, 0x53, 0xb2, 0x2d, 0x06, 0x6e,
5389 0x5c, 0xdb, 0x52, 0xca, 0x47, 0x12, 0x2a, 0xa5, 0xde, 0x32, 0xfb, 0x8b,
5390 0xbb, 0x0d, 0xb0, 0x6d, 0x47, 0x00, 0x51, 0x30, 0xb7, 0xe7, 0x90, 0x74,
5391 0xdd, 0xb2, 0x91, 0x51, 0xf9, 0xa4, 0x6b, 0xc8, 0xa0, 0xa4, 0xff, 0x80,
5392 0x1d, 0xc0, 0xdf, 0x5f, 0x9b, 0x01, 0x18, 0x8c, 0xd4, 0x46, 0xb6, 0x2e,
5393 0x2c, 0x24, 0xa3, 0xd4, 0x41, 0xbe, 0x15, 0x4c, 0x2f, 0x5a, 0x04, 0x39,
5394 0x06, 0xab, 0x19, 0x9e, 0x96, 0xe0, 0x4b, 0x82, 0xe5, 0x6b, 0x0d, 0xd8,
5395 0x17, 0x57, 0x61, 0x9c, 0x0c, 0x9e, 0x74, 0x3b, 0xc2, 0xb4, 0x6f, 0xf7,
5396 0xaa, 0xf0, 0x90, 0xda, 0x91, 0xcd, 0x52, 0x3e, 0xc4, 0x1d, 0x4b, 0xeb,
5397 0xd8, 0x4b, 0x99, 0xa3, 0x19, 0x42, 0xac, 0x1f, 0x14, 0x6b, 0x74, 0x5c,
5398 0xc2, 0xb1, 0x9d, 0x73, 0xf4, 0x4f, 0x4f, 0x92, 0x7c, 0xbf, 0x63, 0x96,
5399 0xf4, 0x63, 0x9d, 0x04, 0x21, 0x3a, 0x4d, 0x98, 0xa5, 0xd6, 0x88, 0xd6,
5400 0x61, 0x4a, 0xd7, 0x0c, 0x6a, 0x1d, 0xaa, 0xb4, 0xb9, 0xf6, 0x5d, 0xd9,
5401 0x94, 0x8f, 0x88, 0xb9, 0x8c, 0x2e, 0xab, 0x61, 0x20, 0x6b, 0x03, 0x6c,
5402 0x62, 0x74, 0xdc, 0x93, 0xca, 0x18, 0x14, 0x8e, 0xf1, 0xf1, 0xab, 0x90,
5403 0x0b, 0x5c, 0x7f, 0xe4, 0x80, 0x3b, 0xa0, 0x13, 0xd1, 0xbf, 0xb8, 0x8a,
5404 0x00, 0x69, 0xd4, 0x86, 0x88, 0xaf, 0xd4, 0x86, 0xd2, 0xe1, 0xa6, 0x6b,
5405 0x2d, 0xde, 0xee, 0x68, 0x07, 0xda, 0xf6, 0xfd, 0x03, 0x62, 0x93, 0xfb,
5406 0x7c, 0x6e, 0xfd, 0xd4, 0x54, 0xba, 0x6f, 0x55, 0xcd, 0x7a, 0xff, 0x2c,
5407 0xc6, 0xc5, 0xef, 0x6a, 0xa7, 0x8c, 0xde, 0xa9, 0x96, 0x4a, 0x2e, 0xfb,
5408 0xe8, 0x51, 0x3e, 0x3c, 0x64, 0x6a, 0x19, 0x1d, 0x1e, 0x27, 0x8e, 0xe3,
5409 0xfd, 0xdd, 0x9d, 0xcf, 0x76, 0xba, 0xd9, 0x26, 0x60, 0x43, 0xf8, 0xd8,
5410 0xb9, 0x23, 0xab, 0x84, 0x7d, 0x68, 0x2c, 0x26, 0x41, 0x58, 0x44, 0x0f,
5411 0x49, 0x8e, 0x8a, 0x74, 0x69, 0x7e, 0xc4, 0x48, 0x52, 0xf5, 0x1e, 0xaa,
5412 0xcb, 0xcd, 0x65, 0xd2, 0x5b, 0x34, 0xc1, 0xb9, 0xf1, 0x5d, 0xac, 0xa0,
5413 0x23, 0x6d, 0xd3, 0x57, 0xda, 0xab, 0xcd, 0x8d, 0x19, 0xef, 0xb5, 0xca,
5414 0x74, 0xa6, 0x55, 0xf4, 0xc1, 0xdd, 0xda, 0xa2, 0xac, 0x26, 0x8f, 0x70,
5415 0x39, 0x7e, 0xcd, 0x24, 0x87, 0x82, 0xf8, 0x00, 0x2d, 0xe1, 0xc7, 0x32,
5416 0x39, 0xae, 0xa9, 0x18, 0xf5, 0xdf, 0x4e, 0xe3, 0xf8, 0x77, 0x6b, 0xcf,
5417 0x2a, 0x05, 0x78, 0xea, 0x76, 0x4f, 0x59, 0x9f, 0x67, 0xb5, 0xa2, 0x3e,
5418 0xca, 0xbe, 0x23, 0x97, 0x6f, 0x30, 0xee, 0xb6, 0xb9, 0xdd, 0x3c, 0xbf,
5419 0xbf, 0x4b, 0xe7, 0x42, 0x01, 0xdf, 0x78, 0x66, 0x3c, 0x86, 0xca, 0x1c,
5420 0x85, 0x08, 0x5f, 0x48, 0x98, 0xde, 0xa6, 0x4b, 0xb0, 0x24, 0x32, 0xed,
5421 0x46, 0x17, 0x01, 0x76, 0x99, 0xc4, 0x05, 0x59, 0x55, 0x1c, 0xcb, 0x0d,
5422 0x06, 0xf7, 0x3f, 0xb8, 0x59, 0xf0, 0xe5, 0x73, 0x7d, 0x07, 0x74, 0xbe,
5423 0x2b, 0xac, 0xb3, 0x3d, 0x46, 0x6c, 0x67, 0x8c, 0x6a, 0xef, 0x8c, 0xcb,
5424 0x9d, 0xa4, 0x55, 0x11, 0x2b, 0xfe, 0x59, 0xb9, 0xdf, 0x82, 0x98, 0x13,
5425 0x0a, 0x6b, 0xf1, 0xe5, 0x78, 0xbc, 0x8e, 0x01, 0x8e, 0x74, 0xdf, 0xff,
5426 0xc0, 0x57, 0xb5, 0x01, 0xb1, 0x5d, 0x90, 0x81, 0xfa, 0xe5, 0xf1, 0xab,
5427 0xb3, 0x8b, 0xe3, 0x7a, 0xce, 0xb1, 0xf0, 0x73, 0x75, 0x95, 0x28, 0xdc,
5428 0xfc, 0x1b, 0xa0, 0xcf, 0xb0, 0x9c, 0x42, 0xc2, 0xf1, 0xf3, 0xef, 0x8e,
5429 0x5c, 0xe7, 0xd2, 0xcc, 0xf8, 0xf3, 0x5c, 0x8b, 0x03, 0x23, 0x87, 0x6f,
5430 0xa5, 0x58, 0xc4, 0xd3, 0x8a, 0x49, 0x56, 0x35, 0x97, 0xd2, 0x75, 0x4f,
5431 0x98, 0x3d, 0x50, 0x19, 0x4f, 0x8b, 0xb0, 0x0b, 0xd0, 0xb2, 0x2c, 0xd9,
5432 0x45, 0xe1, 0x9a, 0xed, 0xa8, 0x9e, 0x90, 0xbe, 0x97, 0xaa, 0xb6, 0xaa,
5433 0xe6, 0x18, 0x38, 0xc0, 0x58, 0x02, 0x36, 0x72, 0x72, 0x23, 0xbc, 0xb7,
5434 0xaf, 0x00, 0x5b, 0x82, 0x59, 0x90, 0xaf, 0xb4, 0x6a, 0x14, 0x09, 0x45,
5435 0x94, 0xf0, 0xbe, 0x4a, 0x10, 0x79, 0xa6, 0x62, 0x66, 0x31, 0xe4, 0x90,
5436 0xba, 0x30, 0xfa, 0x9b, 0xb0, 0x5f, 0x5e, 0x09, 0x1b, 0xca, 0x3a, 0x6a,
5437 0x16, 0xfb, 0xfe, 0x66, 0x49, 0x9a, 0xc5, 0x77, 0xd9, 0xcd, 0x9f, 0x15,
5438 0x6e, 0xfd, 0x73, 0xdf, 0x5f, 0xca, 0x3b, 0xd8, 0x14, 0x1d, 0xa9, 0xa8,
5439 0x7a, 0x46, 0x58, 0x64, 0x46, 0x2e, 0xe8, 0xdc, 0x5d, 0xd6, 0xd3, 0x46,
5440 0x3e, 0xea, 0xce, 0x51, 0x77, 0xcc, 0x7b, 0xc2, 0x34, 0x6e, 0xde, 0x6b,
5441 0xe3, 0xce, 0x76, 0xf5, 0xee, 0xa5, 0x91, 0xc1, 0x63, 0x3c, 0x34, 0x01,
5442 0x85, 0x82, 0x83, 0xf1, 0xc4, 0x13, 0x25, 0x41, 0xfd, 0xc1, 0x30, 0xf4,
5443 0x60, 0x8d, 0x28, 0x1f, 0xb2, 0x0a, 0xc1, 0x42, 0xdc, 0xab, 0xa6, 0x79,
5444 0x51, 0xb4, 0xef, 0x1f, 0x2c, 0x4d, 0x5e, 0x76, 0x4b, 0x78, 0x0f, 0x9f,
5445 0x3f, 0x7b, 0xce, 0x5b, 0x0f, 0x45, 0x0a, 0x35, 0xa1, 0x50, 0xb1, 0x80,
5446 0xa0, 0x21, 0xab, 0x15, 0x18, 0x6d, 0xe9, 0x03, 0x93, 0x00, 0xbd, 0x16,
5447 0x4c, 0x92, 0xb9, 0x50, 0xc0, 0x8d, 0x83, 0x66, 0x46, 0x6b, 0xaf, 0x51,
5448 0xeb, 0x4a, 0x06, 0x42, 0xcf, 0x69, 0x41, 0x67, 0x5a, 0x81, 0xf8, 0x56,
5449 0x91, 0xcc, 0x71, 0xd0, 0x3b, 0xb7, 0xe6, 0xe6, 0x2c, 0x6c, 0x97, 0x8a,
5450 0x10, 0xec, 0x26, 0xcc, 0x18, 0xde, 0xfe, 0xd4, 0x43, 0x04, 0x14, 0x36,
5451 0xff, 0xb4, 0xe5, 0xb2, 0x8e, 0x4d, 0x36, 0x39, 0x40, 0x95, 0x66, 0xab,
5452 0x24, 0xcc, 0xad, 0xef, 0x1e, 0x2c, 0x96, 0x13, 0x93, 0xd7, 0xc4, 0xba,
5453 0x0b, 0x7b, 0x79, 0x95, 0x2f, 0xa3, 0xd8, 0x88, 0xf0, 0x75, 0xe9, 0xdb,
5454 0x88, 0x20, 0x1e, 0x07, 0x60, 0x95, 0x5a, 0x02, 0xd9, 0x0e, 0x30, 0x32,
5455 0x3a, 0x32, 0x84, 0xeb, 0x4d, 0x16, 0x07, 0xc1, 0xfe, 0x71, 0xb5, 0xa5,
5456 0xcb, 0xae, 0xe6, 0xa4, 0x80, 0x48, 0xb8, 0x28, 0x02, 0x88, 0xb5, 0x9d,
5457 0x64, 0xb4, 0x29, 0xd8, 0xd6, 0xaa, 0xf9, 0x54, 0xad, 0x35, 0xa5, 0xc4,
5458 0x8e, 0xba, 0xd2, 0x92, 0x75, 0xd0, 0x34, 0x93, 0xce, 0x92, 0xd9, 0x35,
5459 0x2c, 0xab, 0x07, 0xb9, 0xcf, 0x27, 0xb4, 0x1f, 0xe8, 0x87, 0x4b, 0xd4,
5460 0x10, 0x00, 0x08, 0x53, 0xb8, 0x43, 0x5b, 0xd4, 0xf1, 0x8a, 0x38, 0x66,
5461 0x49, 0x88, 0x5e, 0xf9, 0x74, 0x06, 0xf5, 0x92, 0x09, 0xab, 0xe6, 0x15,
5462 0x10, 0xc7, 0x7e, 0x37, 0x62, 0x4c, 0xf8, 0xee, 0x1a, 0xa1, 0x6b, 0x39,
5463 0x76, 0xa6, 0x37, 0xd7, 0xc5, 0x52, 0x32, 0x7e, 0xbb, 0x0a, 0x3c, 0x04,
5464 0xc6, 0x8d, 0x3c, 0x69, 0x0b, 0xea, 0x78, 0xbf, 0xe5, 0xd5, 0x93, 0x23,
5465 0xdb, 0xa1, 0x01, 0x5a, 0x89, 0x16, 0xbb, 0xbb, 0x39, 0x8f, 0xd6, 0x91,
5466 0xbd, 0xea, 0x4f, 0x15, 0xd7, 0x9a, 0xb7, 0xe5, 0x26, 0x0f, 0xfe, 0x37,
5467 0xdd, 0xcd, 0x69, 0x1b, 0x02, 0xd1, 0x90, 0x16, 0xac, 0x59, 0x88, 0x8b,
5468 0x55, 0xbd, 0x64, 0x51, 0x60, 0x2e, 0x07, 0xfb, 0x48, 0xbb, 0x82, 0xea,
5469 0xcd, 0x22, 0x9f, 0x49, 0xf0, 0xfe, 0x43, 0x73, 0xc1, 0x0f, 0xda, 0x5c,
5470 0xa8, 0x8f, 0xb2, 0x0c, 0xc7, 0x85, 0x46, 0xb8, 0x66, 0x66, 0xb9, 0x4e,
5471 0x0f, 0x34, 0xad, 0x4d, 0x31, 0x6e, 0xd0, 0x3c, 0x5e, 0x0e, 0x87, 0x90,
5472 0x45, 0xf9, 0xb4, 0x0a, 0x46, 0xc0, 0x0f, 0x74, 0x37, 0xa7, 0x11, 0xc5,
5473 0xf6, 0xc8, 0xd8, 0x5f, 0x85, 0xe4, 0x9c, 0x0f, 0x8d, 0x8c, 0x1f, 0x6c,
5474 0xad, 0x32, 0xfd, 0x50, 0xb4, 0x78, 0x63, 0x89, 0x65, 0x71, 0xd6, 0xc4,
5475 0xb1, 0x6b, 0x0b, 0x6c, 0x2b, 0x8c, 0x3e, 0x74, 0x2d, 0x30, 0x7e, 0xc1,
5476 0x4f, 0x0f, 0xbb, 0x9b, 0x73, 0x2b, 0xec, 0x1e, 0x5c, 0xbb, 0xc0, 0xfa,
5477 0x8d, 0xd6, 0x2c, 0xcc, 0x33, 0xa5, 0x3c, 0x7c, 0x27, 0x29, 0xaa, 0x4c,
5478 0xed, 0x51, 0xbd, 0x7b, 0x7c, 0x42, 0xe6, 0x99, 0x71, 0xcc, 0x32, 0x0f,
5479 0x8e, 0x57, 0x14, 0x0a, 0x3d, 0x8c, 0xeb, 0xec, 0xb3, 0x91, 0x80, 0x76,
5480 0xd6, 0x88, 0xbd, 0xff, 0x5e, 0xe4, 0xb9, 0x61, 0xe9, 0x4e, 0x91, 0x66,
5481 0x5a, 0x29, 0x46, 0x15, 0x4c, 0xd0, 0xc7, 0xae, 0xd8, 0x47, 0x10, 0x02,
5482 0x69, 0x0d, 0x71, 0x71, 0xcb, 0x0e, 0x2a, 0x67, 0x18, 0xbc, 0x5b, 0x8f,
5483 0x7b, 0x80, 0xa0, 0xe1, 0x69, 0x5b, 0x6d, 0x19, 0x92, 0x65, 0x72, 0x05,
5484 0x14, 0xc3, 0x6e, 0x3b, 0x3f, 0x22, 0xc7, 0xf5, 0x4f, 0xba, 0x3d, 0xd9,
5485 0xec, 0xdf, 0xf2, 0x7e, 0x66, 0x1f, 0xe7, 0xbf, 0xda, 0xa7, 0xc3, 0x02,
5486 0x23, 0x2e, 0xc3, 0x98, 0x0d, 0x58, 0x69, 0xec, 0xca, 0x50, 0x7c, 0x6b,
5487 0xa6, 0xa2, 0x1b, 0x5a, 0xd7, 0xfa, 0x78, 0x21, 0x55, 0x89, 0x8c, 0x19,
5488 0x0c, 0xcb, 0xb1, 0x7e, 0x72, 0xf4, 0x69, 0xdf, 0x45, 0xd1, 0xee, 0x6e,
5489 0x07, 0xe4, 0xc1, 0x3c, 0xbb, 0xed, 0xf0, 0x88, 0xc2, 0xb3, 0x2a, 0x6e,
5490 0x0d, 0x95, 0x37, 0x4b, 0x98, 0x8e, 0x5a, 0x64, 0x01, 0xf0, 0xcb, 0x0f,
5491 0xef, 0x2c, 0xe9, 0xf9, 0xda, 0x39, 0x2e, 0x16, 0x1f, 0xd8, 0xe4, 0xf4,
5492 0x80, 0x1f, 0x15, 0x33, 0x17, 0x07, 0xa3, 0x6a, 0xed, 0x4b, 0x4d, 0xa4,
5493 0x5e, 0x33, 0xf3, 0xeb, 0x7a, 0x50, 0x93, 0xc2, 0xf5, 0x3d, 0xd1, 0x27,
5494 0x3b, 0xbb, 0xe3, 0x27, 0x97, 0xa3, 0x19, 0x0f, 0xbe, 0x67, 0xdd, 0xcd,
5495 0x69, 0x77, 0xfd, 0x5b, 0x3a, 0x3d, 0x03, 0x97, 0xf9, 0xad, 0xd7, 0x79,
5496 0xbe, 0x45, 0xb7, 0x65, 0xc3, 0x36, 0xf8, 0x2f, 0x52, 0x10, 0x7c, 0x67,
5497 0x9b, 0x87, 0x05, 0x24, 0x0b, 0xa0, 0x33, 0x01, 0x16, 0x79, 0x81, 0xff,
5498 0x7c, 0xbe, 0xb6, 0xbc, 0xec, 0xd8, 0xd7, 0x98, 0xbd, 0x90, 0xe0, 0x21,
5499 0x6b, 0x13, 0x26, 0x78, 0x52, 0xb4, 0xc9, 0x26, 0x23, 0x93, 0xa4, 0x66,
5500 0x36, 0xe8, 0x8c, 0x19, 0xf7, 0xde, 0x55, 0xd9, 0x6b, 0xcb, 0x00, 0xb5,
5501 0xb1, 0x94, 0xc1, 0xdd, 0xa6, 0x3b, 0xfb, 0x20, 0xaa, 0xdf, 0xcc, 0xcc,
5502 0xbc, 0xe6, 0xca, 0x39, 0x0a, 0x2b, 0xe6, 0x4f, 0x37, 0x8d, 0x98, 0x0b,
5503 0xfe, 0x70, 0x69, 0xd6, 0x66, 0x58, 0xa8, 0x95, 0x2b, 0x75, 0x3a, 0x53,
5504 0x9e, 0x69, 0x9a, 0x5a, 0x13, 0xb8, 0x33, 0x7c, 0xfa, 0xfc, 0x79, 0xed,
5505 0x48, 0x0b, 0xef, 0xcf, 0xcf, 0x76, 0x76, 0x84, 0xbc, 0xaa, 0xf9, 0x1a,
5506 0xfd, 0x62, 0xf8, 0x1c, 0x2f, 0xd6, 0x5f, 0x13, 0xaa, 0xb4, 0xf5, 0xef,
5507 0x0d, 0xf9, 0x37, 0x1d, 0x9f, 0xc3, 0x1d, 0x7f, 0xed, 0x5b, 0xcf, 0xf9,
5508 0x73, 0x1d, 0x6f, 0xe1, 0x61, 0x99, 0xc6, 0xfc, 0xea, 0x8a, 0xc9, 0x78,
5509 0xf8, 0x49, 0x29, 0x1f, 0x93, 0x17, 0xf7, 0x71, 0x31, 0x6b, 0x0f, 0x77,
5510 0x67, 0x30, 0xdc, 0x5d, 0x37, 0x5c, 0x57, 0x4a, 0x17, 0xeb, 0xc9, 0x37,
5511 0x28, 0x32, 0xa0, 0x37, 0xbf, 0xde, 0xea, 0x1a, 0xfd, 0xa7, 0x3b, 0x3b,
5512 0x83, 0x4f, 0xf8, 0xbf, 0xcf, 0x9f, 0xaf, 0x0d, 0x53, 0xf9, 0x6f, 0x3c,
5513 0xb1, 0xa1, 0xd5, 0x7a, 0x4b, 0xed, 0x74, 0xb4, 0xbe, 0x4b, 0xad, 0xee,
5514 0x3e, 0x7f, 0x3e, 0xe0, 0xaf, 0x3c, 0xfb, 0xa8, 0xd6, 0xab, 0xfb, 0xdc,
5515 0x7b, 0x5b, 0xf8, 0x75, 0x2f, 0x8f, 0x65, 0x63, 0x04, 0x7c, 0x23, 0x78,
5516 0x09, 0x3a, 0xaf, 0x20, 0x95, 0xd0, 0x83, 0x78, 0xc3, 0x4b, 0x1d, 0x00,
5517 0x03, 0x4b, 0xb0, 0x72, 0xc8, 0xc5, 0xc2, 0xae, 0x2d, 0xb1, 0x07, 0xac,
5518 0x9a, 0x4b, 0xdf, 0x43, 0x99, 0x05, 0xbf, 0x8e, 0x4a, 0xe5, 0x81, 0x39,
5519 0x1c, 0x6d, 0x92, 0xbc, 0x6c, 0xc1, 0x87, 0x70, 0x17, 0xcf, 0x53, 0x07,
5520 0xf1, 0xee, 0x03, 0xf0, 0x25, 0x94, 0x2c, 0x7d, 0xbe, 0x50, 0xf4, 0xb9,
5521 0xdc, 0xe2, 0x7c, 0xe6, 0xcc, 0x7e, 0x3d, 0x44, 0xe4, 0xb9, 0xa1, 0x3c,
5522 0x21, 0x1b, 0x0d, 0x97, 0xc0, 0xf7, 0x23, 0x21, 0x0a, 0x67, 0x50, 0x46,
5523 0xe3, 0x9b, 0x91, 0x67, 0xfd, 0xf2, 0x24, 0xa5, 0x50, 0xe9, 0x8a, 0xf0,
5524 0xf2, 0x43, 0xed, 0x97, 0x01, 0x39, 0xb5, 0x39, 0x99, 0xb2, 0xc0, 0xa3,
5525 0x38, 0x4b, 0x8c, 0x3a, 0xb6, 0x5e, 0x70, 0xd2, 0xbd, 0x2e, 0x8e, 0x9c,
5526 0x95, 0x5c, 0x60, 0xfd, 0x26, 0xfb, 0xc1, 0x67, 0x64, 0x21, 0x5a, 0xc9,
5527 0x57, 0xda, 0xfb, 0xb8, 0x48, 0x2c, 0x97, 0x94, 0xae, 0xda, 0xb6, 0xf7,
5528 0x1d, 0xf3, 0xbe, 0x12, 0xe9, 0x0b, 0x7c, 0x3b, 0xaa, 0x95, 0xfc, 0x35,
5529 0x92, 0x5e, 0x0d, 0x78, 0xce, 0x14, 0x5b, 0x22, 0xa4, 0x1d, 0xe2, 0xfa,
5530 0x45, 0x42, 0x55, 0x88, 0xf3, 0xbb, 0x06, 0xef, 0xa7, 0x0e, 0x59, 0xa8,
5531 0x17, 0x37, 0x1a, 0x98, 0xea, 0xeb, 0x44, 0x30, 0xcb, 0xc2, 0x65, 0xe8,
5532 0xaa, 0x54, 0xbb, 0x51, 0x18, 0x15, 0x1a, 0x54, 0x92, 0x4c, 0xbe, 0xb1,
5533 0xbb, 0x69, 0xd9, 0x76, 0x8b, 0x4d, 0x0a, 0x2f, 0x24, 0xb8, 0x7e, 0x6a,
5534 0x2b, 0xc6, 0x8b, 0xe5, 0x94, 0x20, 0xad, 0x1a, 0xc9, 0x61, 0x88, 0x7d,
5535 0x10, 0xf9, 0x0a, 0x1c, 0x06, 0xc6, 0x1a, 0x9a, 0x4b, 0x24, 0x7f, 0x6b,
5536 0x84, 0x3e, 0xb0, 0x7c, 0xca, 0x4a, 0xf0, 0x67, 0xc3, 0x25, 0x4d, 0xde,
5537 0x57, 0x60, 0xf9, 0x0d, 0x6f, 0xfd, 0xd1, 0xf8, 0xe4, 0x7f, 0x1e, 0x8f,
5538 0x42, 0xf0, 0xe5, 0xaf, 0xe4, 0x6f, 0xbc, 0x08, 0xb0, 0xfc, 0xfc, 0x5a,
5539 0x17, 0x8e, 0x3e, 0x20, 0x2a, 0xf3, 0x5c, 0xff, 0xee, 0x76, 0x5b, 0xc3,
5540 0x61, 0x42, 0x6e, 0x12, 0x94, 0xd2, 0xea, 0x32, 0xd4, 0xd0, 0xb1, 0x2a,
5541 0x5e, 0x2c, 0xa3, 0x8e, 0x34, 0x10, 0x81, 0x9a, 0x18, 0xb7, 0x14, 0x5b,
5542 0xd5, 0x1e, 0x11, 0x12, 0xdf, 0x76, 0xb9, 0x94, 0x82, 0xe4, 0x14, 0x59,
5543 0x76, 0x7a, 0x0f, 0x21, 0x5a, 0xf7, 0x9d, 0xd0, 0x71, 0xcc, 0x27, 0x71,
5544 0xbe, 0x10, 0x56, 0x96, 0xce, 0xe4, 0x31, 0x49, 0x1c, 0x0f, 0xc9, 0x0f,
5545 0x9d, 0x31, 0x24, 0x34, 0x52, 0x52, 0xc5, 0x8a, 0x01, 0x4c, 0x88, 0x27,
5546 0x86, 0xb4, 0xae, 0x1d, 0x90, 0x72, 0xab, 0xd0, 0x0b, 0x66, 0x02, 0xf9,
5547 0x78, 0x04, 0x26, 0x20, 0x57, 0x08, 0x10, 0xbc, 0x42, 0x9e, 0xa7, 0xaa,
5548 0x44, 0xf5, 0x47, 0x50, 0xf6, 0xf2, 0xc3, 0xad, 0x2a, 0x32, 0x9c, 0xaa,
5549 0x09, 0x07, 0x43, 0xa3, 0x48, 0xf1, 0xa8, 0x95, 0xaa, 0x94, 0x5c, 0xcf,
5550 0x42, 0xf6, 0x99, 0xfa, 0x2c, 0xdc, 0xd7, 0x96, 0x35, 0x0d, 0xa0, 0x12,
5551 0xf1, 0x5c, 0x2e, 0x30, 0x05, 0xf3, 0xa7, 0xc0, 0xf7, 0x4e, 0xd7, 0x9a,
5552 0xdc, 0xf8, 0xce, 0xb5, 0x42, 0x48, 0xd4, 0x4e, 0x93, 0xf3, 0x3c, 0xdd,
5553 0x9c, 0xaa, 0x39, 0x03, 0x13, 0x9e, 0x2c, 0xa6, 0x6e, 0x4a, 0x47, 0xdd,
5554 0xb2, 0x00, 0x3e, 0x5d, 0xd2, 0x45, 0x57, 0xf4, 0x15, 0x14, 0xc6, 0x69,
5555 0xfa, 0x31, 0xa9, 0x8b, 0x2d, 0x3e, 0xf1, 0x5a, 0x28, 0x35, 0xc8, 0x3d,
5556 0x61, 0x04, 0xc7, 0x63, 0xb1, 0xff, 0x1b, 0x31, 0x27, 0x6a, 0xa1, 0x4a,
5557 0xe1, 0xc6, 0x45, 0x2d, 0x47, 0x1a, 0xb0, 0xcb, 0xf8, 0x29, 0xbb, 0x9d,
5558 0xb4, 0xb3, 0x24, 0xb6, 0x54, 0x4a, 0x29, 0xdc, 0xdb, 0xce, 0x7f, 0x41,
5559 0x15, 0x5f, 0x47, 0xe9, 0x06, 0xa0, 0x54, 0x2e, 0xb5, 0x35, 0xe9, 0xf9,
5560 0x0e, 0x32, 0x59, 0xc3, 0xa5, 0xd7, 0x28, 0x9e, 0xd0, 0x1f, 0x3b, 0x07,
5561 0xa7, 0x48, 0xde, 0x13, 0xdf, 0x6f, 0x7d, 0xbc, 0x1d, 0xec, 0x04, 0xe2,
5562 0xa0, 0x9d, 0x24, 0x42, 0xd9, 0x01, 0x4d, 0x0a, 0xcd, 0x09, 0x1f, 0x23,
5563 0xeb, 0x99, 0xde, 0x30, 0x8f, 0x86, 0x3d, 0xb6, 0xbc, 0x40, 0x9c, 0x10,
5564 0x34, 0x37, 0x7a, 0x24, 0x66, 0xbf, 0xfb, 0xbc, 0xce, 0x95, 0xc8, 0x7c,
5565 0xc6, 0x73, 0xd2, 0xe2, 0x2f, 0x38, 0x0e, 0x86, 0x30, 0xd8, 0xfe, 0x9a,
5566 0xdc, 0x8c, 0x73, 0x47, 0x0b, 0x32, 0xa5, 0x2e, 0x30, 0xf4, 0x58, 0x31,
5567 0xe8, 0x32, 0x46, 0x3f, 0x48, 0x01, 0xc6, 0x0b, 0xf4, 0x51, 0xe2, 0x62,
5568 0xcb, 0x38, 0x6d, 0xf9, 0xb5, 0x84, 0x2e, 0x0b, 0x0a, 0xc8, 0x86, 0xc6,
5569 0xe6, 0xa1, 0x29, 0x05, 0x2b, 0x3b, 0x22, 0x30, 0xc8, 0xcd, 0x72, 0xcb,
5570 0x68, 0xc1, 0xd6, 0x18, 0xeb, 0xb5, 0x3c, 0x07, 0xa5, 0x58, 0x84, 0x83,
5571 0x81, 0xd3, 0xda, 0xef, 0xd3, 0x32, 0x51, 0x2e, 0x32, 0xe0, 0x61, 0x30,
5572 0xe4, 0x99, 0x7f, 0xa9, 0x0d, 0x9d, 0x99, 0x08, 0xe5, 0x08, 0xe7, 0xf0,
5573 0x1f, 0x6a, 0x59, 0x6e, 0x14, 0x13, 0x8d, 0x50, 0x13, 0x92, 0xf6, 0xcd,
5574 0x76, 0x52, 0x4d, 0xb7, 0x85, 0x22, 0x00, 0x02, 0x9f, 0x81, 0xb0, 0xca,
5575 0x5d, 0x09, 0x5a, 0x65, 0x7d, 0x5a, 0xb1, 0x1d, 0xf1, 0x39, 0x04, 0x54,
5576 0xd6, 0x41, 0x9e, 0x85, 0x94, 0xe4, 0xd1, 0x60, 0x62, 0x87, 0x6f, 0xf6,
5577 0xca, 0xd2, 0xed, 0x83, 0x49, 0x77, 0x51, 0x37, 0x4b, 0xc3, 0xaf, 0x97,
5578 0xa7, 0xa6, 0x57, 0x3c, 0x7d, 0x7a, 0x87, 0xf4, 0xa2, 0x48, 0xad, 0x1d,
5579 0x35, 0x0e, 0xe5, 0x55, 0xe7, 0xdb, 0x71, 0xc4, 0x30, 0xc1, 0xc2, 0x77,
5580 0x25, 0xa2, 0xf0, 0xee, 0x41, 0x0f, 0x04, 0xb2, 0x65, 0x99, 0x6d, 0xc8,
5581 0x36, 0x1e, 0x7d, 0xb8, 0xf6, 0xa0, 0x9b, 0xfc, 0x30, 0xa5, 0x8c, 0x1d,
5582 0xce, 0x33, 0xfd, 0x89, 0x4b, 0xbc, 0xe8, 0xc0, 0x3c, 0xe9, 0xe2, 0x3e,
5583 0x8e, 0x5b, 0xd9, 0x1d, 0x3d, 0xa9, 0xef, 0x01, 0xbe, 0x06, 0x76, 0x51,
5584 0x85, 0xc2, 0x72, 0x83, 0x22, 0xe4, 0x54, 0x1d, 0x81, 0x25, 0x49, 0x22,
5585 0x01, 0xbb, 0x15, 0x12, 0x43, 0xa8, 0x20, 0xf2, 0xed, 0xca, 0xb1, 0xfa,
5586 0x9a, 0xf5, 0xf1, 0x1a, 0x95, 0x3a, 0x90, 0x0c, 0x1c, 0x23, 0xb8, 0x2d,
5587 0x14, 0xe8, 0xe7, 0x2f, 0x42, 0x32, 0x66, 0xf5, 0x15, 0x93, 0x2e, 0xe3,
5588 0xad, 0xb2, 0x5a, 0x8e, 0xda, 0x44, 0xa6, 0x0e, 0xaa, 0xa4, 0xef, 0xd2,
5589 0xe7, 0x77, 0xc2, 0xa4, 0x26, 0x40, 0xfa, 0x15, 0x44, 0xea, 0xaa, 0xae,
5590 0x1a, 0xce, 0xa3, 0xbb, 0xe6, 0x2d, 0x88, 0x18, 0xdd, 0x90, 0x75, 0xcc,
5591 0x9a, 0x95, 0x20, 0x2c, 0x11, 0xfb, 0x3c, 0x29, 0xc2, 0xc0, 0x3c, 0xb0,
5592 0xb0, 0xd8, 0xd3, 0xf7, 0xef, 0xdb, 0x2b, 0xe1, 0xab, 0x0b, 0x49, 0xf1,
5593 0x70, 0x39, 0x7e, 0x9e, 0xbd, 0x7f, 0x5f, 0xff, 0xe5, 0xe3, 0xc5, 0x7c,
5594 0xe3, 0x49, 0x2e, 0x79, 0xab, 0x32, 0x53, 0x71, 0x30, 0x8b, 0x46, 0xeb,
5595 0x27, 0x77, 0x23, 0x92, 0xd3, 0xb4, 0x93, 0x73, 0x4d, 0xaf, 0x7c, 0xa2,
5596 0x91, 0x2a, 0x01, 0x54, 0xcb, 0x31, 0xc1, 0xa4, 0x06, 0x37, 0xb4, 0x2b,
5597 0xa5, 0x52, 0x8c, 0x0a, 0xbd, 0x2b, 0x25, 0xb3, 0xd2, 0xac, 0x94, 0x26,
5598 0x3e, 0x21, 0x16, 0xd6, 0x7d, 0x90, 0x6f, 0xaf, 0xb2, 0x2a, 0x9d, 0xf3,
5599 0x3b, 0x60, 0x1e, 0xa7, 0xd7, 0x77, 0x69, 0xfe, 0xd3, 0x6c, 0xc5, 0x17,
5600 0x29, 0x2d, 0xbc, 0x17, 0x96, 0x8a, 0xef, 0x9c, 0xf6, 0x79, 0xfc, 0x10,
5601 0xb9, 0x90, 0x7e, 0xab, 0x24, 0xb7, 0xf6, 0x4b, 0xd8, 0x6c, 0x2c, 0xbf,
5602 0x05, 0x73, 0x31, 0xc4, 0xab, 0x5d, 0xbc, 0xe6, 0x76, 0x06, 0x69, 0x32,
5603 0x4f, 0xf2, 0x9e, 0x26, 0x5b, 0x50, 0x7e, 0x92, 0x92, 0x46, 0xb7, 0x3b,
5604 0x3e, 0x65, 0xae, 0xf3, 0x82, 0x16, 0x74, 0xa1, 0xa6, 0x86, 0xe0, 0x15,
5605 0x5b, 0x78, 0x01, 0xf9, 0x94, 0xa3, 0x24, 0x17, 0xec, 0x28, 0xc8, 0x66,
5606 0x25, 0xc0, 0x9a, 0x57, 0x6a, 0x9c, 0x1a, 0x4f, 0x2e, 0x66, 0xd7, 0x7a,
5607 0xfd, 0xd8, 0x51, 0xb4, 0x17, 0x6e, 0xc3, 0xb5, 0x46, 0xb0, 0xa8, 0x02,
5608 0x1f, 0x8f, 0x32, 0x43, 0xb8, 0xc6, 0xb3, 0xe7, 0x88, 0x07, 0x5a, 0x93,
5609 0x3b, 0x55, 0xd2, 0x41, 0x57, 0x3c, 0xb2, 0xb1, 0xef, 0x65, 0x12, 0x1f,
5610 0x61, 0x5a, 0xf7, 0xe5, 0xc4, 0xcb, 0x79, 0x92, 0x2c, 0x6d, 0x4e, 0x5d,
5611 0xe1, 0x24, 0x2b, 0x1f, 0x8a, 0xbd, 0x0a, 0x33, 0x41, 0x04, 0x15, 0xaa,
5612 0x61, 0x9d, 0x06, 0xc0, 0xe9, 0xce, 0x01, 0x29, 0x23, 0x86, 0xe5, 0x13,
5613 0xb4, 0x6a, 0xed, 0x3a, 0x66, 0x55, 0x75, 0xe6, 0xce, 0xfa, 0x2d, 0xeb,
5614 0x17, 0x55, 0xd7, 0x41, 0x17, 0xd6, 0x09, 0x95, 0xae, 0x46, 0xa3, 0xf4,
5615 0x67, 0x8b, 0x96, 0x0c, 0x37, 0x25, 0xd8, 0x8a, 0x89, 0x94, 0xb2, 0x43,
5616 0xfd, 0x4f, 0x19, 0x0e, 0xf0, 0xa6, 0xca, 0x12, 0x37, 0x0a, 0x54, 0x0f,
5617 0xd7, 0xd8, 0x11, 0x09, 0x6e, 0xe9, 0x62, 0x80, 0xc2, 0x35, 0x54, 0x1a,
5618 0x96, 0x65, 0xb7, 0x5b, 0xbc, 0xf5, 0x3e, 0xec, 0x7c, 0xc8, 0xd2, 0xd2,
5619 0x68, 0xee, 0xbf, 0x4b, 0x62, 0xb4, 0x7a, 0x71, 0xf9, 0xa8, 0xd4, 0x7c,
5620 0x90, 0xa2, 0x5f, 0xbc, 0x90, 0x98, 0x3a, 0x7c, 0x5f, 0x61, 0x41, 0x0c,
5621 0xac, 0xac, 0xa2, 0x20, 0xa0, 0xae, 0xca, 0xcb, 0x09, 0x86, 0xde, 0xbc,
5622 0x5a, 0x1e, 0x34, 0xd5, 0x4e, 0xa6, 0x48, 0x40, 0x06, 0x10, 0xf3, 0x35,
5623 0x63, 0x45, 0xdb, 0x6f, 0x93, 0xd9, 0x3d, 0xb4, 0x6b, 0x5b, 0xfc, 0x63,
5624 0xb0, 0xf8, 0xc5, 0xbe, 0x82, 0x6e, 0xd1, 0x4a, 0xbc, 0x06, 0xbd, 0xaf,
5625 0x28, 0xad, 0x59, 0x48, 0x40, 0xae, 0xfc, 0xe3, 0x6f, 0x72, 0xce, 0x74,
5626 0xd5, 0x5b, 0xdb, 0x95, 0x6f, 0x47, 0xdf, 0x6c, 0x93, 0xf8, 0x6a, 0x3b,
5627 0x4a, 0x44, 0x3d, 0xa8, 0x95, 0xf6, 0xb2, 0x4e, 0x23, 0x87, 0x59, 0x02,
5628 0xc1, 0xc2, 0xa6, 0xa5, 0x27, 0x65, 0x07, 0xe4, 0x4d, 0x8e, 0x48, 0x8e,
5629 0x78, 0x02, 0x36, 0xc1, 0xe3, 0xe9, 0x60, 0x4b, 0xc7, 0x0a, 0x50, 0x23,
5630 0x29, 0x13, 0x10, 0x5e, 0xe6, 0xaa, 0x97, 0x5a, 0x19, 0x27, 0x92, 0x01,
5631 0xa7, 0xbd, 0xe9, 0x97, 0x8e, 0xfc, 0x9b, 0x5f, 0x1f, 0x48, 0x82, 0x06,
5632 0x17, 0x5e, 0x08, 0x2a, 0x2f, 0x48, 0x25, 0x82, 0xaa, 0xee, 0xdc, 0x68,
5633 0xf1, 0xde, 0x41, 0xc0, 0x2b, 0xe1, 0x86, 0xb2, 0x92, 0x04, 0x4e, 0x5d,
5634 0x7f, 0x8c, 0xaa, 0xab, 0x27, 0x5b, 0x3e, 0x26, 0xbb, 0x1d, 0x55, 0x72,
5635 0x7f, 0xa1, 0xe0, 0x96, 0x28, 0x49, 0x93, 0xce, 0xdb, 0xb8, 0xfe, 0x71,
5636 0x2a, 0xe5, 0xb6, 0x0a, 0x26, 0x47, 0xa6, 0x41, 0x4b, 0xfa, 0xf3, 0x11,
5637 0xea, 0xd3, 0x95, 0x0a, 0x0f, 0xbe, 0x86, 0xc5, 0x27, 0x48, 0x25, 0x78,
5638 0x7f, 0x9d, 0x5d, 0xd0, 0xe2, 0xba, 0x07, 0x49, 0xdd, 0xc8, 0x38, 0xbb,
5639 0xc1, 0xd4, 0xba, 0x58, 0x85, 0x74, 0x84, 0xc3, 0x31, 0xba, 0x42, 0x2d,
5640 0x0f, 0xd1, 0xca, 0x1a, 0x9a, 0xc2, 0xc4, 0x01, 0x06, 0x86, 0xa5, 0x18,
5641 0x4c, 0x81, 0x61, 0x83, 0x7e, 0x19, 0x52, 0xdc, 0xa8, 0xf1, 0x58, 0x52,
5642 0x5b, 0x15, 0x8c, 0x00, 0x11, 0x08, 0x37, 0x70, 0x59, 0xce, 0x05, 0x92,
5643 0x34, 0x88, 0xce, 0xcf, 0xce, 0x9f, 0x0c, 0xa2, 0x93, 0xd7, 0x07, 0xf4,
5644 0x77, 0x61, 0xc2, 0xbf, 0x94, 0x4a, 0xe7, 0x4a, 0xd2, 0xb6, 0x7d, 0x79,
5645 0x3a, 0x0e, 0xac, 0x6d, 0x7f, 0x3d, 0x6f, 0x6f, 0x4f, 0x4e, 0xee, 0x12,
5646 0x33, 0x15, 0xae, 0x3e, 0x94, 0x24, 0x49, 0xc2, 0xb2, 0x2d, 0x56, 0x94,
5647 0x44, 0x5c, 0x97, 0x46, 0xb0, 0xad, 0x7e, 0xa9, 0xe6, 0x8a, 0xc8, 0xa7,
5648 0x43, 0x1f, 0x80, 0x64, 0xcc, 0x52, 0xdf, 0x87, 0x96, 0xbf, 0xcb, 0x1b,
5649 0x09, 0xa3, 0xa1, 0x7d, 0xff, 0x77, 0x39, 0x75, 0xd5, 0xda, 0x1e, 0xb6,
5650 0x6b, 0xd5, 0x4a, 0xfd, 0x58, 0x14, 0x02, 0x25, 0xd9, 0x29, 0x1e, 0x6a,
5651 0x24, 0x43, 0x8d, 0x4a, 0x5f, 0x75, 0x3e, 0xfd, 0x4e, 0x3b, 0x9d, 0x19,
5652 0xad, 0x78, 0xe7, 0xa2, 0xa2, 0x9a, 0x24, 0x2d, 0xd0, 0x4f, 0x5c, 0x1f,
5653 0xeb, 0xc2, 0xbf, 0x4b, 0xcd, 0x8d, 0x5a, 0xcd, 0xc5, 0x55, 0x8d, 0x11,
5654 0x8e, 0x2d, 0x7f, 0x3a, 0x74, 0x82, 0x2b, 0x4b, 0x50, 0x6c, 0x46, 0xf8,
5655 0x72, 0xa4, 0x16, 0x26, 0x37, 0xda, 0xda, 0xe2, 0x57, 0x2b, 0xb8, 0x1d,
5656 0x35, 0x45, 0xad, 0xb1, 0xda, 0x98, 0x9f, 0x0e, 0x48, 0xda, 0x20, 0x52,
5657 0x01, 0x50, 0x09, 0x50, 0x11, 0xa0, 0xc5, 0x54, 0xbe, 0xbc, 0x50, 0x02,
5658 0x34, 0x73, 0x7a, 0xcd, 0xfa, 0x5f, 0x62, 0xeb, 0x21, 0xca, 0x59, 0x7f,
5659 0xf0, 0xf1, 0x65, 0x77, 0x0b, 0xfd, 0xd1, 0xd5, 0x0d, 0xd6, 0xae, 0x86,
5660 0x5f, 0x0e, 0x5d, 0x0f, 0x78, 0xa8, 0xbc, 0xd4, 0x40, 0x46, 0x36, 0xe3,
5661 0xb5, 0x47, 0xeb, 0xb3, 0xd1, 0xb3, 0xad, 0xd1, 0xc7, 0x2e, 0x8b, 0x33,
5662 0x67, 0x75, 0x51, 0xda, 0x3c, 0x73, 0xf1, 0x63, 0x4b, 0x92, 0x4f, 0x6f,
5663 0xcb, 0xa7, 0xe2, 0x72, 0xf8, 0x68, 0xe8, 0xed, 0xf8, 0xec, 0xf0, 0x9b,
5664 0xf1, 0xd3, 0x00, 0x78, 0x5b, 0x35, 0xae, 0xcf, 0xca, 0xa9, 0x8a, 0x37,
5665 0xda, 0x79, 0x6a, 0x1f, 0x40, 0xdd, 0x3e, 0x52, 0x36, 0xa9, 0xc3, 0x01,
5666 0xe5, 0x69, 0x98, 0xf9, 0x3a, 0xca, 0xee, 0x86, 0x34, 0x5f, 0x39, 0x36,
5667 0xca, 0x80, 0x8a, 0x64, 0xe0, 0x18, 0x4c, 0x1f, 0x5a, 0x89, 0x78, 0x9e,
5668 0xa3, 0x39, 0x60, 0x65, 0x6e, 0x61, 0x93, 0x50, 0xa3, 0x17, 0x57, 0xd6,
5669 0x4f, 0x07, 0x4d, 0x3b, 0x87, 0x84, 0x88, 0xce, 0xcf, 0xf9, 0x8a, 0xbf,
5670 0x2d, 0xc5, 0x7c, 0x2d, 0x5d, 0xdd, 0x21, 0xe5, 0x9a, 0xaa, 0x59, 0x66,
5671 0xde, 0xe0, 0xbc, 0x9c, 0x88, 0xef, 0x3b, 0xab, 0x97, 0x8b, 0x58, 0x9f,
5672 0xda, 0xdf, 0xde, 0xf6, 0x4e, 0x05, 0x81, 0x77, 0x8d, 0x7e, 0xbb, 0xc4,
5673 0x6b, 0xf9, 0x66, 0xfc, 0x4f, 0x09, 0x45, 0xfc, 0x71, 0x52, 0xd1, 0xb2,
5674 0x32, 0x7e, 0xa1, 0x54, 0x7c, 0xf6, 0xc1, 0x7d, 0xf8, 0x0b, 0xe4, 0x42,
5675 0xb9, 0xba, 0xff, 0x37, 0x92, 0x8a, 0x38, 0xfa, 0x38, 0xb9, 0x88, 0x9b,
5676 0x82, 0xd1, 0x91, 0x14, 0xfa, 0x5b, 0x56, 0x64, 0x42, 0x2f, 0x9e, 0x0d,
5677 0x1d, 0xd3, 0xe4, 0x3f, 0x21, 0x31, 0xcf, 0x74, 0xa4, 0x9b, 0x70, 0xc6,
5678 0x69, 0x6c, 0xc9, 0xd8, 0x74, 0xcc, 0x23, 0xba, 0x86, 0xf0, 0x52, 0x50,
5679 0x2b, 0x5b, 0xa3, 0xe8, 0x43, 0x3a, 0xa8, 0x43, 0xba, 0x9a, 0xab, 0xfd,
5680 0x4f, 0xc8, 0xda, 0xff, 0x15, 0x1a, 0xe8, 0x99, 0xe7, 0x09, 0xfd, 0x18,
5681 0x91, 0x7b, 0x76, 0xe3, 0x44, 0xae, 0xc5, 0x41, 0x1e, 0xe8, 0xa6, 0x5f,
5682 0x5b, 0xe4, 0x1a, 0x47, 0x72, 0x38, 0xfd, 0x38, 0x70, 0x6d, 0xd6, 0x11,
5683 0x1f, 0x2c, 0xe8, 0x82, 0x82, 0xb0, 0x72, 0x48, 0x46, 0xc9, 0x37, 0x1d,
5684 0xb1, 0x63, 0x5b, 0xdc, 0xcc, 0x2a, 0xc7, 0x2e, 0x97, 0x32, 0xf0, 0xe1,
5685 0xb9, 0x82, 0xa0, 0x5b, 0x2d, 0xa9, 0xff, 0xa0, 0xb0, 0xd7, 0xbc, 0xc2,
5686 0xfc, 0x61, 0x95, 0x77, 0x13, 0xee, 0xa1, 0xf0, 0xa5, 0x9a, 0x8c, 0x3b,
5687 0x5f, 0x71, 0x07, 0x9c, 0x0b, 0x71, 0xb8, 0xf9, 0x87, 0xcf, 0xda, 0x50,
5688 0xce, 0x9d, 0x1a, 0x8d, 0x5a, 0xc5, 0x39, 0x1e, 0xcb, 0x70, 0xf9, 0xbf,
5689 0x45, 0x87, 0x3e, 0xfb, 0x38, 0x71, 0xfe, 0xef, 0x38, 0x59, 0xff, 0x37,
5690 0x12, 0xde, 0xae, 0x65, 0xde, 0x54, 0xe2, 0x19, 0xb9, 0x35, 0xc8, 0xc1,
5691 0xb2, 0xe5, 0x8b, 0x35, 0xa3, 0x60, 0x0c, 0x66, 0xf1, 0xe4, 0xfc, 0xdb,
5692 0x4f, 0x06, 0xec, 0x61, 0x1e, 0xb7, 0xb9, 0x29, 0x4f, 0x8f, 0x0e, 0xce,
5693 0x3b, 0x4e, 0x86, 0x6b, 0xba, 0x0b, 0x2e, 0xd3, 0x21, 0x5b, 0xdc, 0xec,
5694 0xc2, 0x78, 0xa1, 0x7f, 0x61, 0x11, 0xef, 0x72, 0xd2, 0x98, 0x17, 0xca,
5695 0x9e, 0x17, 0xf2, 0x3b, 0x89, 0xdb, 0x61, 0x94, 0x6a, 0xba, 0xb3, 0xdb,
5696 0x7f, 0xba, 0x98, 0x6d, 0xcb, 0x3f, 0x87, 0x57, 0x7f, 0x9f, 0xb5, 0x6f,
5697 0x01, 0x21, 0x23, 0x5e, 0x2d, 0x2f, 0x49, 0xd9, 0xfa, 0xd2, 0x76, 0x76,
5698 0xbc, 0xaf, 0xaa, 0x1b, 0x6c, 0xf3, 0x48, 0x73, 0xed, 0x40, 0x95, 0xbd,
5699 0x6e, 0x60, 0xe8, 0x5e, 0x8b, 0x3e, 0x14, 0x31, 0x24, 0xb0, 0x76, 0xf2,
5700 0x6f, 0xb7, 0x83, 0x86, 0x5c, 0xeb, 0x8f, 0x35, 0xde, 0x91, 0x6a, 0xe3,
5701 0xbf, 0xb5, 0xcd, 0x04, 0x4a, 0xfa, 0xa2, 0x7c, 0x48, 0x9c, 0x27, 0xad,
5702 0x5f, 0xf2, 0xf4, 0xa1, 0x2a, 0x76, 0x8b, 0xd3, 0x37, 0x51, 0xaf, 0x57,
5703 0xd0, 0x07, 0xb7, 0xea, 0x42, 0x00, 0xad, 0x64, 0x3f, 0xd9, 0x34, 0x5d,
5704 0xc6, 0x73, 0x4d, 0xf2, 0x8a, 0x1e, 0x63, 0x22, 0x6f, 0x12, 0x39, 0xd7,
5705 0x07, 0x44, 0xf7, 0xb0, 0x66, 0x0d, 0x28, 0x16, 0x7f, 0x14, 0xf4, 0x56,
5706 0x0f, 0xbb, 0x3c, 0x19, 0x59, 0x0e, 0x25, 0x56, 0x0f, 0x1b, 0x54, 0xaf,
5707 0x70, 0x80, 0x4d, 0xb3, 0xca, 0xc3, 0x03, 0xad, 0x60, 0x2d, 0xd2, 0x3f,
5708 0x38, 0x79, 0x63, 0xf7, 0xf9, 0x27, 0xbb, 0x51, 0xc9, 0xa5, 0x06, 0xa5,
5709 0x24, 0x27, 0x5e, 0x7e, 0x3a, 0x7a, 0xb2, 0xfd, 0x74, 0xf4, 0x34, 0xf2,
5710 0xf5, 0xb1, 0x70, 0x71, 0xd2, 0xe6, 0xdb, 0x71, 0xf2, 0x89, 0x82, 0x2c,
5711 0xa2, 0xe8, 0xcd, 0xf1, 0x21, 0x5b, 0x23, 0x96, 0xf3, 0xd7, 0x60, 0x7e,
5712 0xd7, 0x92, 0xe9, 0x3c, 0x71, 0x46, 0x34, 0xde, 0x55, 0x75, 0xa8, 0x63,
5713 0x3a, 0x4c, 0x34, 0x01, 0x8e, 0xce, 0x5c, 0x47, 0x58, 0x57, 0xde, 0x58,
5714 0xa1, 0x5d, 0x33, 0x88, 0x5a, 0x1c, 0x00, 0xe1, 0x94, 0x04, 0x13, 0x36,
5715 0x7a, 0x9c, 0x5b, 0xbb, 0xac, 0x66, 0xa4, 0xd5, 0xbb, 0x01, 0x1a, 0x17,
5716 0x56, 0xf7, 0x15, 0x11, 0x19, 0x2e, 0x17, 0xaf, 0x85, 0x01, 0xe5, 0x1d,
5717 0xc3, 0x2e, 0xd7, 0xe0, 0xec, 0x86, 0x41, 0x58, 0x93, 0xf3, 0xe3, 0x39,
5718 0x43, 0x85, 0x2d, 0x1b, 0xf5, 0xcd, 0xfa, 0xc3, 0xbe, 0x1d, 0x53, 0x86,
5719 0x60, 0x08, 0x6a, 0xd3, 0x37, 0x49, 0x55, 0x7f, 0x75, 0xbb, 0xb5, 0xe2,
5720 0xd3, 0xa0, 0x4a, 0xe6, 0x59, 0x52, 0x69, 0xd1, 0x9c, 0xe8, 0xc5, 0xd9,
5721 0xf9, 0xe5, 0xcb, 0xbb, 0x78, 0xde, 0x8a, 0xb4, 0x33, 0x47, 0x96, 0x95,
5722 0x18, 0xd2, 0xf1, 0xcb, 0x9b, 0x41, 0x6a, 0xca, 0xd8, 0x25, 0x67, 0x04,
5723 0xc5, 0x88, 0x5a, 0x69, 0x18, 0x97, 0x97, 0x3f, 0x9c, 0x1f, 0xbf, 0x7c,
5724 0xc1, 0x9e, 0xc1, 0xcf, 0xd9, 0xa1, 0xa9, 0x1e, 0x61, 0xf1, 0x56, 0xcc,
5725 0xb9, 0x98, 0x5d, 0xfb, 0x64, 0xfc, 0xfe, 0xe8, 0x64, 0x7c, 0x7e, 0x7a,
5726 0x76, 0xf8, 0xf2, 0xc5, 0xf7, 0x1c, 0x48, 0xa2, 0xd9, 0x7b, 0x08, 0xde,
5727 0x75, 0x3f, 0x73, 0x48, 0xf3, 0x76, 0x29, 0x89, 0xe3, 0xef, 0xde, 0x1d,
5728 0xbf, 0xf9, 0xf6, 0xe5, 0x8b, 0xbb, 0xb8, 0x18, 0xf0, 0xf8, 0xe4, 0x6d,
5729 0xf6, 0xd6, 0x75, 0xd4, 0x76, 0x0b, 0xe6, 0xe8, 0x12, 0x95, 0x46, 0x96,
5730 0x0c, 0xdb, 0x7a, 0x04, 0xd1, 0x03, 0x2d, 0xeb, 0x8b, 0x37, 0xd4, 0xa5,
5731 0x23, 0x40, 0x0f, 0xe9, 0xcc, 0xb9, 0x5c, 0xf7, 0xb7, 0x17, 0xa7, 0x6b,
5732 0x0a, 0x99, 0x16, 0x5a, 0x2a, 0x34, 0x20, 0xb4, 0x55, 0xf4, 0x9f, 0x6f,
5733 0x18, 0xec, 0xb1, 0x87, 0x2e, 0xb5, 0x48, 0x09, 0xe1, 0x1e, 0x85, 0x2f,
5734 0x89, 0xee, 0xf2, 0x48, 0x46, 0x57, 0x66, 0x45, 0xa0, 0x0c, 0x34, 0x84,
5735 0x14, 0x29, 0xcc, 0xdb, 0x86, 0x0f, 0x60, 0x19, 0x5a, 0xc7, 0x21, 0x1b,
5736 0x49, 0x08, 0x14, 0x56, 0x0d, 0x07, 0xe2, 0x31, 0xbe, 0x43, 0xe1, 0xa1,
5737 0x94, 0xe4, 0x80, 0xfa, 0x28, 0x94, 0xc9, 0xa7, 0x9b, 0xf4, 0x95, 0xab,
5738 0x5f, 0xdc, 0x30, 0x2a, 0xd9, 0xfa, 0x55, 0x88, 0xfc, 0xd6, 0x71, 0xe7,
5739 0x96, 0x13, 0x14, 0xc0, 0xb9, 0xba, 0x4a, 0x3c, 0xd7, 0xd8, 0xeb, 0x04,
5740 0x4b, 0xc6, 0x26, 0x25, 0x67, 0x4e, 0x71, 0xee, 0x9b, 0x03, 0x6d, 0xca,
5741 0xc2, 0x06, 0x59, 0x74, 0xad, 0x80, 0x11, 0xbb, 0x6a, 0x47, 0x6e, 0xcf,
5742 0xd9, 0x66, 0x83, 0x3a, 0xe6, 0xc8, 0xf1, 0xe6, 0x78, 0xcb, 0xe5, 0x9b,
5743 0x71, 0x83, 0xe7, 0x6f, 0x2f, 0x3d, 0x1b, 0x60, 0x47, 0x72, 0x72, 0x6b,
5744 0x13, 0x36, 0x0d, 0x65, 0x3f, 0x51, 0xbd, 0x61, 0xaf, 0xc9, 0xcc, 0x6c,
5745 0x6e, 0x60, 0xd2, 0x0c, 0x5c, 0x1d, 0xd1, 0xe7, 0x32, 0xc7, 0x9d, 0xec,
5746 0xc2, 0x92, 0x65, 0x13, 0x1d, 0x28, 0x18, 0x24, 0x41, 0x35, 0xf6, 0xfa,
5747 0x37, 0x46, 0xbd, 0x88, 0x3f, 0xe2, 0x18, 0xf9, 0x24, 0x70, 0xb1, 0xd5,
5748 0x51, 0xe7, 0x5a, 0x92, 0x38, 0xbd, 0x15, 0x1f, 0x52, 0x1d, 0x72, 0x57,
5749 0x1b, 0x5d, 0x83, 0xc7, 0x79, 0x42, 0x92, 0xd7, 0x41, 0x42, 0x0c, 0x4d,
5750 0x0d, 0x5a, 0x5b, 0xa9, 0x55, 0xc8, 0xd9, 0xc1, 0x40, 0xde, 0x18, 0x5f,
5751 0xa9, 0x12, 0x43, 0x5b, 0x48, 0x46, 0xda, 0x84, 0x31, 0xdf, 0xc5, 0xda,
5752 0x22, 0x8b, 0xd8, 0x31, 0xa9, 0x3f, 0x34, 0x0c, 0x64, 0x56, 0x85, 0xc3,
5753 0x4b, 0x8f, 0x9d, 0x62, 0xe8, 0x53, 0x27, 0x0c, 0x06, 0xc5, 0x2a, 0x86,
5754 0x97, 0x2d, 0x42, 0x28, 0x7e, 0x81, 0x81, 0x43, 0x01, 0x8a, 0x18, 0xe0,
5755 0x3c, 0x1e, 0xbb, 0x48, 0x92, 0x26, 0x3b, 0xc0, 0xa8, 0x18, 0x89, 0x68,
5756 0xc3, 0x55, 0x5e, 0xb6, 0xab, 0x4c, 0x0a, 0xd3, 0x7d, 0xef, 0x7a, 0x9e,
5757 0x4f, 0x26, 0x34, 0xa8, 0x9e, 0x9d, 0x71, 0xd4, 0xc3, 0xb8, 0xb8, 0x86,
5758 0xd1, 0x3b, 0x30, 0xc2, 0x30, 0xbf, 0x59, 0x41, 0x01, 0x8f, 0x6f, 0xad,
5759 0x4b, 0x8e, 0xd4, 0xea, 0xc0, 0xb9, 0x2f, 0xea, 0x01, 0x7e, 0xf6, 0x87,
5760 0xa0, 0x92, 0x8c, 0xe0, 0x61, 0xf0, 0xf3, 0xc8, 0xbe, 0xdf, 0xb4, 0xb2,
5761 0x90, 0xc4, 0xe7, 0xd3, 0xed, 0x54, 0xf9, 0x40, 0xe5, 0x28, 0x35, 0x77,
5762 0xda, 0x91, 0x62, 0xc7, 0x03, 0xa6, 0x01, 0xf4, 0xfe, 0x83, 0x7b, 0xb1,
5763 0x3b, 0xe0, 0x3f, 0xf7, 0xfe, 0xd1, 0x33, 0x02, 0x76, 0xae, 0x7f, 0x21,
5764 0x9d, 0xaf, 0x98, 0xf3, 0xba, 0x34, 0xd6, 0xf7, 0x0e, 0x92, 0x77, 0x86,
5765 0x4b, 0xad, 0x6d, 0x3d, 0x5d, 0x5c, 0xff, 0xb8, 0x3b, 0xdc, 0xdd, 0xd9,
5766 0xd9, 0xf9, 0x69, 0xb4, 0xe4, 0xa9, 0xbb, 0x42, 0xf3, 0xf4, 0xe7, 0x68,
5767 0x99, 0x4e, 0xd9, 0xc7, 0x4b, 0x8b, 0x99, 0xc6, 0xdc, 0xf4, 0xb6, 0x7c,
5768 0x6f, 0x3b, 0x38, 0xf9, 0xab, 0xe9, 0x72, 0x98, 0xe5, 0x5d, 0x40, 0x85,
5769 0x4b, 0xae, 0xeb, 0x1c, 0xd4, 0x32, 0x7a, 0xf7, 0xe6, 0xec, 0xe8, 0xf8,
5770 0xf4, 0xe0, 0x07, 0x83, 0x37, 0xba, 0xc4, 0x75, 0xee, 0xc9, 0xbb, 0x24,
5771 0x2e, 0x1f, 0xde, 0x95, 0x49, 0x45, 0xbf, 0xdc, 0x7c, 0xb2, 0xc5, 0x38,
5772 0xa0, 0x56, 0x15, 0xc1, 0xeb, 0xa4, 0x56, 0x0d, 0x55, 0x71, 0x23, 0xfe,
5773 0xf4, 0x1e, 0x35, 0xa3, 0x12, 0x35, 0xf8, 0x61, 0xc5, 0x8e, 0xf2, 0xc9,
5774 0xfc, 0x56, 0x2a, 0x68, 0xa3, 0x6a, 0x75, 0x0b, 0x4a, 0x7a, 0xa9, 0x29,
5775 0xec, 0x55, 0xc4, 0x7f, 0x8b, 0xbe, 0x3c, 0xfd, 0x86, 0x11, 0xbc, 0xee,
5776 0x4e, 0xb3, 0x90, 0x54, 0xe9, 0xe8, 0xf3, 0x67, 0xbb, 0x7b, 0x5b, 0x41,
5777 0xc5, 0x58, 0xce, 0x03, 0xe0, 0xcd, 0xd9, 0x0a, 0x4b, 0xfe, 0xac, 0x01,
5778 0xd6, 0x40, 0x2b, 0xfb, 0xf0, 0x13, 0xf0, 0x03, 0x76, 0xcc, 0x81, 0xf5,
5779 0x0b, 0xd0, 0xd2, 0x0a, 0x3c, 0x6b, 0x1d, 0x85, 0x83, 0x63, 0xe9, 0x94,
5780 0x25, 0xc7, 0xfb, 0xd2, 0x47, 0x11, 0x75, 0x47, 0xa1, 0xfd, 0xdd, 0xb6,
5781 0xc9, 0xaf, 0x6d, 0xeb, 0x7c, 0x30, 0x88, 0x41, 0xb3, 0x3d, 0x2f, 0x99,
5782 0x18, 0x84, 0xed, 0x8f, 0xe8, 0x85, 0xfd, 0xad, 0xab, 0x50, 0x33, 0x87,
5783 0x5f, 0x5a, 0x1c, 0x22, 0x30, 0x5b, 0x50, 0x04, 0x92, 0x81, 0x65, 0x9e,
5784 0xa8, 0x5d, 0x2b, 0x3d, 0xda, 0x3e, 0xea, 0x8e, 0xdb, 0x42, 0xb5, 0xf5,
5785 0xc6, 0x17, 0xe7, 0xbd, 0x81, 0x22, 0xe9, 0xe8, 0x1b, 0x43, 0xfa, 0x37,
5786 0xf5, 0x18, 0x04, 0x8e, 0xcf, 0x76, 0x9e, 0x3d, 0x55, 0xff, 0x1e, 0x3a,
5787 0x2a, 0xe5, 0x78, 0x5b, 0x8c, 0xda, 0xf8, 0x9d, 0x2b, 0x44, 0x06, 0xee,
5788 0x01, 0x9f, 0xe2, 0x44, 0x92, 0x57, 0x1f, 0xa4, 0x78, 0x4c, 0xa4, 0x2c,
5789 0xc8, 0x63, 0x51, 0x65, 0x5d, 0x33, 0xe8, 0x14, 0x74, 0xb2, 0x5d, 0x24,
5790 0xf2, 0x69, 0x63, 0x22, 0xd1, 0xbf, 0x17, 0xfc, 0x67, 0x67, 0xa5, 0x6b,
5791 0xfe, 0x85, 0xbf, 0x95, 0x41, 0xb2, 0x8c, 0x60, 0x85, 0x27, 0xb7, 0x9b,
5792 0xe3, 0x67, 0x6d, 0x14, 0xc5, 0xe8, 0x7b, 0x83, 0xb1, 0x8d, 0x2c, 0x60,
5793 0x56, 0x1a, 0xd0, 0xbf, 0x3e, 0x35, 0xa2, 0x94, 0xdb, 0x18, 0x5c, 0xda,
5794 0xcd, 0x1f, 0x1e, 0x9c, 0x6b, 0xe5, 0x85, 0xfd, 0xad, 0x73, 0x90, 0xfe,
5795 0x63, 0xbf, 0xfd, 0x20, 0x31, 0x46, 0x3f, 0xf3, 0x6e, 0x78, 0x32, 0xa2,
5796 0xc7, 0x71, 0x87, 0xf5, 0xe1, 0x15, 0x43, 0x83, 0x56, 0x77, 0x97, 0xa5,
5797 0xbc, 0x50, 0xfc, 0x44, 0x8c, 0x2a, 0xcd, 0x1c, 0x81, 0xa7, 0xa6, 0x2e,
5798 0x55, 0x25, 0x0c, 0x8f, 0xf5, 0x5d, 0x0f, 0xa6, 0x93, 0x43, 0xa7, 0x0d,
5799 0x80, 0xd3, 0xc3, 0xce, 0xe1, 0x82, 0x4a, 0x0f, 0xf4, 0xb7, 0x2a, 0x30,
5800 0x56, 0x5d, 0x69, 0x95, 0xd9, 0xa7, 0x2c, 0x5d, 0x93, 0x94, 0x4e, 0xeb,
5801 0x16, 0x9f, 0x02, 0x4e, 0x31, 0x4d, 0x52, 0x65, 0x42, 0xfc, 0x10, 0xdc,
5802 0xf2, 0x93, 0xfa, 0xb0, 0x99, 0x02, 0xa3, 0xd3, 0xb4, 0x77, 0x65, 0x97,
5803 0x62, 0x0e, 0xe9, 0x72, 0xe4, 0x57, 0x1e, 0x8e, 0x66, 0xab, 0xc5, 0xd2,
5804 0xd2, 0xd2, 0xd3, 0x4c, 0x11, 0x7b, 0xdc, 0x61, 0xd2, 0xf1, 0xd7, 0xb9,
5805 0x29, 0xc7, 0x41, 0xcb, 0x3f, 0x30, 0x9d, 0xaf, 0x30, 0x45, 0xb3, 0x44,
5806 0x58, 0xf2, 0x18, 0xa3, 0x1b, 0xd4, 0xa7, 0x1c, 0xb8, 0xfc, 0x70, 0xd8,
5807 0x70, 0x6a, 0x0a, 0x89, 0x29, 0xf7, 0xb6, 0x55, 0x30, 0x80, 0x2d, 0x2f,
5808 0x8e, 0x7b, 0x33, 0x5c, 0x42, 0x0d, 0x5f, 0x57, 0x6d, 0xd8, 0x8a, 0x13,
5809 0x27, 0x02, 0x95, 0x5d, 0x73, 0x9d, 0xec, 0x76, 0xe1, 0x87, 0x4e, 0x4e,
5810 0x44, 0xe8, 0x87, 0x77, 0x5a, 0x06, 0x72, 0x92, 0x97, 0x89, 0x20, 0xbc,
5811 0x31, 0x0f, 0x2d, 0xd7, 0x43, 0x39, 0x4d, 0xd3, 0xdf, 0x32, 0xd6, 0x22,
5812 0x5f, 0xc5, 0x67, 0x1e, 0x5f, 0xb0, 0x58, 0x96, 0x4b, 0x56, 0x2b, 0x5c,
5813 0x2c, 0xbf, 0x5a, 0x22, 0x5f, 0x6e, 0xbd, 0xfe, 0x0f, 0x5a, 0x30, 0xfa,
5814 0xff, 0x77, 0xad, 0x7a, 0xb6, 0x18, 0xaa, 0xb0, 0x52, 0xce, 0x93, 0x98,
5815 0x73, 0x4b, 0xcd, 0x13, 0x7a, 0x93, 0xbc, 0x97, 0x3b, 0x64, 0xfb, 0xcc,
5816 0xd0, 0x03, 0xea, 0x86, 0xdd, 0x2f, 0x78, 0xf6, 0x60, 0x7c, 0x78, 0x72,
5817 0x52, 0x2b, 0xa1, 0xc2, 0x93, 0x27, 0x48, 0x6d, 0x80, 0x5d, 0x4a, 0xc6,
5818 0xac, 0x33, 0x28, 0x18, 0xdd, 0x6d, 0x5d, 0x5d, 0x39, 0x47, 0x0b, 0x0c,
5819 0x77, 0x5c, 0x66, 0x2b, 0x2e, 0x53, 0x4b, 0x8a, 0x8b, 0x05, 0x0f, 0xb2,
5820 0xca, 0xf8, 0x92, 0xc9, 0x40, 0xe5, 0x9b, 0x15, 0x99, 0x4c, 0xe5, 0xaf,
5821 0x2d, 0x90, 0xa3, 0xdf, 0x5a, 0xf4, 0x3a, 0xb2, 0x97, 0xce, 0x0b, 0x4d,
5822 0xb0, 0x12, 0x10, 0x72, 0x24, 0xa9, 0x47, 0xcc, 0x80, 0xc1, 0x17, 0x09,
5823 0x91, 0x40, 0xea, 0xa1, 0x75, 0x16, 0xb7, 0x0c, 0x3b, 0x98, 0x3a, 0xa8,
5824 0xeb, 0xd4, 0x9b, 0x51, 0x36, 0xcb, 0xc3, 0x3d, 0xad, 0x19, 0x2c, 0xae,
5825 0x06, 0xaa, 0x1c, 0xb4, 0xfb, 0x6b, 0x0f, 0xa3, 0x20, 0xcf, 0x68, 0x4d,
5826 0xc9, 0xd2, 0xb0, 0x8c, 0x8d, 0x5c, 0xc1, 0x1e, 0x2f, 0x5a, 0x36, 0x8a,
5827 0xce, 0xdc, 0xc2, 0x0c, 0xb3, 0x81, 0xaf, 0xf6, 0x0c, 0xf8, 0x4f, 0xbd,
5828 0x0a, 0xf3, 0xba, 0x8a, 0xb9, 0x20, 0xf1, 0xb9, 0x4e, 0xef, 0x92, 0x46,
5829 0xc7, 0x36, 0xcd, 0x83, 0xcf, 0x4e, 0xff, 0x42, 0x62, 0x14, 0x1c, 0x53,
5830 0xcb, 0xb3, 0xad, 0xce, 0xc9, 0xc2, 0x62, 0x2d, 0xc9, 0xf6, 0x5c, 0x5a,
5831 0x6a, 0x8b, 0x0d, 0x6b, 0x7d, 0xed, 0x34, 0x38, 0x3b, 0xb8, 0x76, 0xe5,
5832 0xf9, 0xc9, 0x50, 0xb3, 0x02, 0xb5, 0xc4, 0x9c, 0xb0, 0xad, 0xf0, 0x38,
5833 0x66, 0x79, 0xb3, 0x98, 0x5e, 0xd7, 0x4c, 0x78, 0x3a, 0x7e, 0xa9, 0x90,
5834 0x54, 0x23, 0x93, 0x5c, 0x2d, 0x1b, 0x63, 0xd3, 0x04, 0x14, 0xed, 0x5f,
5835 0xf3, 0x94, 0x47, 0x62, 0xb3, 0xd4, 0xd4, 0x0d, 0x9d, 0x52, 0x93, 0x07,
5836 0xc9, 0x0e, 0x74, 0x64, 0x43, 0x1a, 0xb7, 0x91, 0xbb, 0x1d, 0x66, 0xa6,
5837 0x8b, 0x29, 0x30, 0x10, 0xfa, 0x7d, 0xd2, 0x3a, 0xab, 0x68, 0xbf, 0xf7,
5838 0x1b, 0xaa, 0xe5, 0xb7, 0x2e, 0xb0, 0xf4, 0xeb, 0x8b, 0x64, 0xab, 0x70,
5839 0x72, 0xa7, 0x48, 0xfe, 0xbf, 0xc5, 0xf6, 0x8b, 0xfd, 0xf6, 0xb7, 0x5d,
5840 0xec, 0x21, 0x8f, 0xfb, 0xc5, 0xdb, 0x8b, 0xd3, 0x75, 0xeb, 0x1a, 0xc3,
5841 0xb5, 0xc0, 0xa9, 0x8c, 0x5c, 0x0f, 0xae, 0x89, 0xf0, 0x8e, 0xe0, 0x8c,
5842 0xe3, 0x53, 0xe7, 0x86, 0xa6, 0xe8, 0x21, 0x48, 0xc2, 0x6d, 0x65, 0x35,
5843 0xe8, 0x41, 0xa8, 0xcd, 0x52, 0xa3, 0x9c, 0x75, 0x05, 0x28, 0x57, 0x40,
5844 0x02, 0xf7, 0x81, 0xe8, 0xad, 0x39, 0xaf, 0x84, 0xe8, 0xae, 0xc6, 0xd3,
5845 0xa5, 0x3c, 0x52, 0x97, 0xb9, 0x2b, 0x40, 0x02, 0xc7, 0x4d, 0xd7, 0xe4,
5846 0xf2, 0x80, 0x38, 0x2f, 0x55, 0xdc, 0xf3, 0x03, 0x07, 0x18, 0xaf, 0x95,
5847 0x0a, 0x54, 0x4c, 0x1e, 0x32, 0xf7, 0x7c, 0x3a, 0x5d, 0x97, 0x83, 0x52,
5848 0x1d, 0xe4, 0xbe, 0xe2, 0x60, 0x78, 0x9a, 0x75, 0xe0, 0xfd, 0xcd, 0xf4,
5849 0xc5, 0x84, 0xc2, 0x56, 0x01, 0xad, 0xb9, 0x1d, 0x29, 0xdb, 0x55, 0x3c,
5850 0xbf, 0x45, 0xba, 0xd7, 0x28, 0x7a, 0x2d, 0x93, 0x4b, 0x1d, 0x64, 0x0e,
5851 0xb7, 0x2e, 0x56, 0xbd, 0xc9, 0xea, 0xfa, 0x1a, 0x9c, 0xcd, 0x07, 0x72,
5852 0x12, 0x95, 0x56, 0x65, 0x04, 0x77, 0x8c, 0xfe, 0xe7, 0x7d, 0x4d, 0xad,
5853 0xe9, 0xdd, 0xd0, 0xa1, 0xcd, 0x08, 0x41, 0x32, 0x8b, 0x7a, 0x4a, 0xe0,
5854 0xd6, 0xa2, 0xfd, 0xe0, 0x4d, 0x30, 0x88, 0xfa, 0x2f, 0xba, 0x5f, 0x12,
5855 0x8b, 0x5c, 0xab, 0x7e, 0x3a, 0xcf, 0x30, 0x4d, 0xe4, 0x4d, 0x4a, 0x07,
5856 0x5b, 0xd6, 0x86, 0xfd, 0x49, 0x4a, 0x9c, 0x44, 0xea, 0x94, 0x13, 0xbe,
5857 0xb3, 0x93, 0x7f, 0xb2, 0xef, 0x19, 0x17, 0x3b, 0x38, 0x71, 0xae, 0xf2,
5858 0x16, 0x55, 0x9d, 0xf2, 0x61, 0xe8, 0xf7, 0xbb, 0x6b, 0x4c, 0xeb, 0x51,
5859 0x9c, 0x9a, 0xca, 0x10, 0x9b, 0x08, 0xe2, 0x27, 0xf9, 0x41, 0x32, 0x26,
5860 0xc7, 0x31, 0x2e, 0xcb, 0x4d, 0x2b, 0x96, 0xb6, 0xb9, 0x2c, 0xc5, 0x5e,
5861 0x4c, 0xbc, 0x0d, 0xe4, 0x49, 0x98, 0x91, 0x49, 0x5e, 0x30, 0x72, 0x3c,
5862 0xbf, 0xd5, 0xfa, 0x89, 0xeb, 0x4e, 0x47, 0x73, 0x85, 0xfb, 0x7d, 0x23,
5863 0x88, 0x47, 0x03, 0x6b, 0xe2, 0xe0, 0xe4, 0x07, 0xad, 0x2a, 0xb9, 0xba,
5864 0x98, 0x06, 0x6d, 0x46, 0x46, 0xc9, 0x14, 0xb4, 0x2c, 0x1d, 0x67, 0x8c,
5865 0xd4, 0x2d, 0x69, 0x0b, 0x5e, 0xfd, 0xb3, 0xc6, 0x58, 0xad, 0xb1, 0xd0,
5866 0x18, 0xeb, 0xf0, 0x73, 0x87, 0xb0, 0x6f, 0x47, 0xb4, 0x06, 0xe1, 0x00,
5867 0xd6, 0x3b, 0x50, 0x34, 0xf7, 0xfc, 0x20, 0xc2, 0x6f, 0xbc, 0xc3, 0xc8,
5868 0xdc, 0x87, 0xcd, 0xdd, 0xd4, 0x3a, 0x47, 0x4a, 0x4e, 0x67, 0xae, 0x58,
5869 0x0b, 0x06, 0x61, 0xd2, 0xd8, 0x84, 0x76, 0xdc, 0x86, 0x7c, 0x8f, 0x9c,
5870 0x27, 0x55, 0x22, 0x7e, 0x5a, 0x65, 0x3a, 0x6c, 0xdd, 0xb6, 0xb9, 0x38,
5871 0x83, 0x05, 0x04, 0x24, 0x25, 0x52, 0xbe, 0xab, 0x85, 0x92, 0xa5, 0xf6,
5872 0xa5, 0x8a, 0x0c, 0x94, 0x8b, 0xe6, 0x6a, 0x47, 0x12, 0xd5, 0x6b, 0x85,
5873 0x27, 0xdf, 0xb3, 0x41, 0xfc, 0xde, 0xae, 0xf0, 0x75, 0x0d, 0xe4, 0xea,
5874 0x57, 0xca, 0x87, 0xb4, 0xf1, 0x80, 0x94, 0xa4, 0x13, 0x21, 0xc8, 0x37,
5875 0x88, 0x9e, 0x3c, 0xdb, 0x1b, 0x18, 0x5f, 0x81, 0x58, 0xd8, 0x52, 0x80,
5876 0x07, 0x44, 0x2a, 0xd3, 0x15, 0xdf, 0x0c, 0xe0, 0xec, 0x87, 0x54, 0x77,
5877 0x37, 0xf7, 0x20, 0x38, 0xf6, 0xde, 0x17, 0x76, 0x25, 0xe9, 0x59, 0x56,
5878 0x1a, 0x93, 0x24, 0xb8, 0x1a, 0x41, 0x66, 0xc2, 0x57, 0x7e, 0x3a, 0x3a,
5879 0x1c, 0x7e, 0xe2, 0xa9, 0x47, 0x82, 0x26, 0x2a, 0x3c, 0xf6, 0xbe, 0x18,
5880 0xf6, 0x3a, 0xe9, 0x63, 0x7d, 0xdd, 0x4e, 0xe5, 0xf5, 0xae, 0x6f, 0x2d,
5881 0xfb, 0x84, 0x87, 0x5a, 0x73, 0x05, 0x80, 0x2a, 0xad, 0x56, 0x6d, 0x1f,
5882 0x9a, 0x52, 0x35, 0x45, 0x11, 0x1c, 0xa4, 0xd0, 0xc1, 0x3c, 0xe5, 0xde,
5883 0x8b, 0x89, 0xbd, 0xc4, 0x57, 0xae, 0x0a, 0xf8, 0x1c, 0xb9, 0xc6, 0x4d,
5884 0x8c, 0x8d, 0xb0, 0x79, 0x5f, 0x38, 0x98, 0x87, 0x55, 0x45, 0xeb, 0x3e,
5885 0x34, 0x7a, 0xfb, 0x0f, 0xff, 0x61, 0xbf, 0x04, 0xf9, 0xd3, 0x3f, 0xcc,
5886 0xe3, 0x6f, 0x21, 0x8b, 0xb8, 0x5b, 0x9f, 0x45, 0x7f, 0xf0, 0x46, 0xaf,
5887 0x4c, 0x0d, 0x92, 0xd4, 0xb9, 0xc1, 0x3f, 0x8c, 0x5c, 0xa0, 0xc2, 0xca,
5888 0x72, 0x46, 0x59, 0x72, 0x0f, 0xa5, 0xd7, 0xd2, 0xb6, 0xb2, 0x8d, 0xff,
5889 0x4a, 0x07, 0x10, 0x49, 0x73, 0x4c, 0xdb, 0x91, 0x5d, 0xcc, 0x92, 0xfa,
5890 0x29, 0xe2, 0xf5, 0xd7, 0x42, 0x95, 0x66, 0x15, 0x4f, 0x84, 0x7a, 0x4f,
5891 0x7f, 0xde, 0xbe, 0x48, 0x72, 0x14, 0x70, 0x1f, 0xab, 0xf1, 0x87, 0xa1,
5892 0x30, 0x7b, 0xa9, 0x84, 0x0b, 0x4b, 0x5f, 0x64, 0x3f, 0xb3, 0x6a, 0xee,
5893 0xd9, 0x93, 0xbd, 0x61, 0x60, 0xab, 0x0c, 0x3a, 0x81, 0x14, 0x72, 0xc3,
5894 0x0e, 0xaa, 0xee, 0x0a, 0x27, 0xdc, 0x1f, 0x34, 0x4b, 0x5c, 0xf2, 0x84,
5895 0x56, 0x30, 0xc2, 0x82, 0xe2, 0x27, 0x6b, 0x9d, 0x8f, 0x1f, 0x10, 0x1e,
5896 0xcf, 0xdc, 0x60, 0xac, 0x2c, 0x60, 0x18, 0xeb, 0x8c, 0x3b, 0xc3, 0x65,
5897 0x6f, 0x55, 0xca, 0xa5, 0x21, 0x58, 0x29, 0x08, 0x11, 0xf2, 0x95, 0x5c,
5898 0x6a, 0xd7, 0xc2, 0xfa, 0xf1, 0x9e, 0x72, 0xc4, 0x0d, 0xf9, 0xa4, 0x19,
5899 0x3e, 0x5e, 0x57, 0x41, 0xab, 0xba, 0xd8, 0x19, 0xd2, 0x07, 0x5a, 0x33,
5900 0x9f, 0xcf, 0xdc, 0xee, 0x91, 0x82, 0x39, 0x2e, 0x42, 0xbd, 0xff, 0x78,
5901 0x73, 0x7a, 0xe0, 0xb4, 0x86, 0xcf, 0x81, 0x94, 0x77, 0xc8, 0x5e, 0x75,
5902 0xb3, 0x41, 0xca, 0x84, 0xee, 0x49, 0x1c, 0xe1, 0xad, 0xa7, 0xb7, 0xfa,
5903 0x81, 0x31, 0x71, 0xbc, 0x2e, 0xe3, 0xe3, 0x5f, 0x95, 0x3c, 0x34, 0xad,
5904 0xef, 0xc2, 0x41, 0x3e, 0x0b, 0x71, 0x46, 0xca, 0x36, 0xc9, 0xe6, 0x97,
5905 0xf9, 0xff, 0x3b, 0xaa, 0x11, 0x46, 0x2d, 0x08, 0xff, 0x67, 0xa3, 0x3d,
5906 0xf5, 0xf3, 0xa5, 0xb1, 0xe7, 0x8b, 0x91, 0x11, 0x70, 0xdf, 0x04, 0xfc,
5907 0x8f, 0x0a, 0x7c, 0x37, 0xf9, 0xfd, 0xe3, 0xcd, 0xb9, 0xc2, 0x08, 0x7c,
5908 0xce, 0xaf, 0x9b, 0x19, 0x2d, 0x1e, 0x28, 0xb9, 0x6e, 0x7e, 0x6a, 0x64,
5909 0x4a, 0x8c, 0xf4, 0xa5, 0x31, 0x29, 0x5d, 0x41, 0xee, 0x68, 0x4d, 0xe6,
5910 0x70, 0xb4, 0xe9, 0x08, 0xa8, 0x84, 0xb5, 0x5a, 0x0b, 0x74, 0x5a, 0x22,
5911 0xa1, 0x71, 0x55, 0x7f, 0xa8, 0x39, 0x78, 0x51, 0x5b, 0x19, 0x59, 0x4f,
5912 0x5b, 0x10, 0x35, 0x36, 0x51, 0xdf, 0x49, 0x42, 0xab, 0x4b, 0xe1, 0xf3,
5913 0xf9, 0xad, 0x03, 0x85, 0xf5, 0xe4, 0xe0, 0x89, 0x75, 0x75, 0x34, 0xe1,
5914 0xf8, 0xc2, 0x19, 0xf6, 0x01, 0xa9, 0xc5, 0xb9, 0xce, 0xa3, 0x4f, 0x94,
5915 0x70, 0x10, 0xee, 0x0b, 0x97, 0xd0, 0x27, 0x07, 0xa9, 0x9d, 0x5c, 0x8b,
5916 0x74, 0xfe, 0x81, 0xe6, 0xe6, 0xa9, 0xe6, 0x35, 0x03, 0xcc, 0xb9, 0xea,
5917 0xdc, 0xc0, 0x18, 0x10, 0xab, 0x4e, 0xb6, 0x82, 0x56, 0x1f, 0xa8, 0x84,
5918 0x22, 0xc3, 0xc5, 0x40, 0x91, 0x63, 0xe3, 0x86, 0xaa, 0xe5, 0x22, 0xf3,
5919 0x5b, 0x5f, 0xf0, 0x06, 0x06, 0xe2, 0xe3, 0xcd, 0x49, 0x66, 0x34, 0xa0,
5920 0x81, 0x2c, 0x47, 0x02, 0x39, 0x85, 0x4d, 0x89, 0x5a, 0x1b, 0x6a, 0x1c,
5921 0x74, 0x77, 0xb9, 0x2e, 0x5a, 0xed, 0xc9, 0xf7, 0x3d, 0xf2, 0x35, 0x7f,
5922 0xa3, 0x8f, 0xef, 0x94, 0x3c, 0xce, 0x45, 0xf8, 0xc2, 0x0a, 0x98, 0x51,
5923 0x08, 0x76, 0x00, 0x2a, 0x76, 0xb3, 0x65, 0xcf, 0x47, 0x2d, 0x8b, 0x97,
5924 0xa5, 0xf2, 0x23, 0x46, 0x14, 0x2f, 0x97, 0xfa, 0xa9, 0x0f, 0x2f, 0xc2,
5925 0x6f, 0x34, 0x5e, 0xad, 0xae, 0xc7, 0xcc, 0x15, 0x6e, 0xdc, 0xdb, 0x7c,
5926 0x2b, 0x2c, 0x6f, 0x40, 0xba, 0x91, 0x7f, 0x58, 0x67, 0x85, 0x93, 0x53,
5927 0x1f, 0xf4, 0x23, 0x24, 0x23, 0xe1, 0x34, 0x30, 0x61, 0xae, 0xaa, 0xb4,
5928 0xff, 0x55, 0xf3, 0x20, 0xd8, 0x20, 0x4b, 0xb7, 0xe5, 0x51, 0x08, 0xff,
5929 0xb7, 0xd1, 0x0c, 0x4c, 0x12, 0xba, 0xaf, 0x8d, 0x3e, 0xd4, 0x3b, 0xa0,
5930 0xc8, 0x70, 0xf9, 0x10, 0x86, 0x1d, 0xce, 0x83, 0x68, 0x92, 0x61, 0x0b,
5931 0x1b, 0x09, 0xa3, 0xe4, 0x3e, 0xa8, 0x19, 0x62, 0x05, 0x7b, 0x81, 0x90,
5932 0xdf, 0x9b, 0x41, 0x53, 0x73, 0x77, 0x07, 0x36, 0x66, 0x07, 0x2a, 0xaf,
5933 0xd9, 0x1c, 0x23, 0xc4, 0xe4, 0xf2, 0x7e, 0x07, 0xa6, 0x93, 0x6e, 0x91,
5934 0x2c, 0x1c, 0xf0, 0xae, 0x7b, 0xb2, 0x51, 0xb7, 0x98, 0x37, 0xbd, 0x92,
5935 0x25, 0x04, 0x55, 0xe7, 0x1e, 0xff, 0x3e, 0x69, 0x38, 0x2e, 0xe6, 0x64,
5936 0x97, 0x33, 0xd9, 0xff, 0xa2, 0x81, 0x06, 0x26, 0x78, 0x60, 0x8c, 0xfe,
5937 0x38, 0x51, 0x80, 0xd1, 0x67, 0x53, 0xab, 0x89, 0xd3, 0x46, 0x89, 0xcb,
5938 0x37, 0x51, 0xf9, 0xa5, 0x12, 0x00, 0xf1, 0x82, 0x7e, 0xa8, 0x77, 0xb1,
5939 0x30, 0x76, 0x37, 0x66, 0x41, 0xbc, 0xf2, 0x8a, 0x4f, 0x81, 0x54, 0x47,
5940 0xc9, 0xfb, 0xa4, 0x4d, 0x8d, 0xd8, 0xa5, 0xd5, 0xa1, 0xc9, 0x79, 0x9e,
5941 0x7c, 0xde, 0x6e, 0x30, 0x5b, 0x81, 0x6f, 0xb9, 0x7d, 0x07, 0x8f, 0x3e,
5942 0x2a, 0xc9, 0x1d, 0x5d, 0x45, 0xcf, 0x3f, 0x7e, 0xfb, 0xfc, 0x26, 0xba,
5943 0x5c, 0xb2, 0xd5, 0xc1, 0xde, 0xd7, 0xb5, 0x75, 0x74, 0x31, 0x3e, 0x30,
5944 0x67, 0x0c, 0x68, 0xc0, 0x0a, 0x88, 0xf3, 0xc8, 0x6d, 0xa4, 0xa6, 0x8a,
5945 0x10, 0xeb, 0xba, 0x4d, 0x4a, 0xd1, 0x61, 0xab, 0x28, 0x37, 0x05, 0xd4,
5946 0x81, 0x02, 0x9b, 0x98, 0xd2, 0x26, 0xd1, 0xbb, 0x15, 0x99, 0x25, 0xbc,
5947 0x7b, 0xaa, 0x24, 0xfa, 0x18, 0x25, 0x57, 0xd2, 0x2a, 0xb6, 0x89, 0x3c,
5948 0xd3, 0x9f, 0x93, 0x77, 0xc6, 0x2a, 0xa7, 0x7b, 0x06, 0xb6, 0x81, 0x67,
5949 0x82, 0x10, 0x90, 0x85, 0xd8, 0x82, 0x6c, 0x9f, 0xdb, 0xd3, 0x1d, 0x3b,
5950 0x10, 0xad, 0x29, 0x8e, 0x29, 0xfa, 0xb8, 0xd6, 0xd6, 0x42, 0xaf, 0xd0,
5951 0x96, 0x7a, 0x82, 0x1e, 0x6d, 0xcb, 0x42, 0x4c, 0xae, 0x5b, 0x30, 0x7d,
5952 0x3f, 0xb0, 0x58, 0x5d, 0x96, 0x31, 0xbe, 0xe8, 0xaa, 0x8d, 0x7f, 0x54,
5953 0xef, 0xc5, 0xa3, 0x95, 0x66, 0x1f, 0xb1, 0x00, 0xf0, 0x02, 0x99, 0xd5,
5954 0xb6, 0xd1, 0xae, 0x38, 0x92, 0xcc, 0xfc, 0x3a, 0xf0, 0xa7, 0x63, 0x76,
5955 0xaa, 0x06, 0x94, 0x7f, 0xf2, 0x4c, 0x70, 0x29, 0xa5, 0x2b, 0x45, 0xb9,
5956 0x2a, 0x84, 0x99, 0xe4, 0xc3, 0xa2, 0xe4, 0xb6, 0xbf, 0xb5, 0xc7, 0x60,
5957 0x1a, 0x1e, 0xcc, 0x92, 0x49, 0x9a, 0xb0, 0x91, 0xd6, 0xf4, 0xca, 0xad,
5958 0x67, 0xd8, 0x2b, 0xfd, 0x61, 0xb3, 0x4f, 0xbe, 0x53, 0xbf, 0xb0, 0x57,
5959 0xd2, 0xde, 0x47, 0xf4, 0x49, 0xa9, 0xdd, 0xde, 0x01, 0x7f, 0xa2, 0x2a,
5960 0xe1, 0x50, 0x7e, 0x36, 0xbc, 0xc4, 0xcf, 0x94, 0x40, 0xdc, 0xe6, 0x3a,
5961 0x99, 0xb9, 0x0c, 0x90, 0x41, 0x9b, 0xe3, 0x2c, 0xea, 0x82, 0xcd, 0xe2,
5962 0x5a, 0x91, 0xb5, 0x59, 0x6f, 0xe9, 0x32, 0x60, 0x46, 0x1c, 0xd7, 0xb6,
5963 0x7c, 0xe3, 0x7c, 0x30, 0x74, 0xd9, 0x8e, 0xdc, 0x2f, 0xc0, 0x07, 0xa1,
5964 0xd7, 0x02, 0x76, 0x5e, 0xb2, 0x84, 0x7c, 0xa4, 0xfe, 0xf8, 0x08, 0x7e,
5965 0x05, 0xee, 0x83, 0x69, 0xe1, 0xd2, 0xf5, 0x01, 0x83, 0x0e, 0x7e, 0xac,
5966 0xb7, 0x94, 0x04, 0x35, 0x21, 0x94, 0xc0, 0xe6, 0x63, 0xae, 0x6f, 0xeb,
5967 0x6e, 0x15, 0xed, 0x7e, 0xd8, 0xc7, 0xde, 0xc9, 0x9d, 0x05, 0xf4, 0x06,
5968 0x71, 0x4d, 0xc8, 0x31, 0x8d, 0x98, 0x0c, 0x8b, 0xc7, 0x0d, 0x4f, 0xfd,
5969 0x35, 0xf6, 0x43, 0xfd, 0xd0, 0xa1, 0x68, 0x12, 0x93, 0xdd, 0xd7, 0xb5,
5970 0x02, 0x02, 0xd3, 0x24, 0xe0, 0x4e, 0x38, 0xe5, 0x8c, 0x28, 0xbe, 0x84,
5971 0x7f, 0xe0, 0xb0, 0x75, 0x0d, 0x6a, 0x86, 0x07, 0xe8, 0x37, 0x24, 0x8b,
5972 0xa5, 0x95, 0xa3, 0xd8, 0xce, 0x92, 0xbe, 0xa2, 0x7b, 0x21, 0x58, 0x95,
5973 0xdf, 0x81, 0x65, 0xf1, 0x32, 0x28, 0xa7, 0x82, 0x1f, 0x18, 0xee, 0x44,
5974 0xb8, 0x30, 0x57, 0x4b, 0xa9, 0xd5, 0xc7, 0xb4, 0x23, 0x39, 0xdc, 0xe4,
5975 0x1f, 0xaa, 0xd5, 0xd8, 0x51, 0x25, 0xc6, 0x00, 0x6f, 0x8d, 0x0c, 0xee,
5976 0xf6, 0xed, 0xae, 0x2c, 0xe7, 0xef, 0xe8, 0xc9, 0xf4, 0xea, 0xe1, 0x9d,
5977 0xa8, 0xf8, 0x8f, 0x38, 0x42, 0xe5, 0x41, 0x53, 0x9c, 0x4c, 0xd1, 0x48,
5978 0xdb, 0x98, 0x0c, 0xbc, 0x84, 0xcc, 0x31, 0x54, 0xcd, 0x44, 0x82, 0x3b,
5979 0xfe, 0xfa, 0x51, 0x76, 0x82, 0xb9, 0x09, 0xdc, 0x8e, 0x1b, 0x31, 0x5f,
5980 0x17, 0x7c, 0xeb, 0xfc, 0x01, 0x6b, 0xeb, 0xc3, 0x36, 0x16, 0x37, 0xe2,
5981 0xab, 0xc7, 0x3c, 0x66, 0x7e, 0xff, 0x7a, 0xa1, 0xa8, 0x20, 0xa1, 0xed,
5982 0xc5, 0x8f, 0x96, 0x89, 0xb0, 0xbf, 0xbd, 0xfd, 0xd3, 0x8f, 0x1c, 0x88,
5983 0xfb, 0xc2, 0xa2, 0x6f, 0x3f, 0x7d, 0x4c, 0x5d, 0xad, 0x66, 0xa2, 0xa2,
5984 0x2f, 0x5e, 0xf5, 0xeb, 0x27, 0xf7, 0x7f, 0x9c, 0x9f, 0x3d, 0x79, 0x9f,
5985 0x0a, 0xe9, 0x51, 0x18, 0x22, 0x0c, 0xdc, 0x5f, 0xaa, 0x29, 0xca, 0xa4,
5986 0xea, 0xaa, 0x8f, 0xac, 0x71, 0x53, 0xc3, 0xc2, 0xcb, 0x10, 0x8a, 0xa4,
5987 0xbf, 0x36, 0xed, 0x81, 0x1b, 0xc2, 0xe7, 0xe2, 0x8d, 0x8e, 0x3b, 0xa5,
5988 0x8f, 0x7e, 0x96, 0x92, 0xf5, 0xf1, 0x1e, 0xb8, 0xd0, 0x1e, 0xa0, 0xdf,
5989 0xd6, 0xe7, 0x2e, 0xe0, 0xd5, 0xc1, 0x3c, 0x70, 0xa8, 0x07, 0x17, 0x0a,
5990 0x65, 0xda, 0x61, 0x38, 0x3d, 0x20, 0x07, 0x61, 0xb5, 0x30, 0x71, 0xfc,
5991 0x76, 0x2a, 0x5e, 0xba, 0x77, 0x00, 0x61, 0x29, 0x7e, 0x61, 0xad, 0x61,
5992 0xad, 0x46, 0x15, 0xb7, 0xe0, 0x39, 0x05, 0xf5, 0x68, 0xa3, 0x5f, 0xb3,
5993 0x77, 0xde, 0xa4, 0xa3, 0xbb, 0x04, 0xda, 0x34, 0xec, 0xa2, 0xc4, 0x6e,
5994 0x5a, 0x35, 0xe3, 0x9d, 0x53, 0x10, 0xe4, 0x3a, 0x7c, 0x00, 0xc6, 0xad,
5995 0x60, 0x9d, 0xf2, 0x13, 0xf2, 0x34, 0x55, 0x2b, 0x3a, 0x53, 0xe6, 0xed,
5996 0xa2, 0x65, 0xf0, 0x42, 0x8b, 0x4c, 0x2b, 0x1e, 0x70, 0xb8, 0x34, 0x31,
5997 0x6e, 0x0e, 0xf6, 0x41, 0x1b, 0x79, 0xc4, 0x1b, 0x2a, 0x13, 0x86, 0xfb,
5998 0x6f, 0x8b, 0xcc, 0x5c, 0x68, 0x7e, 0xe3, 0xa9, 0xd2, 0xd5, 0xde, 0xc7,
5999 0x0f, 0xc6, 0xc0, 0x24, 0xaf, 0xb5, 0x48, 0x59, 0xba, 0xc4, 0x6c, 0x10,
6000 0x82, 0xa0, 0xc2, 0x1a, 0xa4, 0x56, 0x61, 0x67, 0x53, 0xe1, 0xdd, 0xcd,
6001 0xb4, 0x01, 0xab, 0x02, 0x87, 0x3a, 0x30, 0x50, 0xae, 0x1c, 0x1c, 0xff,
6002 0xf3, 0x7a, 0x80, 0xc6, 0x2b, 0xb6, 0xff, 0x7d, 0xfe, 0xab, 0x8d, 0x4d,
6003 0xa3, 0x22, 0x5a, 0x6b, 0x26, 0x4c, 0x42, 0x70, 0x3c, 0x65, 0xeb, 0x32,
6004 0xb1, 0x39, 0xaf, 0xd5, 0x17, 0x02, 0xca, 0x7d, 0x75, 0xb8, 0x1a, 0x45,
6005 0xa6, 0x6d, 0x15, 0x57, 0x73, 0x54, 0x8a, 0x18, 0x76, 0x72, 0x12, 0x50,
6006 0x8b, 0x83, 0x80, 0x76, 0x60, 0x10, 0x24, 0xd0, 0x32, 0x7c, 0xc6, 0x27,
6007 0x87, 0xe3, 0x73, 0xce, 0x20, 0xed, 0xe0, 0xa4, 0x74, 0x3c, 0x99, 0x48,
6008 0x88, 0x8e, 0x22, 0x57, 0xcc, 0xbc, 0xca, 0x6b, 0x6c, 0x9f, 0x6f, 0xf2,
6009 0x80, 0x4a, 0xd3, 0xe7, 0x37, 0x77, 0xf8, 0x3f, 0xf9, 0xb3, 0x72, 0x3f,
6010 0x99, 0x0b, 0xcb, 0xa8, 0x87, 0x57, 0x57, 0x28, 0x78, 0x81, 0x10, 0x86,
6011 0xdb, 0x66, 0xb5, 0xa2, 0x98, 0xbf, 0xba, 0x6a, 0xfe, 0x5e, 0xd8, 0x6b,
6012 0x65, 0xfc, 0x6b, 0xcb, 0xb0, 0x09, 0xaa, 0x74, 0xec, 0xf2, 0x29, 0x1c,
6013 0x95, 0xab, 0xbd, 0xa9, 0xc0, 0xd8, 0x10, 0x81, 0xfe, 0xf1, 0x85, 0x29,
6014 0x31, 0x54, 0x57, 0x9b, 0xed, 0xb2, 0x96, 0x3d, 0xd5, 0x64, 0x02, 0xeb,
6015 0x20, 0x35, 0x6d, 0x54, 0x0b, 0xd4, 0xae, 0x78, 0xfe, 0x56, 0x4c, 0x8d,
6016 0x31, 0x58, 0x3a, 0x98, 0x34, 0xd6, 0xef, 0xab, 0xe3, 0xcb, 0xad, 0x36,
6017 0x23, 0x53, 0x3c, 0x0b, 0x3b, 0x16, 0x81, 0xc1, 0x5c, 0xc5, 0x20, 0x76,
6018 0x64, 0xc1, 0x2e, 0x5b, 0x20, 0xe3, 0x04, 0xc8, 0xe5, 0x3c, 0x96, 0x8a,
6019 0x19, 0x2d, 0xe2, 0xc2, 0x43, 0x9a, 0x86, 0x3c, 0x0b, 0x03, 0xe0, 0xa1,
6020 0x01, 0x17, 0x7a, 0x3b, 0x38, 0x2b, 0x49, 0x82, 0x7a, 0x47, 0xc7, 0xa7,
6021 0xc7, 0x97, 0xc7, 0x03, 0xe4, 0x74, 0xb6, 0x6c, 0xc2, 0x39, 0x24, 0xa4,
6022 0x4a, 0xa6, 0x37, 0x59, 0x4e, 0xc6, 0x0f, 0x2f, 0x07, 0x52, 0x3d, 0xbe,
6023 0x4b, 0x26, 0x47, 0x07, 0xdf, 0x32, 0xff, 0x3e, 0x4b, 0xd4, 0xf9, 0xc5,
6024 0xd9, 0xf9, 0xab, 0x93, 0x37, 0x47, 0x83, 0xe8, 0xf0, 0xec, 0xfc, 0x87,
6025 0x41, 0xf4, 0xfa, 0xec, 0xdb, 0xe3, 0x0e, 0x5c, 0x21, 0xe3, 0x13, 0xda,
6026 0x18, 0xdc, 0x57, 0x6b, 0x56, 0x3b, 0xa4, 0x20, 0xd7, 0xa5, 0x0e, 0x26,
6027 0xff, 0xf4, 0x64, 0x7c, 0x89, 0xa5, 0x6f, 0x42, 0x19, 0x00, 0xdb, 0x94,
6028 0xe2, 0x31, 0x29, 0x0f, 0x19, 0x4b, 0x4f, 0x6d, 0xfd, 0x96, 0xe0, 0x97,
6029 0xf7, 0x71, 0x55, 0x75, 0xf3, 0x83, 0x95, 0x31, 0x9c, 0xc9, 0x2e, 0x16,
6030 0x88, 0x1c, 0x1c, 0x61, 0x1c, 0x0f, 0x3f, 0x5e, 0xd5, 0x6a, 0x93, 0xd2,
6031 0xf0, 0x5b, 0x88, 0x13, 0x3b, 0xb2, 0x30, 0x32, 0x92, 0xba, 0x58, 0x18,
6032 0xbc, 0x33, 0xa1, 0x6c, 0xb7, 0x84, 0x53, 0xee, 0x47, 0x3a, 0x61, 0x5a,
6033 0xcf, 0x51, 0x98, 0x77, 0xd0, 0xd6, 0x34, 0x8a, 0x5d, 0xc1, 0x97, 0x5c,
6034 0xcc, 0xe3, 0xfd, 0xec, 0x7a, 0x94, 0x17, 0x29, 0x3b, 0x16, 0x91, 0xa5,
6035 0x64, 0x8d, 0x45, 0xa8, 0x23, 0xc2, 0x72, 0xc8, 0xd2, 0x34, 0xe8, 0x2c,
6036 0x74, 0x26, 0xfc, 0xdc, 0x96, 0x44, 0x50, 0x6f, 0x77, 0x81, 0x80, 0x05,
6037 0xff, 0xca, 0x35, 0x19, 0x14, 0x25, 0xed, 0x48, 0xd8, 0x2b, 0x1f, 0x68,
6038 0x9d, 0x17, 0x41, 0xee, 0xb0, 0xaf, 0xda, 0xed, 0x29, 0xea, 0x83, 0xc1,
6039 0x0e, 0xc2, 0xba, 0xe3, 0x6d, 0xc2, 0xc8, 0x94, 0xcc, 0xad, 0xda, 0x82,
6040 0x3d, 0x00, 0x6d, 0xc0, 0x57, 0x5d, 0x65, 0x47, 0xe4, 0x3f, 0x3b, 0x59,
6041 0x75, 0xdd, 0x65, 0x9d, 0x07, 0xc5, 0xd7, 0x2e, 0x65, 0xf7, 0x93, 0x97,
6042 0x85, 0xc8, 0x6f, 0xd2, 0xb8, 0xe2, 0x46, 0xb3, 0x55, 0xd1, 0xbe, 0x24,
6043 0xc4, 0x51, 0xf0, 0x41, 0xc9, 0xa9, 0x1b, 0xd4, 0xfc, 0x1c, 0x1c, 0xb1,
6044 0x2f, 0x7d, 0xa5, 0x3e, 0xfa, 0x7c, 0xf0, 0x42, 0x6b, 0x4c, 0x46, 0x8c,
6045 0x1f, 0x30, 0x03, 0x04, 0x5d, 0x32, 0x41, 0xdd, 0x8d, 0x56, 0xd9, 0x9c,
6046 0x51, 0xf2, 0x6c, 0x9f, 0x49, 0xba, 0xc0, 0x0f, 0x8f, 0x17, 0x2c, 0x17,
6047 0xd0, 0x53, 0x98, 0xb9, 0x2a, 0x47, 0x36, 0x57, 0x5b, 0x17, 0x0b, 0x0c,
6048 0xcb, 0x11, 0x23, 0x6a, 0x1a, 0x61, 0x4e, 0xda, 0xb2, 0xa0, 0x17, 0xea,
6049 0xa4, 0x9a, 0x8e, 0xa2, 0x30, 0x51, 0x12, 0x18, 0x2d, 0x92, 0x64, 0x51,
6050 0x6a, 0x64, 0x14, 0x0d, 0x24, 0x95, 0x08, 0xc4, 0xf1, 0xfa, 0xde, 0xb0,
6051 0xc3, 0xa7, 0xc8, 0x77, 0xcd, 0x35, 0xe6, 0xce, 0xaf, 0xb7, 0x8b, 0x7f,
6052 0xf0, 0x42, 0x21, 0x93, 0xf8, 0x02, 0xff, 0xf8, 0x45, 0x62, 0x11, 0x90,
6053 0x3e, 0x8a, 0x27, 0x65, 0x93, 0xb6, 0x40, 0x4d, 0x3e, 0x86, 0x2d, 0xac,
6054 0xf5, 0x6c, 0x4b, 0x13, 0x7c, 0x82, 0xe5, 0x56, 0x47, 0x28, 0x5f, 0x17,
6055 0xea, 0x52, 0x51, 0x13, 0x89, 0x0e, 0x2b, 0x5f, 0xd6, 0x58, 0x10, 0x8c,
6056 0x29, 0x97, 0x4b, 0x61, 0xeb, 0x13, 0x77, 0x92, 0xe4, 0xb7, 0x4c, 0x1b,
6057 0xff, 0x19, 0x69, 0xe3, 0xf4, 0xfc, 0x10, 0x1b, 0xe0, 0xc5, 0x2c, 0x86,
6058 0x5f, 0x1a, 0x19, 0x1a, 0xd4, 0xf4, 0xfa, 0x32, 0x40, 0x56, 0x01, 0xc8,
6059 0x32, 0x48, 0x24, 0xec, 0xc1, 0x36, 0x3a, 0x53, 0xcf, 0x82, 0x57, 0x5e,
6060 0xeb, 0xcb, 0x71, 0x14, 0xbe, 0xd2, 0x79, 0xee, 0xba, 0xda, 0x68, 0x89,
6061 0x12, 0xf1, 0xb0, 0x02, 0xc0, 0x49, 0x8f, 0xa3, 0x1c, 0x25, 0xf7, 0x7b,
6062 0x4d, 0x93, 0xe2, 0xa7, 0xef, 0xc2, 0xab, 0x0b, 0xbd, 0x26, 0x98, 0x37,
6063 0xea, 0x63, 0x31, 0x8b, 0x1a, 0xa5, 0x07, 0x91, 0xaf, 0x49, 0xa7, 0x11,
6064 0x9e, 0x51, 0xa3, 0xb4, 0x6c, 0x67, 0x2e, 0x02, 0x02, 0xc0, 0x2e, 0x6d,
6065 0xc3, 0x6a, 0x09, 0x87, 0x04, 0xe3, 0x7e, 0x5c, 0xcd, 0x03, 0xea, 0xa5,
6066 0x46, 0x33, 0xc0, 0xa0, 0xaa, 0x08, 0x9e, 0xee, 0x3a, 0x16, 0x86, 0xe9,
6067 0xf1, 0x39, 0xbd, 0x9a, 0x09, 0x2d, 0xe7, 0xe3, 0xef, 0xea, 0x49, 0x89,
6068 0xd4, 0x0e, 0xf7, 0x6f, 0x7d, 0x42, 0xa2, 0x70, 0xa4, 0x37, 0xc7, 0xa9,
6069 0x36, 0x47, 0x9b, 0x92, 0x86, 0x1d, 0xf1, 0xa2, 0x79, 0x1a, 0x6f, 0x84,
6070 0x85, 0x5f, 0x37, 0x87, 0xbe, 0x62, 0x26, 0x78, 0xa7, 0x65, 0x85, 0xdb,
6071 0x4e, 0xc4, 0xd8, 0x79, 0xf3, 0x1c, 0x10, 0x30, 0x9f, 0xcf, 0xfc, 0x86,
6072 0xb2, 0x24, 0x0a, 0xfe, 0xd8, 0xb6, 0xc4, 0x0a, 0x4c, 0xe3, 0x81, 0xca,
6073 0xa7, 0x75, 0xfe, 0x37, 0x1a, 0xcb, 0x92, 0xfb, 0xb0, 0x31, 0x6f, 0xec,
6074 0xb9, 0x06, 0x7f, 0xc3, 0x7d, 0x71, 0xc3, 0xfb, 0xe2, 0x26, 0x99, 0x2f,
6075 0x5b, 0xbe, 0x05, 0xf6, 0xb9, 0xf2, 0x2f, 0x82, 0x87, 0x5f, 0x0f, 0x40,
6076 0xed, 0x9a, 0xad, 0x5a, 0xe5, 0x30, 0x5f, 0xe3, 0x87, 0xa3, 0xe8, 0x48,
6077 0x61, 0x6c, 0xc8, 0xdf, 0x58, 0x69, 0x0b, 0xc0, 0x36, 0x05, 0xcd, 0x7c,
6078 0xab, 0xb0, 0xd1, 0xb2, 0xed, 0x9d, 0xd1, 0xf7, 0xcb, 0x30, 0x57, 0x45,
6079 0xe3, 0x22, 0x92, 0x97, 0x9c, 0x19, 0x39, 0xae, 0xf8, 0xbf, 0xec, 0xfa,
6080 0x91, 0x82, 0x0c, 0xa0, 0x1c, 0x75, 0x91, 0x07, 0x2b, 0xab, 0xb9, 0xe4,
6081 0x2f, 0xf8, 0x18, 0x89, 0x41, 0x0e, 0xac, 0x09, 0x2e, 0xe2, 0x01, 0x58,
6082 0xa8, 0xb5, 0xdd, 0x91, 0x76, 0xc2, 0x46, 0x74, 0xf4, 0xa4, 0x98, 0x21,
6083 0x8e, 0xf8, 0xc0, 0x4f, 0x16, 0x71, 0x21, 0x26, 0x67, 0x76, 0x6b, 0x90,
6084 0x03, 0xb9, 0xbf, 0x26, 0xd3, 0x55, 0x55, 0xa7, 0x65, 0x08, 0xfa, 0xa4,
6085 0xc7, 0x30, 0xba, 0xb4, 0x89, 0xb8, 0x91, 0x9a, 0x81, 0xbd, 0x73, 0xbb,
6086 0xcd, 0xed, 0xf7, 0xb6, 0x2c, 0xc1, 0x05, 0xe8, 0x24, 0x77, 0xcd, 0xeb,
6087 0xd2, 0x05, 0xd6, 0xe5, 0x22, 0x91, 0x04, 0xed, 0x2a, 0x37, 0x73, 0xa4,
6088 0xf3, 0xf3, 0x24, 0x3b, 0x45, 0xe7, 0xd7, 0x5f, 0x49, 0xd9, 0xa1, 0xe0,
6089 0xe3, 0xee, 0xc2, 0xa7, 0x15, 0x89, 0xca, 0x35, 0x75, 0x90, 0x83, 0x2f,
6090 0xc3, 0xe4, 0x1e, 0x45, 0x07, 0x0e, 0xe6, 0x64, 0xaf, 0xda, 0xe4, 0xb7,
6091 0x50, 0x4e, 0x27, 0xe7, 0x77, 0x9f, 0x04, 0xa9, 0xef, 0x6c, 0x48, 0xe3,
6092 0x47, 0x3a, 0x9d, 0x69, 0x7b, 0x8b, 0xdf, 0x16, 0x93, 0xa7, 0xf4, 0x9f,
6093 0x6f, 0xf8, 0x3f, 0xac, 0x1a, 0xb4, 0xf4, 0xac, 0x4b, 0x59, 0x6d, 0xeb,
6094 0x84, 0xf1, 0xa9, 0x85, 0x44, 0xc6, 0x90, 0xa2, 0x57, 0xf8, 0x4b, 0x91,
6095 0x3c, 0xf2, 0x0e, 0x8d, 0xed, 0x67, 0x76, 0x05, 0xad, 0xc8, 0xd8, 0x27,
6096 0x49, 0x9c, 0xa2, 0xe0, 0xcb, 0xc2, 0x29, 0x13, 0xa9, 0x99, 0x6c, 0xe9,
6097 0x84, 0x92, 0xc1, 0x0e, 0xa7, 0x90, 0xdc, 0x93, 0xd2, 0x35, 0xf1, 0xd3,
6098 0xf5, 0xdf, 0x03, 0x9a, 0x3f, 0x6a, 0x82, 0xfa, 0x03, 0x2e, 0xad, 0x35,
6099 0xef, 0x7d, 0x35, 0x1e, 0x0f, 0xdf, 0x28, 0x87, 0xcc, 0x1a, 0x6f, 0xbb,
6100 0xfb, 0x75, 0xb3, 0x61, 0x9e, 0x0a, 0x9a, 0xcc, 0x67, 0x1f, 0x37, 0x8b,
6101 0x47, 0x0c, 0xc3, 0xb6, 0x70, 0xa3, 0x23, 0x21, 0x2f, 0x01, 0x77, 0x16,
6102 0x39, 0x98, 0xac, 0x52, 0x2b, 0x08, 0x83, 0x87, 0xd5, 0xff, 0x24, 0x39,
6103 0x0c, 0x6b, 0x66, 0x04, 0xa8, 0x70, 0x10, 0x10, 0x03, 0x80, 0x7b, 0x6b,
6104 0x39, 0x89, 0x8b, 0x64, 0xc1, 0x14, 0x1a, 0x0e, 0xfb, 0xad, 0xe6, 0xda,
6105 0x2b, 0x3e, 0xaf, 0xf8, 0x63, 0x6b, 0x3c, 0xc5, 0x33, 0x66, 0xe8, 0x65,
6106 0xc7, 0x98, 0x94, 0xac, 0xfa, 0x5d, 0xcb, 0xb5, 0x57, 0x3e, 0x64, 0xd3,
6107 0x9b, 0xa3, 0x37, 0xe3, 0x8d, 0xf5, 0x98, 0x04, 0x8c, 0x45, 0x86, 0x86,
6108 0xa7, 0x8b, 0x3c, 0x63, 0xe8, 0x70, 0x80, 0xc0, 0xe9, 0x70, 0x43, 0x8c,
6109 0xcf, 0xdf, 0x1c, 0x7f, 0x75, 0x66, 0xff, 0x59, 0x3b, 0xe5, 0x8f, 0xce,
6110 0xf0, 0x29, 0x97, 0x34, 0x7c, 0xac, 0x3a, 0xa4, 0x75, 0xce, 0x12, 0x4e,
6111 0x03, 0x3b, 0x98, 0x04, 0x72, 0xce, 0xaf, 0x8b, 0x2c, 0x0e, 0x54, 0x24,
6112 0xf1, 0xa3, 0x62, 0x5d, 0xdd, 0x4b, 0xda, 0x6e, 0x7b, 0x5f, 0x7d, 0xd9,
6113 0x3e, 0x60, 0x8e, 0xde, 0xac, 0xf9, 0x1c, 0xff, 0x66, 0x68, 0x46, 0x81,
6114 0x5e, 0xe1, 0x67, 0xb4, 0x3f, 0x52, 0x21, 0xba, 0xed, 0x98, 0x95, 0xf1,
6115 0xf9, 0x89, 0xfd, 0xa7, 0x36, 0x74, 0x83, 0x8d, 0xf3, 0x76, 0x17, 0x99,
6116 0x97, 0x8a, 0xb6, 0x7c, 0x53, 0x9a, 0xcc, 0xe3, 0xec, 0x56, 0x72, 0xae,
6117 0xd7, 0xd4, 0xd1, 0x8d, 0x11, 0x93, 0x17, 0x19, 0x14, 0x26, 0x19, 0x3f,
6118 0xcb, 0xea, 0xa5, 0x44, 0xa6, 0x8a, 0x60, 0x3a, 0xab, 0x68, 0x4d, 0xf6,
6119 0xb9, 0x33, 0x32, 0xd6, 0x78, 0xf7, 0x34, 0xa7, 0x7d, 0x4d, 0x79, 0xc9,
6120 0x8b, 0xf3, 0x68, 0x73, 0x2c, 0x0c, 0xd5, 0x17, 0x12, 0x49, 0x39, 0xd7,
6121 0x86, 0xb6, 0x3a, 0x56, 0x7d, 0x6d, 0x46, 0xbd, 0x39, 0xe0, 0x49, 0xb0,
6122 0x41, 0x62, 0xbc, 0xc1, 0x46, 0xa7, 0x13, 0xcf, 0xff, 0xda, 0x1e, 0xf1,
6123 0x30, 0x8b, 0x69, 0x1b, 0x42, 0x2e, 0x75, 0xba, 0x7d, 0x56, 0xc9, 0x20,
6124 0x02, 0x81, 0xfd, 0x37, 0x03, 0xb9, 0xad, 0xe0, 0xc7, 0xde, 0x39, 0x43,
6125 0x0d, 0x1f, 0xbf, 0xf9, 0xf6, 0xe4, 0xe2, 0xec, 0xcd, 0xeb, 0xe3, 0x37,
6126 0x0e, 0xec, 0xc7, 0x07, 0x42, 0x97, 0x63, 0xbd, 0xbb, 0xcc, 0xa4, 0x5c,
6127 0x25, 0xd8, 0x87, 0xcc, 0x66, 0x23, 0x8d, 0x47, 0xff, 0x35, 0x0a, 0x9b,
6128 0x0b, 0x1e, 0xb2, 0xd3, 0x95, 0x2d, 0xdb, 0x25, 0xc7, 0x26, 0x67, 0x0c,
6129 0xb0, 0x1d, 0x09, 0xf2, 0x51, 0x3c, 0x98, 0x52, 0x40, 0x39, 0x79, 0x3f,
6130 0x4d, 0x94, 0xf1, 0xad, 0x0c, 0xc8, 0xc7, 0xb5, 0xbe, 0x7d, 0x00, 0x9a,
6131 0xad, 0x75, 0xc2, 0xaf, 0x97, 0xd6, 0x41, 0xe2, 0xba, 0x37, 0x9d, 0x61,
6132 0x02, 0x94, 0x10, 0xab, 0x02, 0x07, 0xed, 0x8d, 0x3a, 0x95, 0xe1, 0x64,
6133 0x16, 0x8c, 0x6d, 0xc0, 0xd0, 0xe7, 0x79, 0x47, 0x2c, 0x54, 0xd3, 0xbc,
6134 0xde, 0x05, 0x23, 0xa8, 0x05, 0x71, 0x40, 0x2d, 0xf9, 0xb9, 0x86, 0x6c,
6135 0xda, 0x39, 0xf6, 0x65, 0xe8, 0x23, 0x76, 0xe5, 0x17, 0x2d, 0x6d, 0x0c,
6136 0xb1, 0x80, 0x8d, 0x20, 0x7e, 0x3f, 0x7e, 0x77, 0x7e, 0x71, 0xf6, 0xfd,
6137 0x0f, 0xbf, 0xf2, 0x27, 0xc6, 0x7e, 0x18, 0x3f, 0xb2, 0x22, 0xb5, 0xc6,
6138 0x7f, 0xfa, 0xd5, 0xbf, 0x56, 0x6f, 0x7e, 0x10, 0x30, 0xd7, 0x75, 0xd2,
6139 0xa2, 0xc1, 0x5d, 0x2c, 0x66, 0x73, 0xe0, 0x3f, 0x0e, 0xc2, 0xfd, 0x4e,
6140 0x0f, 0xc1, 0x65, 0x5c, 0x36, 0x6a, 0xa0, 0xb6, 0x7d, 0x48, 0x23, 0xa9,
6141 0x37, 0xcf, 0xa7, 0x7d, 0x9b, 0xa6, 0x7e, 0x00, 0xea, 0x43, 0x1c, 0x2b,
6142 0x6e, 0x3e, 0x0e, 0x4e, 0x4f, 0x7f, 0xd5, 0x49, 0xc0, 0xed, 0xd6, 0x8f,
6143 0x65, 0x58, 0xab, 0x34, 0xc5, 0xfe, 0xfb, 0x96, 0x9d, 0x50, 0xbb, 0x08,
6144 0xbf, 0x39, 0xd3, 0xde, 0x88, 0x33, 0x7a, 0x68, 0xc5, 0x3f, 0x67, 0xae,
6145 0xc2, 0x3c, 0x8a, 0x67, 0x7d, 0xde, 0x32, 0x5d, 0x4a, 0xe1, 0xe5, 0xab,
6146 0x15, 0x79, 0x42, 0x09, 0x40, 0x90, 0xe7, 0x21, 0x1d, 0x27, 0x77, 0x61,
6147 0x1e, 0xa1, 0x08, 0xb5, 0xa0, 0x61, 0x47, 0x68, 0x8e, 0x9d, 0x82, 0x8c,
6148 0xb8, 0x2d, 0xd2, 0xf2, 0x16, 0x79, 0x4c, 0xbc, 0x29, 0x07, 0x52, 0x5a,
6149 0xa2, 0x42, 0xbd, 0x1e, 0x36, 0x52, 0xd1, 0x15, 0xea, 0xbb, 0xf4, 0x98,
6150 0xfe, 0xbc, 0x3c, 0x3b, 0x3c, 0x3b, 0xa5, 0xbf, 0x1c, 0xbf, 0x3a, 0xf9,
6151 0xde, 0x2b, 0x34, 0xa1, 0x0c, 0xad, 0xd9, 0xef, 0x8f, 0xc6, 0x4f, 0xd6,
6152 0x04, 0x50, 0x36, 0x7c, 0xa0, 0xcf, 0x96, 0xc9, 0xa2, 0x26, 0x41, 0xfe,
6153 0x5d, 0xa3, 0xaa, 0xd8, 0xfb, 0x87, 0x20, 0x60, 0x12, 0xc6, 0x76, 0x6b,
6154 0xab, 0x24, 0x22, 0x58, 0x23, 0x8e, 0xaa, 0xc5, 0x27, 0xb5, 0x73, 0x5c,
6155 0xc4, 0x4a, 0x69, 0xe9, 0xab, 0xd0, 0xa1, 0xd6, 0xb8, 0x44, 0x07, 0x8c,
6156 0x44, 0x74, 0x13, 0x0b, 0x07, 0xe9, 0x53, 0x45, 0x2c, 0xd4, 0x01, 0x96,
6157 0x61, 0x2d, 0x14, 0xbc, 0x11, 0x46, 0x32, 0x7d, 0x67, 0x71, 0x81, 0x70,
6158 0x2d, 0xd6, 0xc7, 0xa4, 0x13, 0xa0, 0x49, 0x20, 0x80, 0x8c, 0x83, 0xa4,
6159 0xd0, 0x9b, 0xdc, 0x2e, 0x20, 0xd4, 0x99, 0xb0, 0x97, 0x8a, 0x86, 0x64,
6160 0x8a, 0x8e, 0xbb, 0x58, 0xaa, 0x59, 0x5c, 0x39, 0x62, 0xd1, 0x46, 0x1b,
6161 0xf1, 0x3f, 0xd5, 0x48, 0x5c, 0x6f, 0xe5, 0xd9, 0x3f, 0xd3, 0xc8, 0xb3,
6162 0x46, 0x1b, 0x37, 0xff, 0x54, 0x23, 0x8e, 0xfa, 0x9a, 0x8e, 0xc5, 0xef,
6163 0x4f, 0x2e, 0xa3, 0xc3, 0xb3, 0x23, 0x2f, 0xa3, 0x97, 0x9a, 0x18, 0x82,
6164 0x3f, 0x38, 0xf2, 0x90, 0x71, 0xb8, 0x84, 0x37, 0x94, 0x2f, 0xc4, 0x26,
6165 0x35, 0x33, 0x18, 0xa4, 0x6f, 0x3e, 0xc8, 0x04, 0xd5, 0xda, 0x0b, 0x01,
6166 0xde, 0x87, 0x7c, 0x24, 0xb5, 0xf2, 0x1a, 0xa5, 0x15, 0x85, 0x7d, 0x00,
6167 0xfd, 0x5d, 0x5c, 0xa8, 0x3f, 0x36, 0x9a, 0xc4, 0x5c, 0x71, 0x3d, 0x93,
6168 0xd0, 0x48, 0x49, 0x57, 0x28, 0xa3, 0xb0, 0x14, 0x9f, 0x51, 0x7e, 0xb5,
6169 0x11, 0x66, 0x77, 0x72, 0x4a, 0x0e, 0x2a, 0xbc, 0xc8, 0x85, 0x93, 0x2b,
6170 0xe2, 0x4a, 0x57, 0xc2, 0x3c, 0x92, 0x5d, 0xd5, 0x84, 0x59, 0x4d, 0x62,
6171 0x94, 0xfb, 0x10, 0xe6, 0x1d, 0x5b, 0xec, 0x33, 0xbb, 0xfd, 0xe2, 0x54,
6172 0xcc, 0xdc, 0xed, 0x51, 0x2b, 0x36, 0xb4, 0x54, 0x94, 0x6b, 0xc2, 0x7d,
6173 0x67, 0x4f, 0x83, 0xa1, 0x52, 0x8a, 0x89, 0xf6, 0x9f, 0xc2, 0x55, 0xd2,
6174 0x9f, 0x83, 0x33, 0xfa, 0x89, 0x77, 0xed, 0x2f, 0xe2, 0xb9, 0xc4, 0xd1,
6175 0x35, 0x87, 0x0c, 0x25, 0x7e, 0x81, 0xc6, 0x60, 0x5f, 0x20, 0xe6, 0x70,
6176 0x1a, 0xa8, 0xc1, 0xa7, 0xaa, 0x9c, 0x5d, 0x61, 0x5c, 0xf6, 0x9a, 0x2d,
6177 0x3d, 0x16, 0x44, 0xc8, 0x78, 0x43, 0xa4, 0xa2, 0x2b, 0x1e, 0x27, 0xec,
6178 0x2b, 0x49, 0xc9, 0xf5, 0x39, 0x36, 0x3a, 0xb1, 0x47, 0xf6, 0x36, 0xbb,
6179 0x8d, 0x2d, 0xd9, 0x9a, 0x3f, 0xc0, 0x3f, 0xe5, 0x58, 0x56, 0x3a, 0x4d,
6180 0x39, 0x74, 0xaf, 0xc5, 0xc0, 0x00, 0x8a, 0xc0, 0xa4, 0x75, 0x39, 0x82,
6181 0x91, 0x98, 0xeb, 0x93, 0x03, 0xcd, 0xf4, 0x98, 0xe5, 0x5a, 0xa1, 0x11,
6182 0x49, 0x6d, 0x34, 0x7d, 0x13, 0xfa, 0xcd, 0x83, 0xf4, 0x98, 0x8d, 0x16,
6183 0x78, 0x16, 0x5a, 0x0c, 0xa6, 0xba, 0x30, 0x7a, 0xb7, 0xf2, 0x17, 0x99,
6184 0x67, 0x16, 0x4b, 0x53, 0x4d, 0xee, 0xb9, 0xd6, 0x55, 0x89, 0x8b, 0xe3,
6185 0x43, 0x1d, 0x8e, 0x7a, 0xce, 0x08, 0xe9, 0xfa, 0x14, 0x60, 0x24, 0x41,
6186 0x09, 0x74, 0x97, 0xfc, 0x0b, 0x6c, 0xe0, 0x4f, 0x1a, 0xdf, 0xb1, 0xcf,
6187 0x70, 0x53, 0xb2, 0x6e, 0xf2, 0x89, 0x26, 0x9c, 0x9d, 0x9b, 0x6f, 0xb7,
6188 0xf6, 0x69, 0x53, 0x44, 0x2c, 0x67, 0x80, 0xe9, 0x44, 0xf2, 0x10, 0xa2,
6189 0xf8, 0x99, 0x3e, 0x49, 0xd7, 0xd1, 0xfb, 0x84, 0x5d, 0x15, 0x7a, 0xa4,
6190 0xa2, 0x48, 0xb5, 0x8d, 0xce, 0xe0, 0xa9, 0x02, 0x88, 0x44, 0xb0, 0x49,
6191 0xaf, 0x03, 0x53, 0xed, 0x6f, 0x1b, 0x83, 0x11, 0x1a, 0x8c, 0xcf, 0xfd,
6192 0x47, 0xa2, 0x18, 0x00, 0x20, 0x16, 0x93, 0x2c, 0x75, 0x22, 0xa9, 0x95,
6193 0x46, 0xf0, 0x23, 0xc6, 0x55, 0xd1, 0x19, 0x90, 0xbb, 0x7f, 0xeb, 0x1b,
6194 0x2d, 0xea, 0xc5, 0x06, 0xc8, 0x9c, 0x67, 0x81, 0xeb, 0xd5, 0xe3, 0x4d,
6195 0x47, 0x0a, 0x69, 0xc5, 0x20, 0x35, 0x8b, 0x08, 0x55, 0x9f, 0xb8, 0xd0,
6196 0x4f, 0xde, 0xca, 0xe8, 0xc9, 0xaf, 0x2a, 0x57, 0xeb, 0x99, 0xdd, 0xae,
6197 0xb3, 0x80, 0x04, 0x19, 0x87, 0xb2, 0x6f, 0x14, 0xfb, 0xc0, 0x4e, 0x1e,
6198 0x80, 0x70, 0xa2, 0xbc, 0xcb, 0x0f, 0xad, 0x91, 0x65, 0xaf, 0x21, 0x76,
6199 0x1b, 0x93, 0x7d, 0x7e, 0x30, 0x1e, 0xdb, 0x54, 0x83, 0x18, 0xd3, 0xe6,
6200 0x53, 0x66, 0x50, 0x71, 0x63, 0x48, 0xf7, 0xd7, 0x64, 0xd8, 0x0e, 0x27,
6201 0xb0, 0x36, 0xd2, 0xc0, 0x9e, 0xee, 0x3e, 0xf1, 0x73, 0xee, 0x3e, 0xf6,
6202 0xad, 0xb4, 0x36, 0xf8, 0xc8, 0x8f, 0x75, 0x7e, 0xeb, 0xdb, 0x8e, 0x6f,
6203 0x3d, 0x6d, 0x8c, 0x6b, 0x6f, 0xef, 0x53, 0x4d, 0xd1, 0x14, 0xce, 0xb3,
6204 0x40, 0x52, 0x54, 0x38, 0x54, 0x59, 0xd0, 0x83, 0x43, 0x63, 0x3b, 0x49,
6205 0x3a, 0x88, 0x9c, 0x11, 0x27, 0x09, 0x6b, 0x42, 0xed, 0x3e, 0xf3, 0xc3,
6206 0xa2, 0x4b, 0x13, 0xb7, 0xc7, 0xae, 0x71, 0xd9, 0x26, 0xad, 0xdd, 0xe3,
6207 0xc8, 0xe2, 0x4f, 0xb8, 0x67, 0x64, 0x86, 0x55, 0xdd, 0x40, 0x49, 0xeb,
6208 0x46, 0xf0, 0x9d, 0x4f, 0xdd, 0x77, 0x5c, 0xcf, 0xf9, 0x52, 0x23, 0xa4,
6209 0x10, 0xa3, 0x50, 0x23, 0xa8, 0x8c, 0x04, 0xd5, 0x87, 0x15, 0x08, 0xd0,
6210 0x51, 0xa3, 0x55, 0xde, 0xf6, 0x5f, 0x91, 0xed, 0x77, 0xce, 0x52, 0xac,
6211 0x14, 0xac, 0x23, 0x29, 0xf6, 0x1e, 0xd7, 0x18, 0x76, 0xe0, 0xd5, 0xe7,
6212 0xed, 0xee, 0xc8, 0xf5, 0xc2, 0xdd, 0xbe, 0xfb, 0x3c, 0x98, 0x13, 0xeb,
6213 0x96, 0x45, 0xa5, 0xb6, 0x6d, 0xfb, 0x38, 0x15, 0x62, 0x11, 0x67, 0xba,
6214 0x48, 0x1f, 0x5f, 0x5e, 0x70, 0xc6, 0x10, 0x68, 0x82, 0x9a, 0x2a, 0x96,
6215 0xf6, 0xd4, 0x96, 0x8b, 0xb9, 0x4b, 0xdd, 0xbf, 0xe0, 0x0c, 0xf2, 0x92,
6216 0xfc, 0xf7, 0x15, 0x2b, 0x24, 0x9c, 0xba, 0xcc, 0x18, 0x20, 0xff, 0xb4,
6217 0xf7, 0x5c, 0xd5, 0x51, 0x39, 0x95, 0x3d, 0x80, 0x5f, 0x77, 0x86, 0x9b,
6218 0x7f, 0x8f, 0xa2, 0x06, 0x2b, 0xa2, 0xa8, 0x35, 0xcd, 0x33, 0x14, 0x25,
6219 0xe1, 0x11, 0xbf, 0x91, 0x78, 0x22, 0xdc, 0x41, 0x22, 0xb9, 0x7a, 0x6d,
6220 0xe6, 0x58, 0xf7, 0x71, 0xd3, 0xfa, 0xae, 0x04, 0x98, 0x87, 0x80, 0xe0,
6221 0x93, 0xde, 0xba, 0x10, 0x02, 0xd1, 0xe8, 0xe9, 0xce, 0x4e, 0xbb, 0xb9,
6222 0x78, 0x92, 0xdf, 0x19, 0xc8, 0x4b, 0x53, 0x6a, 0xa5, 0x4e, 0x28, 0xd6,
6223 0x0b, 0xd6, 0x85, 0xd4, 0x65, 0xbe, 0x62, 0x9f, 0x00, 0xcf, 0x98, 0x45,
6224 0x0b, 0x82, 0x79, 0x93, 0x5d, 0xf9, 0x1d, 0x52, 0x7c, 0x75, 0xce, 0xea,
6225 0x7b, 0x51, 0xb2, 0x7f, 0x8d, 0x37, 0x31, 0x56, 0x72, 0x5e, 0x71, 0x30,
6226 0x69, 0x24, 0xbc, 0xd5, 0x33, 0x65, 0x79, 0x0a, 0x3e, 0xf3, 0xac, 0x43,
6227 0x22, 0xa2, 0xf1, 0xe5, 0xd9, 0x45, 0xa4, 0x42, 0xd6, 0x56, 0xbb, 0x40,
6228 0x8b, 0xf2, 0x13, 0x0e, 0xe8, 0x36, 0xe8, 0x08, 0x33, 0x3b, 0xe7, 0xa5,
6229 0x60, 0xba, 0x99, 0x26, 0xc2, 0x7f, 0xf5, 0x13, 0x0f, 0x63, 0xd1, 0xb1,
6230 0x7d, 0x1b, 0x17, 0x20, 0x02, 0x30, 0x0a, 0x57, 0x3e, 0x8e, 0xe7, 0xc9,
6231 0x22, 0xb8, 0x0f, 0xec, 0xc9, 0x46, 0x3b, 0x5b, 0x41, 0xd8, 0xc5, 0x0f,
6232 0xc9, 0x72, 0xa4, 0x1e, 0x49, 0xa6, 0x80, 0x55, 0xb7, 0x8e, 0x0b, 0x1b,
6233 0x35, 0x65, 0x51, 0x36, 0xd1, 0x99, 0x27, 0xe9, 0x95, 0x28, 0xf1, 0xa8,
6234 0x01, 0xe8, 0xc1, 0xcf, 0x41, 0x14, 0xa0, 0x21, 0x77, 0x95, 0x21, 0xad,
6235 0x04, 0xd8, 0x5c, 0xed, 0x29, 0x59, 0x46, 0x02, 0x69, 0xcb, 0xad, 0x40,
6236 0x96, 0x59, 0x8b, 0xde, 0xca, 0xda, 0xf1, 0xf3, 0x7c, 0x7e, 0x76, 0x71,
6237 0x19, 0x59, 0xe7, 0xe4, 0xe0, 0xc4, 0x8f, 0x1a, 0x5b, 0x88, 0x19, 0x25,
6238 0x70, 0x83, 0xf3, 0x40, 0xe0, 0xd6, 0xad, 0x54, 0x2d, 0xc2, 0xca, 0x9a,
6239 0xb0, 0x36, 0x98, 0x34, 0xb2, 0x78, 0x30, 0x5c, 0x8b, 0xab, 0xbf, 0x79,
6240 0x25, 0x35, 0x97, 0xf1, 0x33, 0x56, 0xd0, 0xdd, 0x28, 0x25, 0x6f, 0xd3,
6241 0x3c, 0xd9, 0xed, 0x90, 0x0e, 0xbe, 0x40, 0x5f, 0x1c, 0x8f, 0x2f, 0x65,
6242 0xd6, 0xf8, 0x6f, 0xad, 0x9e, 0x8b, 0x8b, 0x52, 0x7f, 0xd8, 0x09, 0x42,
6243 0xd0, 0x3a, 0xaa, 0x02, 0x68, 0xe5, 0xf6, 0x9d, 0xc7, 0x34, 0x98, 0xb3,
6244 0x27, 0x41, 0xc6, 0x04, 0x34, 0xa7, 0xca, 0xca, 0xa5, 0x54, 0x9c, 0xa7,
6245 0x1f, 0xf4, 0xf4, 0x23, 0x3d, 0x3a, 0x73, 0x65, 0x53, 0xe4, 0xc5, 0x6d,
6246 0xd0, 0xc2, 0xd3, 0x40, 0x5b, 0xb0, 0x76, 0xd7, 0x06, 0x4e, 0x2c, 0x7c,
6247 0xca, 0x3f, 0x74, 0xd0, 0xb2, 0xeb, 0x24, 0x33, 0xc1, 0x90, 0xe7, 0x7c,
6248 0x3b, 0xcf, 0x5c, 0xbc, 0xc2, 0xec, 0xa3, 0xa0, 0x2b, 0xfc, 0x63, 0x4b,
6249 0x35, 0x04, 0x8c, 0xa8, 0x21, 0x76, 0x4f, 0x3e, 0x71, 0xb3, 0xc8, 0x97,
6250 0x09, 0x87, 0x02, 0x90, 0xe1, 0x07, 0x87, 0x11, 0xc3, 0x28, 0xd2, 0x6c,
6251 0x95, 0xa8, 0xc7, 0x2c, 0x2e, 0xe6, 0x29, 0x38, 0x18, 0x27, 0x5d, 0xfe,
6252 0x49, 0x97, 0xc0, 0xe1, 0xbf, 0xa3, 0x27, 0xd1, 0xc9, 0xe9, 0xb1, 0x5f,
6253 0x2d, 0x21, 0x73, 0xc0, 0x4e, 0xf6, 0x46, 0x1e, 0x6d, 0xdc, 0xcc, 0x1d,
6254 0x17, 0xa3, 0xe8, 0x9c, 0x29, 0xd3, 0x11, 0x3f, 0x29, 0xff, 0xcd, 0xb7,
6255 0x26, 0x9b, 0x05, 0xce, 0x18, 0x3a, 0x3f, 0x61, 0x9d, 0xa6, 0x19, 0x2d,
6256 0x2e, 0x7e, 0xc2, 0x7f, 0x0d, 0xd8, 0xae, 0x5b, 0x43, 0x7e, 0xee, 0x5f,
6257 0x2e, 0x69, 0x20, 0x74, 0x4f, 0x6b, 0x3e, 0xf2, 0x54, 0x65, 0x8b, 0x2e,
6258 0x71, 0x52, 0x91, 0x2d, 0xaf, 0x44, 0x3f, 0xf3, 0x9e, 0xb6, 0xda, 0x7d,
6259 0xd2, 0xc2, 0x95, 0x3d, 0x63, 0x76, 0xac, 0x3c, 0xe7, 0x9b, 0x92, 0x43,
6260 0xe1, 0x40, 0xe6, 0x09, 0x0c, 0x2d, 0xb4, 0x6f, 0xb8, 0xf2, 0x2a, 0xb5,
6261 0x95, 0xb1, 0xc6, 0x9d, 0x9b, 0xc7, 0xb7, 0x96, 0x49, 0x8f, 0x89, 0x55,
6262 0x5a, 0x95, 0x76, 0x61, 0xc1, 0x06, 0xff, 0xfb, 0x53, 0x91, 0x46, 0x27,
6263 0x3a, 0xee, 0x1c, 0xab, 0xf5, 0x8e, 0x3f, 0xec, 0x08, 0x3a, 0xb0, 0xdc,
6264 0xec, 0x1a, 0x42, 0x69, 0xc9, 0xa0, 0xa9, 0x67, 0xbe, 0xa9, 0x2b, 0x26,
6265 0x56, 0x70, 0x6d, 0x79, 0x1d, 0xe4, 0xb9, 0x04, 0x53, 0xf7, 0x98, 0x5e,
6266 0x14, 0xe4, 0x2c, 0x6b, 0x5d, 0x15, 0xea, 0xe7, 0xc7, 0x53, 0x11, 0x86,
6267 0xcb, 0x3c, 0x97, 0xba, 0xe2, 0x2e, 0x95, 0x62, 0x24, 0x18, 0x33, 0xf1,
6268 0x41, 0x08, 0xc3, 0xa6, 0x4b, 0xb2, 0x90, 0xdb, 0xa6, 0x5e, 0xd0, 0xb9,
6269 0x90, 0xe8, 0xb0, 0xc5, 0x0d, 0xbd, 0x68, 0x15, 0xdf, 0x7c, 0xfa, 0x99,
6270 0xde, 0x66, 0xa5, 0x34, 0x9f, 0xb1, 0xcc, 0x78, 0xe8, 0x70, 0x6e, 0x97,
6271 0xa5, 0x20, 0x29, 0x6e, 0x86, 0x90, 0x80, 0x03, 0x9e, 0xb7, 0x29, 0x9b,
6272 0xd8, 0xf9, 0x8f, 0x03, 0x59, 0x0d, 0x45, 0x5f, 0x98, 0xd4, 0xb3, 0xff,
6273 0xf0, 0x84, 0xeb, 0x73, 0xf2, 0xab, 0xf5, 0x51, 0xe2, 0x22, 0xf9, 0x1b,
6274 0x0a, 0x41, 0x8c, 0xe4, 0xd0, 0x91, 0xe4, 0x0c, 0x19, 0x25, 0x07, 0xc9,
6275 0xbd, 0xca, 0x7b, 0xfa, 0x5c, 0x5d, 0x15, 0x7a, 0x15, 0xb6, 0xe2, 0x04,
6276 0x4d, 0x4f, 0xf3, 0xb3, 0x5d, 0x8f, 0x9b, 0x4e, 0x92, 0xa2, 0x5f, 0x8a,
6277 0x76, 0x08, 0x72, 0x27, 0x48, 0xc1, 0x8d, 0xc7, 0x5f, 0x47, 0xaf, 0x8f,
6278 0x9e, 0x71, 0x2e, 0xe7, 0x75, 0x52, 0x70, 0xe1, 0x0f, 0x7f, 0x17, 0x3b,
6279 0xfb, 0x26, 0x68, 0x6c, 0x2f, 0x88, 0x42, 0xcb, 0x51, 0x9b, 0xea, 0xee,
6280 0x65, 0x2b, 0x9b, 0xd6, 0x8f, 0xa9, 0x47, 0xae, 0x07, 0x5a, 0x75, 0x5b,
6281 0xdc, 0x20, 0x08, 0xf7, 0x29, 0x2b, 0x8f, 0x98, 0x2e, 0x4d, 0x10, 0x76,
6282 0x5d, 0x89, 0x3d, 0x7b, 0xe2, 0x95, 0x18, 0xd7, 0xc8, 0xcc, 0xe9, 0x5e,
6283 0x7d, 0xcd, 0x16, 0x75, 0xc7, 0x8e, 0x7a, 0x26, 0x8a, 0xf3, 0x50, 0xf6,
6284 0x3d, 0x9b, 0xb3, 0xed, 0xd7, 0xc0, 0x80, 0x82, 0x68, 0x47, 0xf0, 0xde,
6285 0xb3, 0xf0, 0x3a, 0x49, 0x06, 0x39, 0xce, 0x45, 0x9a, 0x3f, 0x14, 0xbd,
6286 0x61, 0x5b, 0x25, 0x78, 0xf6, 0x13, 0xf7, 0x2c, 0x3b, 0x0f, 0xd2, 0x2c,
6287 0x60, 0x5d, 0x5d, 0xf3, 0x86, 0x1a, 0xc1, 0x62, 0x1a, 0xf8, 0xc0, 0xbe,
6288 0x58, 0x3e, 0xc1, 0xdc, 0x07, 0xaf, 0x3c, 0xaf, 0xdf, 0x96, 0xc1, 0x2c,
6289 0xef, 0x0b, 0xa6, 0xf1, 0xa0, 0xd2, 0xe5, 0x4d, 0xb8, 0x39, 0x3f, 0x91,
6290 0x93, 0xfa, 0x9c, 0x53, 0x61, 0x6a, 0xeb, 0x69, 0x4a, 0xb0, 0x16, 0x3b,
6291 0xb4, 0xbd, 0x2e, 0xb2, 0x7f, 0x78, 0x60, 0x6f, 0xb4, 0x10, 0xe4, 0x2c,
6292 0xed, 0xc1, 0x47, 0x76, 0x75, 0xcf, 0xd0, 0x90, 0xf3, 0xeb, 0x2c, 0xfd,
6293 0x39, 0x09, 0xd2, 0x80, 0x8d, 0x37, 0x37, 0x78, 0x7c, 0x4f, 0x15, 0xc6,
6294 0x5d, 0x3c, 0x4f, 0x55, 0x29, 0xb2, 0x1f, 0xdd, 0x3f, 0xf0, 0x44, 0xa5,
6295 0x56, 0x6a, 0xff, 0xe2, 0x16, 0x00, 0x0a, 0x6e, 0x8e, 0xe0, 0x24, 0xb5,
6296 0xbc, 0xca, 0x4f, 0x9e, 0xaa, 0xed, 0x65, 0x46, 0x32, 0x9f, 0x4b, 0x3c,
6297 0x11, 0x28, 0xa2, 0xda, 0x52, 0xd3, 0x9f, 0xe8, 0xd1, 0xa7, 0x4b, 0xa9,
6298 0x00, 0x9e, 0xd8, 0x34, 0x74, 0x89, 0xa4, 0xaa, 0xfb, 0x34, 0xd3, 0xf4,
6299 0xbf, 0xd6, 0xeb, 0x9f, 0xac, 0x71, 0x41, 0x49, 0x0d, 0xda, 0xe8, 0x18,
6300 0xb2, 0x14, 0x3c, 0xff, 0xa9, 0xdb, 0x09, 0x8e, 0x00, 0x6f, 0xe0, 0x22,
6301 0x81, 0x00, 0x66, 0x19, 0x53, 0xa9, 0x6d, 0x24, 0x5c, 0xfb, 0x97, 0xbe,
6302 0xae, 0x53, 0x07, 0xb5, 0xe3, 0x95, 0xfb, 0xfc, 0x3c, 0xbf, 0x8e, 0xd2,
6303 0x60, 0x1b, 0x7f, 0x22, 0x22, 0xf5, 0x0a, 0x60, 0x28, 0xdb, 0x07, 0xac,
6304 0x4d, 0x42, 0xbe, 0x71, 0xff, 0xf4, 0x73, 0x95, 0x0d, 0x3b, 0x2f, 0xcd,
6305 0x4c, 0x5d, 0xfb, 0xc6, 0xa7, 0x3b, 0xa1, 0xd1, 0x3a, 0x63, 0x4f, 0xbd,
6306 0x70, 0xe9, 0xac, 0x7d, 0x41, 0x24, 0xe3, 0x84, 0x8e, 0x91, 0x6b, 0x12,
6307 0x6a, 0x3c, 0xe3, 0x49, 0xa4, 0xfc, 0x63, 0x7b, 0x35, 0xa5, 0x7b, 0x19,
6308 0x9a, 0x50, 0xd1, 0xc9, 0x51, 0xf0, 0xe0, 0x13, 0x3f, 0xc0, 0x78, 0xce,
6309 0xd6, 0xc0, 0x83, 0x38, 0x22, 0x4a, 0xa5, 0x7c, 0x0f, 0x1e, 0x15, 0xc9,
6310 0x78, 0xc3, 0x9e, 0x46, 0xd2, 0x32, 0x98, 0xff, 0xd6, 0x33, 0x22, 0x0e,
6311 0x87, 0x37, 0x74, 0xaa, 0x4d, 0x2b, 0xd0, 0x01, 0x64, 0x16, 0x2f, 0x68,
6312 0xae, 0xfd, 0xa7, 0x9f, 0x3c, 0xf2, 0xac, 0x1e, 0x9a, 0xa5, 0x2f, 0xd3,
6313 0xeb, 0xdf, 0xfb, 0xb4, 0xbd, 0xcd, 0xed, 0x5a, 0x60, 0x99, 0x6a, 0xba,
6314 0xd3, 0xa2, 0x4d, 0xce, 0xbc, 0xfb, 0x37, 0xf3, 0xfc, 0x14, 0x9c, 0x6e,
6315 0x53, 0xfe, 0x5b, 0xd8, 0xdf, 0xcf, 0x9c, 0x3c, 0x39, 0xb7, 0x8f, 0x2b,
6316 0x3b, 0x14, 0x16, 0x23, 0xf0, 0x95, 0x9a, 0x30, 0x3b, 0x41, 0x0b, 0xb2,
6317 0xe6, 0x64, 0x47, 0xac, 0x32, 0xaf, 0x39, 0xe4, 0x22, 0xa8, 0xec, 0x44,
6318 0x86, 0xdd, 0xd5, 0xde, 0x7d, 0x4d, 0x8b, 0x5a, 0xd6, 0xeb, 0xc2, 0x7e,
6319 0xb6, 0xd3, 0xd8, 0x06, 0xe5, 0xcd, 0x4a, 0x6e, 0xde, 0x6e, 0x44, 0x61,
6320 0xfd, 0x5d, 0xf7, 0xda, 0x9e, 0xd7, 0x5e, 0x7a, 0xec, 0x4b, 0x12, 0xee,
6321 0x21, 0x17, 0x5c, 0x90, 0xeb, 0x79, 0x04, 0x51, 0x04, 0x5a, 0xbc, 0x90,
6322 0x6a, 0x67, 0xc6, 0x79, 0xf5, 0x48, 0x41, 0xdc, 0xe7, 0xa8, 0x5a, 0xec,
6323 0x3e, 0xa3, 0xa6, 0x0d, 0x03, 0x9e, 0x69, 0x95, 0x6e, 0x92, 0xe9, 0xad,
6324 0x6d, 0x19, 0xd7, 0x46, 0xc7, 0x5b, 0x4f, 0xdd, 0xd4, 0xb2, 0xf4, 0x9d,
6325 0x5f, 0x1c, 0x37, 0x2f, 0x02, 0xfe, 0x51, 0x91, 0x9a, 0x8b, 0xcb, 0xf1,
6326 0xf9, 0x3e, 0xf7, 0x57, 0x62, 0x30, 0xb4, 0x21, 0x0e, 0xc7, 0xc9, 0xdf,
6327 0x35, 0x0d, 0xae, 0xf4, 0x4f, 0x7f, 0xb2, 0xe6, 0xe9, 0xb1, 0x82, 0x7c,
6328 0x4e, 0x66, 0xac, 0x7d, 0x69, 0x1d, 0xc2, 0x97, 0x3e, 0xd5, 0x64, 0x7e,
6329 0xf3, 0xee, 0x8a, 0xf3, 0x88, 0x7b, 0xe6, 0x60, 0xfd, 0xfe, 0xe1, 0xcf,
6330 0xbc, 0xcf, 0xe6, 0x66, 0x95, 0xdd, 0x3a, 0x7b, 0x51, 0x21, 0x53, 0xb6,
6331 0xc0, 0xee, 0x85, 0xef, 0xbf, 0x17, 0xfd, 0xea, 0x40, 0x31, 0xea, 0xd6,
6332 0x77, 0xe5, 0x72, 0x48, 0x1f, 0x49, 0x91, 0x9a, 0xcc, 0x6a, 0x03, 0x17,
6333 0xc9, 0x3c, 0x61, 0xee, 0x41, 0xb9, 0x23, 0x40, 0xa8, 0xba, 0x92, 0x4c,
6334 0x18, 0xc0, 0x29, 0x65, 0xfd, 0x12, 0x25, 0xa9, 0xcc, 0x18, 0x30, 0xa8,
6335 0xbe, 0x22, 0x9a, 0xed, 0x83, 0xb7, 0x97, 0x5f, 0x9f, 0x5d, 0x8c, 0xa3,
6336 0x6d, 0x26, 0x04, 0xba, 0xbc, 0x38, 0xf9, 0xf2, 0x2d, 0x5d, 0xbd, 0x5d,
6337 0x48, 0xe4, 0x28, 0xa6, 0x2b, 0xf9, 0x9c, 0xe1, 0x95, 0x49, 0x46, 0x93,
6338 0x78, 0x6d, 0x35, 0x19, 0x80, 0xfd, 0xe0, 0x73, 0x2a, 0x2f, 0x84, 0xc7,
6339 0x19, 0xcc, 0x5b, 0x37, 0xb9, 0xce, 0x84, 0xe0, 0xa4, 0x32, 0x41, 0xc2,
6340 0xe7, 0xfe, 0x5e, 0x99, 0x36, 0xf8, 0x8c, 0x2c, 0xb2, 0x19, 0x5d, 0x7e,
6341 0x7d, 0xf0, 0xe6, 0x9b, 0xb1, 0xb1, 0x64, 0x7e, 0xf7, 0xdd, 0x77, 0x1b,
6342 0xf5, 0x6c, 0x21, 0x98, 0x77, 0x37, 0xf1, 0xfb, 0xf7, 0xa3, 0x32, 0xd9,
6343 0xd8, 0x78, 0xe5, 0xe3, 0x64, 0xbe, 0xa0, 0x46, 0xb9, 0xa2, 0x53, 0x9d,
6344 0x7e, 0xbd, 0xbd, 0x5c, 0x4d, 0xb8, 0x80, 0xc7, 0xf6, 0xaa, 0x4a, 0xe7,
6345 0x74, 0x18, 0x24, 0x25, 0xde, 0xde, 0xde, 0xd8, 0x18, 0x1f, 0x1f, 0x47,
6346 0x07, 0xa7, 0xe3, 0xb3, 0xe0, 0xdd, 0xcd, 0xdd, 0x2d, 0xb2, 0x7a, 0xae,
6347 0x93, 0x8a, 0xfe, 0xb2, 0xb1, 0x71, 0x7a, 0x70, 0xc9, 0xd7, 0xcd, 0x6f,
6348 0x8f, 0x2f, 0xc6, 0x27, 0x67, 0x6f, 0x78, 0x75, 0x18, 0x9e, 0x16, 0xcf,
6349 0xef, 0x19, 0x9d, 0x78, 0x95, 0x82, 0x90, 0xe4, 0xde, 0xaa, 0x63, 0x30,
6350 0x8b, 0x1f, 0x99, 0x65, 0x62, 0x45, 0x0b, 0x84, 0xc1, 0xaa, 0xf2, 0x09,
6351 0x08, 0xb3, 0xe2, 0x4b, 0x9f, 0x2a, 0x24, 0x9e, 0x01, 0xe7, 0x73, 0x92,
6352 0x92, 0x15, 0xc9, 0x44, 0x60, 0xae, 0x03, 0xa1, 0xda, 0x42, 0x8c, 0x21,
6353 0x40, 0xc9, 0x75, 0x0e, 0x7c, 0x7c, 0xf2, 0xfa, 0x9c, 0x6e, 0x5f, 0x6f,
6354 0xc7, 0x07, 0x5f, 0x1d, 0xf3, 0xa3, 0x5f, 0x25, 0x95, 0x5f, 0x0e, 0xa9,
6355 0xe2, 0xc1, 0x1f, 0x79, 0x93, 0x54, 0xe5, 0x34, 0x5e, 0x72, 0x06, 0x25,
6356 0x7d, 0x66, 0x28, 0x67, 0x40, 0xd0, 0xb6, 0xd8, 0xe1, 0xbe, 0xd4, 0x49,
6357 0xa6, 0xcf, 0xa3, 0x0e, 0x49, 0xd8, 0xee, 0xc5, 0xf1, 0xc1, 0xd1, 0xeb,
6358 0x63, 0xc3, 0x3f, 0xcb, 0x99, 0x49, 0x8d, 0xde, 0xe4, 0x5c, 0x7a, 0xce,
6359 0x79, 0xa1, 0xf9, 0x5c, 0xe6, 0xc9, 0xa7, 0xdf, 0xa0, 0x62, 0x76, 0xe7,
6360 0xe7, 0xfc, 0x42, 0xe1, 0xd9, 0xd1, 0x55, 0xba, 0x2d, 0xad, 0xdb, 0xf7,
6361 0x62, 0x37, 0x25, 0x06, 0x24, 0x56, 0x5b, 0x55, 0x1c, 0x0a, 0x70, 0x44,
6362 0x7c, 0xb6, 0xb3, 0xb3, 0xf3, 0xc8, 0x38, 0x60, 0xca, 0xeb, 0x89, 0x47,
6363 0x43, 0xd9, 0xe7, 0xc7, 0xb7, 0x7d, 0xfb, 0x26, 0x99, 0xa1, 0x07, 0x9d,
6364 0xff, 0x99, 0x89, 0x0b, 0x24, 0xad, 0x92, 0xee, 0x4e, 0x4f, 0xf3, 0xdc,
6365 0xad, 0x41, 0x6d, 0x7a, 0x66, 0x4c, 0xe8, 0x98, 0x56, 0x01, 0x92, 0xd4,
6366 0xba, 0x4e, 0xf7, 0x0f, 0xe0, 0xa4, 0x8a, 0x87, 0x66, 0x93, 0xfc, 0x1b,
6367 0x6a, 0x93, 0xff, 0x33, 0xca, 0x8b, 0xeb, 0xed, 0xc5, 0x3e, 0x0c, 0x0a,
6368 0x7a, 0xe8, 0x55, 0x82, 0x12, 0x7e, 0xf7, 0xb9, 0x83, 0x0b, 0x97, 0x3c,
6369 0xb5, 0x9c, 0x9b, 0xf0, 0x11, 0xfd, 0xfa, 0x05, 0xf3, 0x80, 0xe5, 0xcc,
6370 0xaf, 0x6c, 0xe4, 0xe3, 0x68, 0xed, 0x8a, 0x95, 0xbc, 0x64, 0xec, 0xf0,
6371 0x1b, 0x91, 0x0a, 0xa1, 0xaf, 0x30, 0xea, 0x09, 0x42, 0x42, 0x7f, 0x2d,
6372 0x48, 0x68, 0x46, 0xd5, 0x7b, 0x68, 0x3d, 0xad, 0x1b, 0x01, 0x51, 0x64,
6373 0x1d, 0x46, 0x2a, 0xab, 0xc8, 0xe9, 0x3e, 0x12, 0x4b, 0x9e, 0xf9, 0x18,
6374 0x09, 0x9d, 0x1e, 0x3c, 0x2e, 0xf8, 0x1b, 0x6e, 0xb8, 0xf9, 0x4d, 0x57,
6375 0x73, 0xdd, 0xe4, 0xe5, 0x23, 0x3e, 0x1e, 0x0c, 0x4a, 0x66, 0x3f, 0xd3,
6376 0x43, 0x32, 0x90, 0x9e, 0x31, 0xf5, 0xa2, 0xf5, 0xad, 0x95, 0xaf, 0xef,
6377 0x51, 0xca, 0xe7, 0xca, 0x1b, 0xda, 0xc1, 0xa3, 0x44, 0xca, 0x4a, 0xe2,
6378 0x5b, 0xb4, 0x26, 0xdb, 0xc8, 0xd4, 0xf9, 0xe8, 0x2f, 0x1d, 0x9e, 0xbb,
6379 0x92, 0xa5, 0x34, 0x03, 0x77, 0x3c, 0x05, 0xb7, 0x09, 0x46, 0x1f, 0xda,
6380 0xf5, 0x8f, 0x74, 0x66, 0x9f, 0x66, 0x81, 0xdf, 0xf8, 0xaf, 0xed, 0x51,
6381 0x59, 0xde, 0x6c, 0xa7, 0xb3, 0x77, 0xb3, 0x32, 0x66, 0x48, 0xd2, 0x6a,
6382 0xd2, 0xfa, 0xf1, 0x88, 0x7e, 0x18, 0xfd, 0xb5, 0xa6, 0xf7, 0xcb, 0x69,
6383 0xf7, 0x48, 0xfe, 0x6b, 0x9b, 0xe1, 0x91, 0x60, 0x3a, 0x0f, 0x26, 0xae,
6384 0x43, 0x7b, 0xd0, 0xa8, 0x04, 0x89, 0x4b, 0xdb, 0xb1, 0x5b, 0x32, 0x86,
6385 0xd7, 0x51, 0x4f, 0xc5, 0xed, 0xc7, 0xbd, 0x9d, 0x9d, 0xdd, 0xfd, 0xdd,
6386 0xcf, 0x9e, 0xef, 0xec, 0xef, 0xee, 0xee, 0xee, 0xed, 0xef, 0xee, 0xef,
6387 0xef, 0xed, 0xfc, 0xb4, 0xdd, 0xdb, 0xd8, 0x38, 0x3a, 0xfb, 0xee, 0xcd,
6388 0xe9, 0xd9, 0xc1, 0x51, 0x74, 0x79, 0x16, 0x1d, 0xc0, 0x6b, 0xd4, 0xb1,
6389 0xd3, 0x01, 0xff, 0xe3, 0xb4, 0x2c, 0x21, 0x4b, 0xf6, 0x05, 0xe0, 0x5a,
6390 0x9f, 0xcc, 0x71, 0x01, 0xe0, 0x97, 0x46, 0x37, 0xd5, 0xe2, 0xc3, 0xea,
6391 0xeb, 0x63, 0x3e, 0x32, 0x90, 0xa8, 0xad, 0xbf, 0xe3, 0x61, 0x69, 0x4d,
6392 0x48, 0xb5, 0xae, 0xaf, 0x46, 0x3e, 0x34, 0xde, 0xe9, 0x90, 0xfc, 0x9b,
6393 0x02, 0xf2, 0xf1, 0x69, 0x0e, 0x52, 0xfa, 0xae, 0x81, 0x4e, 0x72, 0xa5,
6394 0xa8, 0x34, 0xa0, 0x8e, 0x03, 0x9d, 0xad, 0x97, 0xad, 0xd6, 0x00, 0xcf,
6395 0xd6, 0x0e, 0x89, 0x0e, 0x9e, 0xe4, 0x3d, 0x46, 0x5d, 0x57, 0x13, 0x82,
6396 0xf5, 0xf4, 0xa3, 0x03, 0x53, 0xa7, 0xdd, 0x5a, 0xd3, 0xc2, 0xba, 0x0c,
6397 0x20, 0x50, 0xc7, 0xe7, 0xf8, 0x3b, 0xa6, 0x3d, 0xfc, 0x27, 0xf8, 0x37,
6398 0xe1, 0xa1, 0xb3, 0xed, 0x1c, 0x81, 0xd2, 0x81, 0xb7, 0xe3, 0x93, 0x37,
6399 0x5f, 0x21, 0xd4, 0xf7, 0xdd, 0xd9, 0xc5, 0xd1, 0x98, 0x9a, 0xe5, 0xd3,
6400 0x78, 0x03, 0xbe, 0x20, 0xde, 0xb4, 0xda, 0x2b, 0xd9, 0x02, 0xfc, 0xe9,
6401 0x3f, 0xe3, 0x76, 0xc5, 0x2c, 0x03, 0x9a, 0xe5, 0x89, 0x6e, 0x06, 0x96,
6402 0x31, 0xa7, 0x6e, 0x76, 0x2b, 0x38, 0xec, 0x06, 0x79, 0xfd, 0x8b, 0x45,
6403 0xcc, 0x7c, 0xd2, 0xc9, 0x48, 0x70, 0xa7, 0xc0, 0x64, 0x6d, 0x33, 0x96,
6404 0x7f, 0x9b, 0x2d, 0xf4, 0xed, 0x2a, 0x87, 0xaa, 0x40, 0x2b, 0x79, 0xe1,
6405 0x80, 0x40, 0xb5, 0x19, 0xe1, 0x3d, 0x76, 0x35, 0x8f, 0xaf, 0xf1, 0xc1,
6406 0xf6, 0xf6, 0x0b, 0x3e, 0xa6, 0x9f, 0xff, 0xd8, 0x4f, 0xa2, 0xc2, 0x2e,
6407 0xb7, 0x77, 0x02, 0x01, 0x00, 0xaf, 0x13, 0xf2, 0x51, 0x35, 0x44, 0x21,
6408 0x16, 0x12, 0x2a, 0x18, 0x32, 0xfc, 0x83, 0x4b, 0xde, 0x34, 0x19, 0xc3,
6409 0x79, 0x11, 0x57, 0x92, 0xc8, 0x4d, 0xc6, 0xfa, 0x30, 0xc8, 0xf5, 0x97,
6410 0x5b, 0x0c, 0x8a, 0xc2, 0x7a, 0x67, 0x41, 0xe9, 0xf1, 0x6b, 0xe0, 0x85,
6411 0xc6, 0xdd, 0x58, 0xa6, 0x9c, 0x3b, 0x83, 0xf4, 0xea, 0xd2, 0x80, 0x51,
6412 0x6a, 0xb2, 0xf5, 0x98, 0xae, 0x9d, 0x61, 0x0d, 0x3d, 0x4b, 0xaf, 0xf7,
6413 0x04, 0xb3, 0x3e, 0x16, 0x59, 0x56, 0xd4, 0x95, 0x98, 0x4e, 0x0f, 0xad,
6414 0x54, 0xa3, 0xf4, 0x32, 0x64, 0x77, 0x4b, 0x7e, 0x63, 0xcf, 0xc0, 0x11,
6415 0xd2, 0x0a, 0xb5, 0x3d, 0xcb, 0xc1, 0xff, 0xea, 0x3f, 0xaf, 0xc9, 0xdd,
6416 0x1b, 0x1a, 0x7b, 0xf6, 0x2a, 0xdd, 0xfb, 0xb8, 0x58, 0x1d, 0x93, 0xc5,
6417 0x49, 0xba, 0x52, 0x24, 0x47, 0x33, 0xf1, 0x82, 0x22, 0x21, 0xb5, 0x69,
6418 0xab, 0x15, 0x8f, 0x6e, 0x6a, 0xd5, 0x7a, 0x0a, 0xee, 0x06, 0x92, 0x77,
6419 0x1c, 0xb4, 0x37, 0x98, 0x1e, 0xad, 0x8d, 0xeb, 0x5e, 0xe5, 0xb5, 0x48,
6420 0xab, 0x32, 0x99, 0x5f, 0xb1, 0xcf, 0xc5, 0x97, 0x72, 0x9d, 0x3c, 0x04,
6421 0x0d, 0x6c, 0x58, 0xb6, 0x05, 0x07, 0xd0, 0x32, 0x97, 0x79, 0x9c, 0xab,
6422 0xce, 0xb8, 0x86, 0xe2, 0xd4, 0x4a, 0x00, 0x75, 0x45, 0x21, 0x31, 0xb2,
6423 0x91, 0x11, 0x65, 0x6f, 0x44, 0x8e, 0xe3, 0xbb, 0x31, 0x04, 0xc7, 0x7b,
6424 0x0c, 0xde, 0x59, 0x48, 0x47, 0xf0, 0xe0, 0x6a, 0x42, 0xb3, 0xed, 0x9e,
6425 0xe3, 0xb9, 0x03, 0x4a, 0x8c, 0x9b, 0x3b, 0x0c, 0x8b, 0xf6, 0x09, 0x40,
6426 0xd2, 0x00, 0xcf, 0xbe, 0x53, 0xd4, 0x41, 0x84, 0x27, 0x68, 0xa3, 0x21,
6427 0x3b, 0x68, 0x55, 0xba, 0x19, 0x45, 0x35, 0x80, 0xd8, 0x65, 0xba, 0x76,
6428 0x6d, 0x43, 0xd5, 0x48, 0xeb, 0xf7, 0xe1, 0x87, 0xb7, 0x60, 0xbb, 0x4b,
6429 0x66, 0xf4, 0xcf, 0x1f, 0x64, 0x97, 0xa4, 0xd9, 0xe3, 0x9b, 0x51, 0x3b,
6430 0xf1, 0x51, 0x1f, 0xc6, 0x58, 0x35, 0xff, 0x1b, 0x7e, 0x69, 0x8f, 0xdc,
6431 0x92, 0x58, 0x38, 0x10, 0xf3, 0x1d, 0xf9, 0x10, 0x35, 0xa0, 0x29, 0x36,
6432 0x82, 0xe4, 0x55, 0xed, 0x47, 0x5f, 0xc6, 0x65, 0x3a, 0x1d, 0x44, 0x47,
6433 0x29, 0xd9, 0xea, 0xd5, 0xc0, 0xa3, 0xd6, 0x1d, 0xd6, 0x7f, 0x14, 0x7d,
6434 0x67, 0xb5, 0xbc, 0xe9, 0xcc, 0x05, 0x4b, 0x27, 0xdc, 0xa8, 0x8e, 0x10,
6435 0x60, 0x43, 0xbc, 0xe7, 0xea, 0xff, 0x0e, 0xab, 0x94, 0xa1, 0x6d, 0x4f,
6436 0xab, 0x8c, 0xc5, 0x8c, 0xcb, 0xdb, 0x7a, 0xc1, 0x06, 0xb1, 0xaa, 0x4a,
6437 0xf6, 0x93, 0xb2, 0x09, 0x84, 0xf9, 0xcd, 0xb4, 0x66, 0x8e, 0xca, 0x1c,
6438 0xfe, 0xed, 0xa4, 0xdc, 0x4a, 0xa3, 0xc0, 0x6f, 0x55, 0x2a, 0x9e, 0xcb,
6439 0x82, 0xee, 0x38, 0x8d, 0x6c, 0xbb, 0x6e, 0x20, 0x51, 0x9c, 0xe6, 0x89,
6440 0x67, 0x44, 0xf5, 0xc9, 0xd9, 0xe5, 0xf1, 0xef, 0x14, 0xae, 0xe9, 0x24,
6441 0x87, 0x37, 0x39, 0xe3, 0x0e, 0x34, 0x1e, 0xd8, 0x5a, 0x53, 0x47, 0xb9,
6442 0xa2, 0x2e, 0x50, 0xee, 0x8a, 0x68, 0x13, 0x2e, 0xce, 0x18, 0xf0, 0x27,
6443 0x43, 0x66, 0xef, 0xd2, 0x58, 0x8a, 0x44, 0x33, 0x6c, 0x89, 0xc7, 0xfe,
6444 0x8e, 0x45, 0xff, 0x9d, 0x2f, 0x55, 0xb0, 0xd2, 0x17, 0xc1, 0x74, 0xcc,
6445 0xed, 0xa8, 0xff, 0x03, 0x7e, 0xa3, 0x69, 0x5a, 0xd0, 0x11, 0xcc, 0x7a,
6446 0x6a, 0x2a, 0x2e, 0x4f, 0x80, 0x9b, 0xd1, 0xf7, 0x73, 0xc3, 0x58, 0x61,
6447 0xba, 0xa6, 0xa0, 0x1d, 0x90, 0x0a, 0x03, 0xea, 0x46, 0xb5, 0x7d, 0x17,
6448 0xaa, 0x52, 0xb0, 0x9c, 0x80, 0xbe, 0x00, 0xc5, 0x7e, 0x94, 0x6b, 0x5b,
6449 0xf0, 0xac, 0xd4, 0x6a, 0x1d, 0x81, 0x3c, 0xc9, 0xa9, 0x15, 0x4c, 0x0b,
6450 0x0f, 0x5f, 0xf8, 0x30, 0x42, 0x04, 0x30, 0xb5, 0x86, 0x0f, 0x59, 0x51,
6451 0x99, 0x86, 0xa8, 0x8d, 0x36, 0xf8, 0x8c, 0x70, 0xae, 0x20, 0x14, 0x54,
6452 0x72, 0x2c, 0xd6, 0x01, 0xfc, 0xee, 0x95, 0xe3, 0x97, 0xd1, 0x66, 0xb9,
6453 0xb0, 0xc6, 0x34, 0x51, 0xe2, 0x30, 0xbe, 0xce, 0x67, 0x24, 0x55, 0x5e,
6454 0x57, 0xcb, 0x12, 0xe7, 0xa5, 0x16, 0x55, 0x4a, 0x85, 0x61, 0x45, 0x98,
6455 0xf8, 0x27, 0x89, 0xd0, 0x63, 0x71, 0xb5, 0x4f, 0x57, 0x1a, 0x1e, 0x7b,
6456 0x43, 0x84, 0x67, 0x81, 0x35, 0xd8, 0xf0, 0x02, 0xc8, 0xcb, 0xb0, 0x6e,
6457 0x9c, 0x9a, 0x04, 0xea, 0x5c, 0x81, 0xbe, 0x86, 0x67, 0xa6, 0x9c, 0xee,
6458 0xb8, 0x9b, 0x6b, 0xaf, 0x79, 0x75, 0x60, 0x8b, 0x65, 0xce, 0x32, 0x30,
6459 0xdb, 0x38, 0x0b, 0x49, 0x74, 0x78, 0xb7, 0xcf, 0xa2, 0xc5, 0x83, 0xa2,
6460 0xee, 0xf5, 0x34, 0xe3, 0xf4, 0x64, 0x5c, 0xfa, 0x3e, 0xfb, 0xac, 0x65,
6461 0xbd, 0xbc, 0x77, 0x4f, 0xef, 0xd3, 0xaf, 0x83, 0xcb, 0xe5, 0x9c, 0x63,
6462 0xe8, 0x56, 0xae, 0xd3, 0xdf, 0x30, 0x5b, 0x96, 0x7b, 0xc8, 0xb8, 0x21,
6463 0x1f, 0x74, 0x1e, 0xe7, 0x0e, 0xe9, 0x76, 0x99, 0x01, 0x1b, 0x72, 0x75,
6464 0x91, 0x7e, 0xc6, 0xa5, 0x40, 0x31, 0xd6, 0xd8, 0xf2, 0xa6, 0xbf, 0x9a,
6465 0x9d, 0x0d, 0xcc, 0x3c, 0x32, 0x35, 0x47, 0x6c, 0x19, 0xb2, 0xd5, 0x3a,
6466 0xce, 0xb5, 0x61, 0x9e, 0x63, 0xed, 0x8c, 0x13, 0x8e, 0x86, 0x18, 0xb9,
6467 0x02, 0x26, 0xee, 0xdc, 0x1d, 0xbe, 0x5d, 0xdf, 0x9d, 0xb7, 0xff, 0x4c,
6468 0x77, 0x0e, 0xa2, 0x47, 0xc1, 0xe7, 0x5a, 0x8d, 0x86, 0x55, 0x71, 0xa9,
6469 0xfa, 0x6e, 0x96, 0x43, 0xa8, 0x6d, 0x17, 0xcb, 0x1c, 0x4d, 0x39, 0x6c,
6470 0x34, 0xa9, 0x73, 0xd3, 0xb7, 0x2f, 0x7d, 0x59, 0x2e, 0x4f, 0xc3, 0x0a,
6471 0xe7, 0xf6, 0x07, 0xd6, 0x95, 0x8f, 0xed, 0xae, 0xf1, 0x5e, 0x59, 0x76,
6472 0x89, 0xff, 0x9e, 0xd6, 0x23, 0xc4, 0x6f, 0x76, 0x47, 0x3b, 0x21, 0x5d,
6473 0x87, 0x4b, 0xf3, 0x28, 0x40, 0xd0, 0x55, 0x81, 0xb8, 0xc3, 0x17, 0x14,
6474 0xe5, 0x91, 0x20, 0x27, 0xbc, 0xf1, 0x9a, 0xfe, 0x6c, 0x57, 0xd8, 0x5d,
6475 0x69, 0x23, 0x29, 0x95, 0x36, 0x73, 0x3f, 0x24, 0x8b, 0x25, 0xe0, 0xf0,
6476 0xf5, 0x92, 0xba, 0xa2, 0x3c, 0xb0, 0x8d, 0x9e, 0xfa, 0x1d, 0xf5, 0xcc,
6477 0x2d, 0xb7, 0xf6, 0x51, 0xd0, 0xd2, 0x5a, 0x9d, 0x4a, 0x00, 0xcb, 0xb0,
6478 0x96, 0x92, 0x44, 0x5a, 0xaa, 0xd6, 0xa6, 0xed, 0x1c, 0xd6, 0xd3, 0xc3,
6479 0x58, 0x9e, 0x71, 0x0a, 0x46, 0x57, 0xab, 0x02, 0x80, 0x23, 0x65, 0x51,
6480 0x52, 0x26, 0x05, 0x6e, 0x95, 0x91, 0x87, 0x1d, 0x8a, 0x06, 0xe9, 0x91,
6481 0xb4, 0x5b, 0x56, 0xa8, 0x0b, 0xa6, 0xbe, 0x47, 0x16, 0x2d, 0xab, 0x10,
6482 0xe0, 0xa3, 0x0a, 0xce, 0xa3, 0x45, 0xed, 0xce, 0x53, 0xea, 0x50, 0x1f,
6483 0x84, 0x02, 0x3c, 0xf5, 0x0c, 0xbd, 0x57, 0x55, 0x68, 0x22, 0xec, 0x88,
6484 0x7d, 0x91, 0x95, 0x33, 0x07, 0x08, 0xb4, 0x93, 0x8d, 0xae, 0xa9, 0x73,
6485 0xe5, 0x48, 0x18, 0x44, 0xc3, 0xff, 0xa1, 0x33, 0xc3, 0xf6, 0x24, 0xa3,
6486 0x62, 0xc0, 0x96, 0xb9, 0x0c, 0xc8, 0xba, 0x34, 0x79, 0x09, 0xfa, 0x9e,
6487 0x8f, 0x5d, 0x1b, 0x47, 0x50, 0xef, 0x5c, 0x72, 0x1f, 0xa0, 0xfe, 0x5e,
6488 0x05, 0xec, 0x42, 0x48, 0x30, 0xd4, 0xdb, 0xf2, 0xc0, 0x34, 0x85, 0x34,
6489 0xb7, 0xe1, 0xc8, 0x43, 0x05, 0x07, 0xd5, 0xea, 0xb0, 0xbb, 0xee, 0x7f,
6490 0xc9, 0x65, 0x1d, 0x0e, 0xf3, 0x38, 0x9c, 0x56, 0xbb, 0x7c, 0x6c, 0x58,
6491 0x4f, 0x45, 0xf8, 0x4d, 0x4f, 0xf4, 0x24, 0x85, 0x6c, 0x48, 0x2f, 0x0c,
6492 0xdf, 0xea, 0xfd, 0xff, 0x0b, 0xf9, 0xc2, 0x08, 0x4e, 0x4d, 0xf9, 0xc2,
6493 0x39, 0x0a, 0x56, 0xd9, 0x03, 0xfb, 0xfa, 0x12, 0xe7, 0x9d, 0xf5, 0xf4,
6494 0xf6, 0x5f, 0x9f, 0x15, 0x79, 0xde, 0xf2, 0xd2, 0x1a, 0x85, 0xe1, 0xb1,
6495 0xc9, 0xe4, 0xaf, 0xf2, 0xae, 0xde, 0x76, 0x1e, 0x86, 0xa8, 0x4b, 0x8c,
6496 0x63, 0x59, 0xef, 0xfd, 0x7b, 0xbb, 0xdb, 0xd2, 0x19, 0xab, 0x4e, 0x0c,
6497 0x83, 0x4b, 0x45, 0xd2, 0x87, 0xb7, 0x8d, 0x38, 0x23, 0x3c, 0xb8, 0x18,
6498 0x00, 0xcd, 0xb0, 0x84, 0x45, 0x9a, 0x25, 0xae, 0x18, 0x07, 0x9f, 0x4c,
6499 0x74, 0xd4, 0x82, 0x88, 0x43, 0x93, 0xb3, 0x98, 0x59, 0xdd, 0x2d, 0xd0,
6500 0xc0, 0xd9, 0x62, 0x24, 0x4a, 0xc3, 0xbb, 0x20, 0x2a, 0xcf, 0x39, 0x6e,
6501 0x20, 0x08, 0xa3, 0xf3, 0xfc, 0xde, 0x65, 0x06, 0x81, 0x6d, 0x22, 0xd3,
6502 0x60, 0xe6, 0xc5, 0xc1, 0x9b, 0xaf, 0x8e, 0x61, 0x08, 0xb0, 0x3d, 0x26,
6503 0x0a, 0x9e, 0x77, 0x29, 0x33, 0x5d, 0x0c, 0x81, 0xe7, 0x29, 0x85, 0xab,
6504 0x32, 0xe5, 0x3d, 0x30, 0x5b, 0x4d, 0x39, 0x5c, 0xff, 0xd6, 0x95, 0x75,
6505 0x40, 0xa5, 0x0a, 0x88, 0x31, 0x16, 0x5e, 0x51, 0x3b, 0x1b, 0x91, 0xf9,
6506 0xad, 0x60, 0x4a, 0xf0, 0x5d, 0x87, 0x41, 0xfd, 0x39, 0x92, 0x88, 0x27,
6507 0xcb, 0x58, 0xa9, 0x16, 0xe2, 0x30, 0x85, 0x5f, 0x5d, 0x04, 0xa3, 0xfa,
6508 0xae, 0xdc, 0x30, 0x08, 0xbf, 0xbb, 0x8e, 0x16, 0xb8, 0x8e, 0x8e, 0x42,
6509 0x57, 0x8c, 0xe4, 0xad, 0xef, 0xee, 0xec, 0x78, 0xd6, 0x59, 0x4f, 0x45,
6510 0xd0, 0xd2, 0x9b, 0x45, 0xb4, 0x33, 0x7c, 0xfe, 0x7c, 0x9d, 0x4a, 0x74,
6511 0x8d, 0x82, 0x0f, 0xe0, 0xd9, 0x47, 0xb7, 0x39, 0xe4, 0x47, 0xd7, 0xb5,
6512 0xd9, 0x71, 0xe9, 0x40, 0x1d, 0x30, 0x45, 0x4c, 0x95, 0xce, 0x7c, 0x51,
6513 0xe7, 0x84, 0x38, 0xc5, 0x11, 0xa4, 0xc8, 0xdc, 0xcd, 0x83, 0xa7, 0x72,
6514 0xc3, 0x53, 0x9c, 0x21, 0x1d, 0xdd, 0xfc, 0x18, 0x4b, 0x06, 0x4d, 0xa5,
6515 0x2e, 0x4e, 0xf5, 0x51, 0x13, 0x13, 0xdc, 0x3d, 0xd7, 0x4c, 0xd1, 0x55,
6516 0x7b, 0x34, 0x66, 0x1b, 0xbc, 0x3d, 0x67, 0x2f, 0xd5, 0xc9, 0x9b, 0xaf,
6517 0xe4, 0x26, 0x4f, 0xd7, 0x52, 0x78, 0x2c, 0xb7, 0x1b, 0x97, 0xd4, 0xb7,
6518 0x5a, 0x37, 0x9d, 0x6b, 0x1b, 0x71, 0x80, 0x5a, 0x8a, 0xf6, 0xa4, 0x99,
6519 0x16, 0x30, 0x77, 0xab, 0xbf, 0xc6, 0x63, 0x76, 0x19, 0x0d, 0x03, 0x2b,
6520 0x45, 0x79, 0x68, 0xd9, 0x44, 0x59, 0x3c, 0xd8, 0xe5, 0x45, 0xbf, 0x80,
6521 0xd6, 0xcd, 0x03, 0xee, 0x9a, 0x15, 0x77, 0x95, 0xdc, 0x38, 0x21, 0x41,
6522 0x2d, 0x2b, 0xa5, 0xe3, 0x93, 0xf2, 0x19, 0xec, 0xf4, 0x86, 0x4d, 0xf2,
6523 0x71, 0x5d, 0x09, 0x7d, 0x65, 0x0d, 0xf6, 0x50, 0x36, 0xb1, 0x06, 0xe6,
6524 0xb6, 0x68, 0x7a, 0xd0, 0x34, 0x65, 0x9a, 0x1f, 0xc4, 0xfe, 0xc9, 0xff,
6525 0xf5, 0xbe, 0x3d, 0xd2, 0x2b, 0xde, 0x9c, 0x7c, 0x4e, 0x65, 0x33, 0x7f,
6526 0x35, 0xd7, 0x5e, 0x76, 0x7a, 0x12, 0x2f, 0xe5, 0x7d, 0xf9, 0x74, 0xdc,
6527 0xfd, 0x39, 0x79, 0xdf, 0xa6, 0xa3, 0x43, 0xe8, 0xd9, 0x9e, 0x55, 0x76,
6528 0x62, 0x97, 0x50, 0x67, 0xac, 0x89, 0x6c, 0x82, 0x43, 0x5b, 0xa4, 0x75,
6529 0xa3, 0x64, 0x23, 0xd2, 0xbc, 0x5d, 0x50, 0x17, 0xb3, 0xdc, 0xa0, 0xd2,
6530 0x0a, 0x8e, 0xae, 0x5b, 0x00, 0xde, 0xae, 0x94, 0x8b, 0x11, 0x45, 0xcf,
6531 0xc8, 0xa4, 0x49, 0xe5, 0xb2, 0xe0, 0x19, 0x2d, 0x8b, 0x55, 0xa6, 0x9a,
6532 0x8f, 0xa3, 0xae, 0xd4, 0xf9, 0xb8, 0xbc, 0x01, 0x1c, 0xca, 0x79, 0x4e,
6533 0xda, 0xc6, 0x15, 0x3e, 0xaf, 0xf4, 0x8c, 0x64, 0x4d, 0x89, 0x29, 0x05,
6534 0xcb, 0xba, 0x36, 0x15, 0xf5, 0x19, 0x08, 0x1c, 0x0d, 0x1f, 0x2b, 0xf9,
6535 0xac, 0x32, 0x3a, 0xa3, 0x28, 0x10, 0xfe, 0x40, 0xa1, 0x74, 0x8a, 0x5c,
6536 0xdd, 0x51, 0x23, 0x6d, 0xc9, 0xe1, 0x07, 0xbf, 0x08, 0xae, 0x4a, 0xa0,
6537 0xc9, 0x69, 0x4c, 0x21, 0x2e, 0xb9, 0x20, 0x8e, 0x73, 0xb4, 0x39, 0x50,
6538 0xb3, 0x6a, 0x0b, 0xc0, 0x3b, 0xe5, 0xc9, 0x5e, 0xe7, 0x82, 0x79, 0xe7,
6539 0xd3, 0x5e, 0x80, 0xd8, 0x08, 0xed, 0x49, 0xb2, 0x0e, 0xbe, 0x89, 0x11,
6540 0x4a, 0x07, 0x25, 0xb1, 0x5a, 0xb0, 0xaf, 0xe3, 0x4b, 0xbe, 0x7d, 0xe3,
6541 0x30, 0xb2, 0x0b, 0xe2, 0xb7, 0xc7, 0x17, 0x5f, 0x9e, 0x8d, 0x8f, 0x49,
6542 0x43, 0x1c, 0x1d, 0x7f, 0xf9, 0x96, 0xb5, 0x07, 0xaf, 0x98, 0x78, 0x2f,
6543 0x41, 0x8b, 0x27, 0x69, 0xaf, 0xe0, 0x56, 0x75, 0x97, 0x67, 0xb1, 0x4c,
6544 0x06, 0x2e, 0x85, 0x50, 0x8d, 0x2e, 0xb9, 0x5e, 0xcf, 0x13, 0x71, 0x77,
6545 0xa5, 0x00, 0x3c, 0x7b, 0x82, 0x4e, 0xbe, 0x54, 0x67, 0x5c, 0x65, 0xa7,
6546 0x32, 0x2a, 0x14, 0xab, 0xf2, 0x52, 0xee, 0xfb, 0x4b, 0xf3, 0x9d, 0x38,
6547 0x37, 0x75, 0x43, 0xf8, 0x0a, 0x7d, 0x56, 0x89, 0x4f, 0x8f, 0x23, 0x58,
6548 0xb6, 0x4a, 0xfc, 0x36, 0xcf, 0xe5, 0xf4, 0x62, 0xe2, 0x15, 0xec, 0x65,
6549 0x9c, 0xac, 0x29, 0x2a, 0xfb, 0x6a, 0x05, 0x06, 0xad, 0x8b, 0x57, 0x8a,
6550 0xc0, 0x91, 0x9a, 0x91, 0x2c, 0xd7, 0xb9, 0xaa, 0x65, 0x68, 0xa1, 0x32,
6551 0x11, 0xe2, 0x21, 0x39, 0x3d, 0x35, 0xfe, 0x27, 0xb8, 0x42, 0xad, 0x2c,
6552 0xb0, 0xa9, 0xb7, 0xd2, 0x7b, 0x71, 0x23, 0x48, 0x05, 0x1d, 0x29, 0x1f,
6553 0xe7, 0xe8, 0x95, 0x79, 0xe6, 0x83, 0xf0, 0xbf, 0x8a, 0xce, 0xdd, 0x7a,
6554 0x75, 0x70, 0x29, 0x23, 0x4d, 0xee, 0xc0, 0x9d, 0xc4, 0x94, 0xf1, 0x01,
6555 0x1f, 0x61, 0xc8, 0x25, 0xc3, 0xd8, 0x49, 0x67, 0x32, 0xc8, 0x7e, 0x62,
6556 0xf4, 0x72, 0x70, 0xa9, 0x5b, 0x5f, 0x6f, 0xce, 0xec, 0x4b, 0x45, 0x5c,
6557 0x36, 0xb9, 0x8d, 0x14, 0xf2, 0xc3, 0x4b, 0x0a, 0xaf, 0xb2, 0x08, 0x5f,
6558 0x7b, 0x0f, 0x4a, 0xeb, 0x52, 0x6a, 0xae, 0x7a, 0x5f, 0x85, 0xbe, 0xf7,
6559 0x8d, 0x8d, 0x8d, 0xa3, 0xe3, 0xcb, 0x83, 0x93, 0xd3, 0xe3, 0xa3, 0xe8,
6560 0xe4, 0xcd, 0xab, 0xb3, 0x8b, 0xd7, 0x07, 0x97, 0x1a, 0x7d, 0x3e, 0x72,
6561 0xce, 0x2b, 0x97, 0xbf, 0xea, 0x7c, 0x83, 0xde, 0xb1, 0x05, 0x11, 0xa6,
6562 0x55, 0xbc, 0x56, 0x52, 0x5c, 0x99, 0x86, 0xa4, 0x36, 0x07, 0x1b, 0x91,
6563 0x46, 0xad, 0x3d, 0xb7, 0x0b, 0x9f, 0xcf, 0xdb, 0x2e, 0xd2, 0x38, 0xb2,
6564 0xe9, 0x74, 0x74, 0x7f, 0xcc, 0x7e, 0xfd, 0x68, 0x53, 0xae, 0xda, 0xa7,
6565 0x9c, 0x4d, 0xbc, 0x9c, 0x92, 0x68, 0x0c, 0x99, 0x1c, 0x9e, 0x6c, 0x33,
6566 0xc9, 0x50, 0x6c, 0xd0, 0x4a, 0xb0, 0xdd, 0x5a, 0xc1, 0x60, 0x16, 0x17,
6567 0x6e, 0x27, 0x48, 0xf0, 0x27, 0x09, 0x64, 0x57, 0x5c, 0xd8, 0xa6, 0x4b,
6568 0x5d, 0x37, 0xf2, 0x16, 0xc1, 0x3a, 0xe0, 0x27, 0xe1, 0xfa, 0x32, 0x99,
6569 0xc0, 0x06, 0x43, 0x57, 0x2a, 0xa5, 0x15, 0x61, 0x32, 0xbe, 0x92, 0x6b,
6570 0x4c, 0xda, 0x5e, 0x17, 0x86, 0x40, 0x53, 0xa2, 0x16, 0xe0, 0x51, 0xda,
6571 0xff, 0xb0, 0xa9, 0x4d, 0x17, 0x9d, 0x24, 0xcb, 0x65, 0x78, 0xa2, 0x3c,
6572 0xde, 0x3c, 0x17, 0xcc, 0x19, 0xcb, 0xff, 0xcd, 0xac, 0x8c, 0x86, 0x83,
6573 0xaa, 0xf9, 0x3b, 0x78, 0xba, 0xed, 0xca, 0x2a, 0xea, 0x6e, 0xf3, 0xfb,
6574 0xb6, 0x34, 0x49, 0x3b, 0xa2, 0x87, 0xb8, 0x50, 0xf5, 0x50, 0x3f, 0xaf,
6575 0x36, 0x2e, 0x9c, 0x64, 0xb6, 0x84, 0x62, 0x3c, 0xc1, 0x08, 0x80, 0x27,
6576 0xe6, 0x95, 0xce, 0x81, 0x8c, 0x03, 0xf2, 0x5d, 0x59, 0x34, 0x89, 0x6f,
6577 0xad, 0x3e, 0x00, 0xd4, 0xac, 0x00, 0x59, 0xb7, 0x20, 0x30, 0x21, 0x63,
6578 0xf7, 0x6c, 0xb3, 0x64, 0x64, 0xec, 0x01, 0x19, 0x98, 0xff, 0x4d, 0xab,
6579 0xee, 0xc5, 0x22, 0xab, 0x0d, 0xea, 0x25, 0xa9, 0x1d, 0xbf, 0xaa, 0x0d,
6580 0x2a, 0x7c, 0xb1, 0x0e, 0x61, 0x08, 0x35, 0xbd, 0x7d, 0xda, 0x13, 0x33,
6581 0x36, 0x7b, 0xa0, 0x5a, 0x1c, 0x25, 0xc4, 0xb5, 0x50, 0x68, 0x8c, 0x50,
6582 0x3e, 0xb3, 0xae, 0x6d, 0x68, 0x92, 0xac, 0x6a, 0x4a, 0xc4, 0x54, 0x4c,
6583 0x7c, 0x57, 0xa8, 0x2e, 0x96, 0xdf, 0xf2, 0xed, 0xba, 0xd4, 0x82, 0xb5,
6584 0x41, 0xbe, 0x8f, 0x40, 0x6d, 0xb4, 0xf8, 0x06, 0x94, 0x5e, 0xb6, 0x61,
6585 0xb5, 0x02, 0xec, 0x25, 0x03, 0x4b, 0x41, 0xfb, 0x0b, 0xff, 0x2b, 0x94,
6586 0x3c, 0x5f, 0x73, 0x93, 0xb8, 0xc4, 0x15, 0x07, 0xa8, 0x7f, 0x39, 0x33,
6587 0x20, 0x02, 0x02, 0x43, 0xb6, 0x78, 0x06, 0x0e, 0x9f, 0x80, 0x55, 0x42,
6588 0x38, 0xe8, 0x62, 0x4e, 0xdc, 0xb7, 0x4d, 0x21, 0x08, 0x5f, 0xd7, 0x0a,
6589 0xce, 0x3a, 0xbe, 0xc2, 0x16, 0x73, 0xc0, 0x34, 0x15, 0xb7, 0x76, 0x9e,
6590 0x97, 0xb2, 0xdf, 0x60, 0x69, 0xf7, 0xa4, 0xfa, 0x21, 0x8b, 0x41, 0x6f,
6591 0x79, 0x43, 0xdf, 0xe8, 0x45, 0xd7, 0x7c, 0x57, 0x99, 0x50, 0xd7, 0x5b,
6592 0x0a, 0x74, 0x26, 0x8f, 0xbf, 0xbc, 0x88, 0xaf, 0xe2, 0x64, 0xfe, 0x87,
6593 0xbd, 0x9d, 0x71, 0x7c, 0xbd, 0x9a, 0xc7, 0x7f, 0xc4, 0x8b, 0x2f, 0x9f,
6594 0x3c, 0xd9, 0xdb, 0xf9, 0xf4, 0xb3, 0x9d, 0x5e, 0x23, 0x86, 0x1c, 0x00,
6595 0x50, 0x80, 0x27, 0xe0, 0x93, 0x0c, 0x7a, 0x17, 0xdf, 0x19, 0x4d, 0xaf,
6596 0x53, 0xfe, 0xcc, 0xd7, 0x6c, 0xbc, 0xe8, 0x1c, 0xc4, 0x72, 0xbf, 0x83,
6597 0x9a, 0x54, 0x4a, 0x2d, 0x3a, 0x71, 0x49, 0xae, 0x7f, 0xbf, 0xbb, 0x2f,
6598 0xaa, 0xec, 0x1a, 0x0e, 0xeb, 0x58, 0x24, 0x36, 0x7a, 0x91, 0x66, 0x74,
6599 0x02, 0x7d, 0x1e, 0x55, 0xf1, 0xb5, 0x93, 0x55, 0xb4, 0x80, 0xd5, 0x70,
6600 0xcb, 0x59, 0x21, 0xca, 0xc9, 0xe6, 0xce, 0x28, 0xda, 0xbc, 0x14, 0x56,
6601 0x70, 0x18, 0x3e, 0xcb, 0xa4, 0x40, 0x35, 0xed, 0xeb, 0x22, 0x5e, 0x18,
6602 0x2a, 0x9e, 0xdf, 0x67, 0x94, 0xce, 0x68, 0x39, 0x07, 0x60, 0xdb, 0xa0,
6603 0x36, 0x65, 0xea, 0x05, 0x6e, 0xbe, 0x2c, 0x3d, 0xc5, 0x94, 0x1c, 0x37,
6604 0x21, 0xdf, 0x38, 0x4d, 0x16, 0xbc, 0x1c, 0x3d, 0x8c, 0x6a, 0xe0, 0xb8,
6605 0x6a, 0x86, 0x33, 0x1b, 0xe9, 0x08, 0x7f, 0x47, 0xa6, 0x79, 0x2c, 0x64,
6606 0x62, 0xbd, 0xa5, 0xe4, 0x70, 0xba, 0x3a, 0x97, 0xe2, 0x0e, 0x4b, 0x6b,
6607 0xe3, 0x8a, 0x3d, 0x3a, 0x2c, 0x7a, 0x61, 0x7e, 0x9b, 0xdd, 0xcf, 0x5f,
6608 0x42, 0x20, 0x76, 0x3f, 0xff, 0xa3, 0xfb, 0xd9, 0x9e, 0xfe, 0x6c, 0xef,
6609 0xf3, 0x3f, 0x8e, 0x46, 0xe8, 0x1f, 0x4b, 0x48, 0xdf, 0x7e, 0xdd, 0x57,
6610 0x5e, 0x87, 0x58, 0xb7, 0xb0, 0xfc, 0xcb, 0x11, 0x69, 0xca, 0x5a, 0xf7,
6611 0xec, 0xcb, 0xe1, 0x2c, 0x0f, 0x34, 0x28, 0xe7, 0xf4, 0x56, 0x6a, 0x15,
6612 0x7b, 0xc0, 0x92, 0x5a, 0x76, 0x4d, 0xba, 0x8b, 0x1d, 0xa0, 0x9d, 0xd2,
6613 0x51, 0x0f, 0xc6, 0xd1, 0x9f, 0x58, 0x52, 0xff, 0xb4, 0x11, 0x69, 0xec,
6614 0x8c, 0x97, 0x03, 0x75, 0x8f, 0x23, 0x13, 0x5b, 0x7a, 0x34, 0x36, 0x7a,
6615 0x73, 0x6e, 0x99, 0xa1, 0xe6, 0x7c, 0x06, 0x06, 0xa5, 0x1e, 0xff, 0xac,
6616 0x19, 0xf4, 0xb2, 0xe0, 0xac, 0xcf, 0x90, 0x72, 0x26, 0x80, 0x7c, 0xb2,
6617 0x30, 0x2a, 0xe1, 0x85, 0xa6, 0x27, 0xff, 0xf0, 0xfd, 0xf7, 0x6a, 0x4e,
6618 0xd1, 0x5f, 0xb4, 0xdf, 0x37, 0xa4, 0x89, 0x66, 0xa4, 0xdc, 0x16, 0x28,
6619 0x28, 0xa8, 0xd5, 0x39, 0xf5, 0xc0, 0xbf, 0xd2, 0x71, 0x4a, 0x23, 0xb4,
6620 0xb0, 0x07, 0xe3, 0xc3, 0x93, 0x13, 0x80, 0xea, 0x30, 0xa5, 0xc7, 0xa2,
6621 0xc4, 0x20, 0x99, 0x9b, 0xc0, 0x08, 0x78, 0x0c, 0x56, 0x28, 0xf8, 0xbc,
6622 0x72, 0x58, 0x74, 0xc8, 0x3e, 0x35, 0x66, 0xd7, 0x60, 0x5d, 0x48, 0x48,
6623 0xac, 0xd8, 0x38, 0x2f, 0x7b, 0xf2, 0xe0, 0x75, 0xda, 0xd3, 0xc8, 0x8f,
6624 0xfc, 0xa4, 0xe7, 0x69, 0x3a, 0x64, 0x35, 0xb0, 0x64, 0x2f, 0xc5, 0x70,
6625 0x4a, 0x7f, 0x4e, 0x5e, 0xee, 0xee, 0x74, 0x3f, 0xc1, 0xb7, 0x21, 0x50,
6626 0xd7, 0xbe, 0xf4, 0x91, 0xb3, 0xc7, 0x9e, 0x4f, 0x67, 0xf2, 0xb4, 0x16,
6627 0x2c, 0x46, 0x91, 0xd1, 0x97, 0xbd, 0x09, 0x9f, 0xaf, 0xfc, 0xff, 0xd7,
6628 0xf4, 0x03, 0xa8, 0x57, 0x7d, 0xb6, 0x5c, 0x4d, 0x16, 0x69, 0xad, 0xc3,
6629 0xdb, 0x3c, 0xc0, 0xcf, 0xe1, 0x52, 0x49, 0x9c, 0x6c, 0xa0, 0xde, 0xbd,
6630 0x58, 0x7e, 0xfd, 0xab, 0x3c, 0x9f, 0xc4, 0x45, 0x5f, 0xa3, 0x2b, 0xd6,
6631 0xcf, 0xfe, 0xee, 0xde, 0x93, 0xa7, 0xcf, 0xfa, 0x23, 0xb5, 0xd2, 0xa0,
6632 0x20, 0xaa, 0x30, 0x1b, 0x5e, 0x9a, 0x88, 0x65, 0x7b, 0x1a, 0xa8, 0x13,
6633 0xe9, 0xb7, 0x5d, 0x51, 0x48, 0xd6, 0x61, 0xfc, 0xb9, 0x97, 0xf2, 0xb5,
6634 0x3f, 0xf2, 0x77, 0x5e, 0xe2, 0x13, 0x7f, 0x4c, 0x67, 0x2f, 0xdd, 0x08,
6635 0xff, 0xc8, 0x63, 0x79, 0xa9, 0x83, 0xa0, 0x75, 0xb5, 0x74, 0xa7, 0x32,
6636 0xa4, 0x7b, 0xff, 0xd0, 0xe2, 0xda, 0x22, 0x6e, 0x60, 0xd0, 0x08, 0x81,
6637 0x0f, 0x67, 0x12, 0x8c, 0x80, 0xad, 0xea, 0x73, 0x7d, 0xb6, 0xdf, 0x0f,
6638 0xa9, 0x95, 0x21, 0xb7, 0x32, 0xf4, 0xea, 0x1a, 0xb4, 0xc2, 0x43, 0x5e,
6639 0x88, 0x81, 0x26, 0x7c, 0xcd, 0xe1, 0xeb, 0x50, 0x43, 0x20, 0xcf, 0x11,
6640 0x60, 0x3e, 0xfc, 0xea, 0xa4, 0xaf, 0xc8, 0x0d, 0xb9, 0xb8, 0x0d, 0xba,
6641 0xfc, 0xc5, 0x0e, 0x4e, 0x35, 0x8d, 0x97, 0xbc, 0xf7, 0x37, 0x22, 0xad,
6642 0x91, 0x15, 0x33, 0x10, 0x81, 0xbf, 0x2b, 0xd9, 0x99, 0xf4, 0x31, 0x3d,
6643 0x73, 0xe6, 0xec, 0x81, 0x2e, 0x84, 0xf0, 0x38, 0x68, 0x86, 0xf9, 0x3f,
6644 0x15, 0x91, 0x80, 0x10, 0xcc, 0xd2, 0x25, 0x76, 0x0d, 0x5f, 0xb9, 0x30,
6645 0xa1, 0x4b, 0x24, 0xd2, 0x47, 0xe9, 0x57, 0xa2, 0x4d, 0x4c, 0x41, 0xf4,
6646 0x1c, 0x7b, 0x97, 0x48, 0x42, 0xa8, 0x3b, 0x10, 0xe4, 0x9c, 0x24, 0xb5,
6647 0xda, 0xbe, 0x62, 0x16, 0xb2, 0xf6, 0x7c, 0xe1, 0x6a, 0xf6, 0x7e, 0x1e,
6648 0xa1, 0xf2, 0x9d, 0xbc, 0xa5, 0xa9, 0x42, 0xb5, 0x02, 0xf2, 0x78, 0x49,
6649 0x2f, 0x07, 0x2e, 0x22, 0x15, 0xc0, 0x39, 0xd4, 0x2c, 0x08, 0x99, 0x9d,
6650 0x27, 0x0f, 0x7a, 0xfd, 0xe7, 0x16, 0xfa, 0x7f, 0xc1, 0x26, 0x78, 0xc1,
6651 0xcb, 0x80, 0x5f, 0x7f, 0xde, 0x17, 0x17, 0x9e, 0x7b, 0x97, 0xbb, 0xd1,
6652 0x08, 0xb9, 0x8a, 0x80, 0x86, 0xe3, 0xc9, 0xaf, 0x1c, 0xb1, 0xa6, 0xd8,
6653 0x62, 0x4c, 0x04, 0x90, 0xe1, 0x3a, 0x95, 0x26, 0xf3, 0x99, 0x32, 0xd2,
6654 0x39, 0x87, 0xb1, 0x34, 0x9e, 0x30, 0xcb, 0x02, 0xdb, 0x8e, 0x7d, 0x46,
6655 0xe6, 0xe1, 0xbd, 0xbe, 0xe3, 0xe9, 0x84, 0x0f, 0x13, 0xea, 0xae, 0x48,
6656 0x8c, 0xad, 0x6d, 0x43, 0x13, 0x80, 0xbd, 0x2d, 0x1f, 0x0e, 0xac, 0x0c,
6657 0x4c, 0x07, 0x9f, 0x4e, 0x25, 0xac, 0x19, 0xad, 0x2d, 0xf2, 0x8a, 0x73,
6658 0x15, 0xf5, 0xa3, 0x2f, 0x79, 0xba, 0x77, 0x47, 0xd7, 0xe9, 0x95, 0x4c,
6659 0x06, 0xa9, 0xc8, 0xeb, 0x64, 0x9b, 0xfe, 0x39, 0xa0, 0x9f, 0xef, 0xb1,
6660 0x4d, 0xc6, 0x7f, 0x79, 0x02, 0x40, 0x4f, 0x78, 0xf2, 0x07, 0x7b, 0xc3,
6661 0xed, 0x0b, 0xfe, 0x4b, 0xea, 0x4e, 0x7c, 0x8d, 0xb2, 0x68, 0x2f, 0x87,
6662 0x46, 0xac, 0xed, 0xca, 0x8b, 0x48, 0x39, 0x11, 0x1f, 0x41, 0x01, 0x8f,
6663 0x72, 0x0e, 0xeb, 0xa4, 0xf4, 0xf8, 0x57, 0x45, 0x1c, 0xa8, 0x99, 0xce,
6664 0x56, 0x77, 0xaa, 0x0e, 0x13, 0xce, 0x36, 0xc0, 0xb9, 0x9a, 0xdc, 0x6f,
6665 0x0d, 0x42, 0x54, 0xa1, 0x15, 0xf2, 0x66, 0x4e, 0x00, 0x9f, 0xf9, 0xc5,
6666 0x9f, 0xdf, 0xd4, 0xea, 0xce, 0x4c, 0x27, 0xa6, 0x19, 0x8d, 0x58, 0xe6,
6667 0xb4, 0xb9, 0x82, 0xf5, 0x0a, 0xc9, 0x82, 0x04, 0x4b, 0xcb, 0x6a, 0x8b,
6668 0x3f, 0x93, 0xcc, 0x4b, 0xdc, 0xd4, 0xb9, 0xd3, 0x1b, 0x91, 0xfb, 0xaa,
6669 0x51, 0xba, 0xe2, 0x43, 0xfd, 0x70, 0xef, 0xe7, 0xd3, 0x2a, 0xa1, 0x9b,
6670 0x2e, 0x33, 0xf8, 0x2c, 0x44, 0xcf, 0x1d, 0x2f, 0xa4, 0x46, 0x1a, 0x44,
6671 0x78, 0x3e, 0x94, 0xb3, 0x53, 0x0d, 0xa2, 0xe1, 0xab, 0x51, 0x74, 0x0a,
6672 0x7c, 0x6c, 0x19, 0x0b, 0x13, 0x84, 0x9d, 0xaf, 0x26, 0x0d, 0x24, 0x3a,
6673 0xa5, 0xb1, 0x59, 0xf1, 0x7b, 0x9c, 0x7c, 0x6f, 0x22, 0x05, 0x8a, 0x6a,
6674 0x7f, 0xe5, 0x14, 0xeb, 0x42, 0xad, 0x91, 0x01, 0x3c, 0xd2, 0xee, 0x39,
6675 0xf8, 0xe0, 0xf1, 0x54, 0x8c, 0x34, 0x13, 0x27, 0xb0, 0x41, 0x23, 0x82,
6676 0xfa, 0x51, 0xf3, 0x33, 0x50, 0xeb, 0x6e, 0x13, 0x48, 0x8e, 0x7f, 0x22,
6677 0x2e, 0x17, 0x3e, 0x92, 0x99, 0x8e, 0x02, 0x21, 0x5a, 0x6a, 0x0d, 0x52,
6678 0x06, 0x6e, 0x57, 0x12, 0xa3, 0x1e, 0x6e, 0x8d, 0xf3, 0xc4, 0x5d, 0xad,
6679 0xb5, 0xf6, 0x8c, 0xd4, 0x82, 0xc9, 0x95, 0xb0, 0x56, 0x39, 0xe1, 0x5d,
6680 0xf8, 0x8c, 0x3b, 0xc9, 0xfd, 0x8a, 0xef, 0xe8, 0x2f, 0x7c, 0xe0, 0x4f,
6681 0x0a, 0x5a, 0xf5, 0xa4, 0x90, 0xa3, 0x01, 0x5f, 0x0d, 0x8b, 0x78, 0x7f,
6682 0x7d, 0xf9, 0xfa, 0x34, 0x32, 0x46, 0x8d, 0x2b, 0x6f, 0x28, 0x1a, 0xb4,
6683 0x0f, 0x43, 0x54, 0xbf, 0x88, 0x58, 0x43, 0xfa, 0x94, 0x9c, 0x72, 0x32,
6684 0xb7, 0x9c, 0x93, 0x1b, 0xf1, 0xe4, 0xd4, 0xb6, 0x6c, 0xf0, 0x84, 0xbc,
6685 0xba, 0x21, 0xec, 0x3f, 0x7d, 0x9e, 0x82, 0xfe, 0x20, 0xea, 0x73, 0x57,
6686 0xf9, 0x17, 0x7d, 0xcc, 0x27, 0x7e, 0x1c, 0x4c, 0x5f, 0x7f, 0xd4, 0xb1,
6687 0x0b, 0xf9, 0x99, 0x97, 0x5f, 0xd4, 0x66, 0x09, 0x3f, 0xb7, 0xa6, 0x5e,
6688 0x0a, 0xa4, 0xbe, 0x65, 0x71, 0xdb, 0xbb, 0x41, 0xfb, 0x2f, 0x0f, 0xa9,
6689 0x15, 0x29, 0x12, 0x2e, 0x6b, 0x02, 0xe3, 0xda, 0xfd, 0x2c, 0x45, 0x6e,
6690 0x5e, 0xab, 0xa1, 0x0f, 0xef, 0xe2, 0x4b, 0x53, 0x45, 0x0e, 0x43, 0x28,
6691 0xda, 0x4d, 0x44, 0xc0, 0x34, 0x2f, 0xad, 0x66, 0x2a, 0xb7, 0xbe, 0xfb,
6692 0x1c, 0x3e, 0x06, 0xe8, 0x9c, 0xdd, 0x11, 0x72, 0xb5, 0x7c, 0xb1, 0x46,
6693 0xd7, 0x80, 0xbb, 0xba, 0xf7, 0x30, 0xa1, 0x3d, 0x73, 0x99, 0xb8, 0x0b,
6694 0xbd, 0xcd, 0x72, 0x97, 0xee, 0x5a, 0xa6, 0x53, 0xd0, 0xc5, 0xbe, 0xfc,
6695 0x62, 0x96, 0x5f, 0xb3, 0xe6, 0x1a, 0xd0, 0x46, 0xe3, 0xff, 0xf6, 0xf8,
6696 0xe1, 0x3d, 0xfd, 0xa8, 0x74, 0x18, 0x7b, 0x45, 0x6c, 0x78, 0xfb, 0xf7,
6697 0x1a, 0x8c, 0x23, 0x35, 0x3c, 0xcb, 0xa7, 0xda, 0xb6, 0x6b, 0x5a, 0xd6,
6698 0x83, 0xda, 0x77, 0xbf, 0x08, 0xbf, 0x65, 0x93, 0x13, 0x6b, 0xcb, 0x52,
6699 0xac, 0x7d, 0x9e, 0x56, 0x72, 0x94, 0xbb, 0x2a, 0x63, 0x70, 0x6f, 0x71,
6700 0xbd, 0x45, 0x39, 0xb7, 0xe6, 0x9a, 0x40, 0xd4, 0xff, 0xa2, 0x2f, 0x78,
6701 0xe8, 0xfe, 0x8b, 0x3e, 0x34, 0x18, 0xeb, 0x25, 0x2b, 0x2b, 0xa3, 0x87,
6702 0x53, 0x5f, 0x4e, 0xc5, 0xa1, 0xd8, 0x0e, 0xca, 0x2b, 0x56, 0x83, 0xb0,
6703 0xb1, 0xc2, 0xb0, 0x4b, 0x64, 0x88, 0xbe, 0x83, 0x93, 0x00, 0xc5, 0xae,
6704 0xd0, 0x2b, 0x26, 0x4a, 0x9c, 0x54, 0x82, 0x5b, 0xd1, 0x43, 0x17, 0x66,
6705 0x19, 0x78, 0x19, 0x4a, 0xc6, 0x13, 0x88, 0x93, 0x73, 0x95, 0x2d, 0x39,
6706 0x0b, 0x77, 0x5a, 0x49, 0xf1, 0x24, 0xec, 0xa5, 0x51, 0xf4, 0x36, 0x13,
6707 0x42, 0xeb, 0x84, 0xaf, 0xca, 0x21, 0xa8, 0x66, 0xe0, 0xc0, 0x41, 0x34,
6708 0x51, 0xb5, 0x70, 0x79, 0xd8, 0x61, 0x71, 0x8d, 0x88, 0x0b, 0x5b, 0xbf,
6709 0x0b, 0x64, 0x08, 0x43, 0x96, 0xd4, 0x45, 0x0d, 0xab, 0xc0, 0xf1, 0x33,
6710 0xa8, 0x02, 0xe2, 0x48, 0xdd, 0xf1, 0xab, 0xe3, 0x8b, 0x8b, 0xe3, 0x0b,
6711 0x9e, 0xef, 0x83, 0x7a, 0x35, 0x37, 0x63, 0x68, 0xf4, 0x91, 0x3f, 0x83,
6712 0x8d, 0xb6, 0xd9, 0xa1, 0x45, 0x13, 0xc6, 0xb3, 0x19, 0xd3, 0xf1, 0x6e,
6713 0x44, 0x06, 0xe3, 0x10, 0x56, 0x12, 0x71, 0x0e, 0xc3, 0xb3, 0x08, 0xd0,
6714 0xb0, 0xf3, 0xe2, 0x33, 0x35, 0x9a, 0x16, 0x65, 0x0b, 0x0d, 0x8b, 0x8d,
6715 0xc8, 0x5e, 0x2d, 0xb4, 0x1c, 0xe7, 0xca, 0x12, 0x7f, 0x6f, 0x92, 0x9a,
6716 0x8d, 0x3a, 0x52, 0x9c, 0x67, 0xa2, 0x91, 0xed, 0xb9, 0x73, 0x4d, 0x60,
6717 0xbc, 0x57, 0xbc, 0x41, 0xf9, 0xda, 0x84, 0x99, 0x28, 0xab, 0xd5, 0x32,
6718 0x9d, 0x39, 0x47, 0x2f, 0xfd, 0x9c, 0x6c, 0xbf, 0x48, 0xb6, 0x78, 0x69,
6719 0x3d, 0x46, 0x60, 0xd1, 0xfc, 0x10, 0xa1, 0xa3, 0x4d, 0x48, 0x40, 0xbc,
6720 0x9b, 0x0c, 0x89, 0x41, 0x19, 0x4a, 0x6e, 0x58, 0xe9, 0x8d, 0x7a, 0x0a,
6721 0xab, 0x0a, 0x7e, 0x02, 0x07, 0x23, 0xab, 0x0a, 0x83, 0xc2, 0x84, 0x6a,
6722 0x81, 0xdd, 0x58, 0x0b, 0x8f, 0x96, 0x66, 0xc4, 0xd7, 0xbe, 0x90, 0x2d,
6723 0x20, 0x73, 0xad, 0xd8, 0x8f, 0x7e, 0x2c, 0xd3, 0xe9, 0x4f, 0xfe, 0xe4,
6724 0x40, 0x9e, 0x83, 0x07, 0x34, 0x0b, 0x74, 0x86, 0x06, 0xaf, 0x13, 0xa5,
6725 0xf7, 0x60, 0xc9, 0x18, 0x7d, 0x3b, 0x3e, 0xbe, 0x88, 0x0e, 0xbe, 0x62,
6726 0xb2, 0xd1, 0x7f, 0x6d, 0x75, 0xf9, 0x39, 0x3d, 0x19, 0x6c, 0x6d, 0x95,
6727 0x41, 0x21, 0x99, 0x85, 0x95, 0x17, 0x47, 0xb5, 0x85, 0x4d, 0xad, 0x98,
6728 0x6a, 0x90, 0xea, 0x5e, 0x5b, 0xc2, 0x8d, 0xe8, 0x83, 0x8b, 0xf8, 0x31,
6729 0x4b, 0xc8, 0x1b, 0x2c, 0x5c, 0x44, 0xe1, 0x5e, 0x91, 0x60, 0x84, 0x2d,
6730 0x8d, 0xf6, 0xbe, 0x6c, 0x5d, 0x39, 0x65, 0x91, 0x0e, 0xa2, 0xfe, 0xeb,
6731 0xfc, 0x67, 0x32, 0x04, 0xe2, 0xed, 0x27, 0xa3, 0x9d, 0x68, 0xf3, 0xbb,
6732 0x34, 0x7b, 0xfe, 0xec, 0x2f, 0xd1, 0xc9, 0x56, 0xbf, 0x86, 0x04, 0x97,
6733 0x9a, 0x3a, 0x93, 0x38, 0xbb, 0x75, 0x2b, 0x76, 0x86, 0x5d, 0x2d, 0xf8,
6734 0x36, 0xe3, 0xf7, 0xdf, 0x87, 0x08, 0xac, 0x6d, 0x51, 0x08, 0xa1, 0x05,
6735 0x54, 0x1e, 0x7d, 0xab, 0x59, 0x92, 0x4f, 0x70, 0xbf, 0xa7, 0xa7, 0x66,
6736 0x3c, 0x75, 0xcf, 0x9f, 0xb5, 0x9a, 0x78, 0xea, 0xda, 0x78, 0x2b, 0x6d,
6737 0xfc, 0xc2, 0x26, 0xf6, 0x46, 0x3b, 0x7b, 0xd1, 0xe6, 0xd9, 0x78, 0x7b,
6738 0xcf, 0xb5, 0xd0, 0x6e, 0x62, 0x0f, 0x4d, 0xf0, 0x43, 0xf5, 0x97, 0x9f,
6739 0xf2, 0xf7, 0x7f, 0x4c, 0xb2, 0x9f, 0xa2, 0xcd, 0xef, 0x77, 0x77, 0xa9,
6740 0x81, 0xbf, 0x44, 0x07, 0x27, 0xdf, 0x47, 0x4f, 0x47, 0xd4, 0xd8, 0x9b,
6741 0xf8, 0x4e, 0x9b, 0x53, 0xca, 0xcc, 0x31, 0x1a, 0xa1, 0xdf, 0xb7, 0xda,
6742 0x78, 0xd6, 0x68, 0xe3, 0x94, 0xee, 0x84, 0xef, 0xe9, 0x48, 0xd9, 0x19,
6743 0x3d, 0xd9, 0x8b, 0xd2, 0x67, 0x9f, 0x7d, 0x62, 0x0d, 0x69, 0x1b, 0xf8,
6744 0x7d, 0xdd, 0x4f, 0x29, 0xa4, 0x0c, 0x64, 0xe6, 0x1c, 0xbf, 0x27, 0x65,
6745 0x06, 0x0d, 0x01, 0x06, 0xf8, 0x9b, 0xb8, 0x98, 0xa9, 0xb8, 0x31, 0x2b,
6746 0x38, 0xad, 0x94, 0x92, 0xd5, 0x26, 0x70, 0x58, 0xd2, 0xa1, 0xb9, 0xdf,
6747 0xea, 0x0e, 0xdf, 0x4b, 0xed, 0xd1, 0xbf, 0x44, 0xaf, 0xc7, 0x27, 0xc7,
6748 0x34, 0xa2, 0x1d, 0xea, 0x9a, 0x9f, 0x43, 0xe9, 0x10, 0x7e, 0x85, 0xc9,
6749 0x7d, 0x0e, 0xee, 0x43, 0x6d, 0x23, 0x2c, 0xeb, 0x06, 0xa1, 0xa3, 0x43,
6750 0xbb, 0xc4, 0x77, 0x19, 0x1e, 0x32, 0x3c, 0xb8, 0xe6, 0xeb, 0x83, 0x1c,
6751 0xb3, 0xf8, 0xf4, 0x37, 0x79, 0x46, 0xdb, 0xa4, 0xc8, 0x0b, 0x46, 0x31,
6752 0xf5, 0x6b, 0x96, 0xc2, 0x37, 0x47, 0xc7, 0x92, 0xb8, 0xfb, 0x3a, 0xce,
6753 0x48, 0x45, 0x32, 0x01, 0x4f, 0x79, 0xcb, 0x11, 0x78, 0x09, 0xe4, 0xc8,
6754 0xfb, 0xa7, 0x0f, 0xd9, 0x7b, 0x5a, 0xc7, 0x4f, 0x47, 0xbb, 0x4c, 0x7f,
6755 0xc0, 0x37, 0xde, 0x57, 0xaf, 0xe9, 0xdf, 0xbb, 0x4f, 0xfb, 0x11, 0xff,
6756 0xaa, 0x7e, 0x7b, 0xb7, 0xfd, 0xba, 0x71, 0x78, 0x76, 0xf6, 0xcd, 0x89,
6757 0x80, 0x31, 0x0e, 0xd5, 0xa1, 0xca, 0x86, 0x95, 0xbb, 0x11, 0x8b, 0x72,
6758 0xa5, 0x9b, 0x9b, 0x4f, 0x32, 0x41, 0x18, 0xee, 0x36, 0x49, 0x96, 0x8c,
6759 0x07, 0xa8, 0x1a, 0x1a, 0xc1, 0x6a, 0x4e, 0x38, 0x9c, 0x11, 0x9b, 0x3e,
6760 0x35, 0xf2, 0xa0, 0x92, 0x09, 0x59, 0xcd, 0x79, 0x3b, 0x79, 0x70, 0xe4,
6761 0x00, 0xb1, 0x0b, 0x96, 0x49, 0x17, 0x1d, 0xd4, 0xdd, 0x9c, 0xcf, 0x42,
6762 0xa6, 0x4f, 0x2f, 0xea, 0xbd, 0xb7, 0x3f, 0x26, 0xcb, 0x5e, 0x3a, 0xbd,
6763 0xaf, 0xfe, 0xda, 0x7e, 0x40, 0x61, 0x0b, 0x6b, 0x76, 0xa9, 0xc5, 0x26,
6764 0xe0, 0x34, 0x7e, 0x20, 0x3b, 0x02, 0x63, 0x52, 0xd5, 0x5c, 0xc2, 0x8b,
6765 0x0d, 0xa8, 0xdc, 0x9b, 0x83, 0xd7, 0xc7, 0x2f, 0xbf, 0x3d, 0x38, 0x7d,
6766 0x7b, 0x4c, 0xaf, 0xa4, 0xf4, 0xb1, 0x4d, 0x0f, 0xa7, 0x43, 0x1f, 0x17,
6767 0xe9, 0x34, 0x9f, 0x73, 0x7c, 0xa9, 0xff, 0x97, 0xfe, 0x86, 0x60, 0xb0,
6768 0xa3, 0x1e, 0xbf, 0xb5, 0x2b, 0xaf, 0x91, 0x5c, 0xf0, 0xbf, 0xf6, 0xe4,
6769 0x5f, 0x7b, 0x7f, 0xe9, 0x6d, 0xd5, 0x06, 0xdd, 0xba, 0x21, 0xb3, 0xbc,
6770 0xdc, 0x0b, 0xf8, 0x16, 0x35, 0x43, 0x01, 0xfc, 0x97, 0x59, 0xe9, 0x59,
6771 0x74, 0xc6, 0x8e, 0x36, 0x7e, 0x76, 0x73, 0xf2, 0x10, 0xde, 0xbf, 0x7b,
6772 0xfc, 0xd2, 0x4b, 0x18, 0x17, 0xbd, 0xad, 0x81, 0x33, 0x37, 0x10, 0xb8,
6773 0xe6, 0x36, 0xac, 0x89, 0xe4, 0xfd, 0x92, 0xd1, 0x89, 0x9b, 0x3d, 0xf9,
6774 0xcb, 0xcb, 0xa3, 0x83, 0xcb, 0x63, 0x7e, 0xc1, 0x3e, 0x6f, 0xec, 0xe0,
6775 0x06, 0xcf, 0xe7, 0xfe, 0x6c, 0xf6, 0xe4, 0x87, 0x2f, 0x79, 0x40, 0xbd,
6776 0x2d, 0x89, 0x62, 0x20, 0xc4, 0xdd, 0xe8, 0x57, 0x9e, 0x29, 0xd2, 0x39,
6777 0xc8, 0x59, 0x2e, 0x0d, 0x33, 0xb2, 0xd9, 0x93, 0xdf, 0xf5, 0x9c, 0xef,
6778 0x96, 0x8e, 0xf2, 0xfe, 0x5d, 0x62, 0x81, 0xca, 0x19, 0xc0, 0xfb, 0xad,
6779 0x1c, 0x42, 0x81, 0x87, 0xf9, 0xf5, 0xd1, 0x30, 0x85, 0x78, 0x9b, 0x02,
6780 0x4e, 0x5f, 0xb7, 0xf0, 0x9a, 0x62, 0xcd, 0xfe, 0xa5, 0x3c, 0xdf, 0xdd,
6781 0x7b, 0xf2, 0x17, 0xcc, 0xe7, 0xcb, 0xde, 0x36, 0x9d, 0x0d, 0xbd, 0xbf,
6782 0xf0, 0xa7, 0xd3, 0x2a, 0x28, 0x3e, 0xaa, 0x9f, 0xe1, 0xbb, 0x94, 0x4a,
6783 0x94, 0x00, 0x56, 0x78, 0xd5, 0x03, 0x0e, 0x11, 0x4c, 0xe8, 0xbd, 0xa4,
6784 0x18, 0x19, 0xeb, 0x86, 0x85, 0xf2, 0xb1, 0x5e, 0x93, 0xe4, 0x3a, 0xcd,
6785 0x50, 0x2f, 0x4a, 0xdc, 0xb9, 0xf8, 0x5c, 0x78, 0x7e, 0x0c, 0xe4, 0x5d,
6786 0x19, 0xa3, 0xb2, 0x94, 0xf0, 0x37, 0x17, 0x0f, 0x96, 0x85, 0x84, 0x6f,
6787 0xc1, 0x1e, 0x97, 0x35, 0x6b, 0x59, 0xc5, 0x13, 0xf5, 0xeb, 0xd8, 0x45,
6788 0x04, 0x26, 0x01, 0xa9, 0x96, 0x07, 0xd8, 0x49, 0x12, 0xfb, 0x0f, 0x20,
6789 0x0f, 0x76, 0x66, 0xc7, 0x13, 0x4e, 0xa7, 0x75, 0x29, 0x17, 0xc1, 0x8d,
6790 0xdc, 0x4d, 0xbd, 0x6d, 0xbf, 0x34, 0xe0, 0x7f, 0xe1, 0x83, 0x52, 0xe6,
6791 0xb2, 0x74, 0xfe, 0x23, 0xc4, 0x19, 0xf5, 0xd9, 0xfa, 0x3a, 0x35, 0x92,
6792 0x99, 0x30, 0x0c, 0xb9, 0xce, 0xcb, 0xdd, 0x98, 0x54, 0x4d, 0x96, 0x14,
6793 0x8f, 0xc2, 0x1d, 0x3a, 0xc2, 0x50, 0x18, 0x62, 0x90, 0x0b, 0xc7, 0xef,
6794 0x8c, 0x46, 0x23, 0x5f, 0x00, 0x93, 0x97, 0x45, 0xa3, 0x4f, 0x28, 0xd2,
6795 0x11, 0xb0, 0x54, 0x62, 0x8e, 0x37, 0x61, 0xc8, 0xc3, 0x98, 0xde, 0x52,
6796 0xe8, 0x8b, 0xfa, 0x08, 0xdc, 0xd6, 0x08, 0xfc, 0x1b, 0x7d, 0xfd, 0x6c,
6797 0xdf, 0x52, 0xc3, 0x6f, 0xbb, 0x16, 0xe1, 0x91, 0xbe, 0x89, 0xdf, 0x51,
6798 0xab, 0xb4, 0x39, 0x3d, 0x95, 0xbb, 0xb9, 0x60, 0x09, 0x66, 0x2c, 0x37,
6799 0xe4, 0x44, 0x32, 0x2b, 0x65, 0xd2, 0xb4, 0x2b, 0x5a, 0xd1, 0x95, 0x95,
6800 0x5c, 0x7e, 0x8f, 0x74, 0x6f, 0xa9, 0xb4, 0xb0, 0x2c, 0xf8, 0x96, 0xc7,
6801 0x73, 0x6c, 0x27, 0xc8, 0xd2, 0x99, 0xcb, 0xda, 0x8e, 0x92, 0x96, 0xf2,
6802 0x7d, 0x19, 0x76, 0xff, 0xc0, 0x13, 0x9b, 0x6e, 0xa0, 0x70, 0x5c, 0xa2,
6803 0x37, 0x67, 0xea, 0x2a, 0x02, 0x5e, 0x3a, 0x78, 0xef, 0xaa, 0x62, 0xbc,
6804 0xd7, 0x50, 0x68, 0x23, 0x2c, 0x8b, 0xcd, 0xb4, 0x87, 0x12, 0x07, 0x3c,
6805 0x16, 0x29, 0x9f, 0x5a, 0x8b, 0x2e, 0x4c, 0xde, 0x98, 0x1b, 0x7f, 0x2a,
6806 0xd7, 0x55, 0x17, 0xcd, 0xa8, 0x78, 0x96, 0x25, 0x41, 0xdf, 0xeb, 0xbd,
6807 0x28, 0xbe, 0xe7, 0x42, 0xac, 0x09, 0x63, 0x25, 0x81, 0x71, 0x80, 0x47,
6808 0xe6, 0x34, 0xf0, 0x31, 0x7a, 0xea, 0x56, 0x91, 0x5a, 0x45, 0x18, 0xb1,
6809 0xde, 0xd9, 0xb7, 0xaa, 0x89, 0x42, 0xca, 0x69, 0xce, 0xbc, 0x14, 0xb5,
6810 0x1d, 0x99, 0x44, 0x51, 0x0d, 0x75, 0xbb, 0x9a, 0x73, 0xcf, 0x49, 0x45,
6811 0x8f, 0x55, 0x6e, 0x52, 0x20, 0x03, 0xd9, 0xc7, 0x21, 0x88, 0x0a, 0x9b,
6812 0x2d, 0x10, 0x99, 0xbb, 0x8f, 0xb8, 0xc8, 0xb4, 0xba, 0x9e, 0x18, 0x6a,
6813 0x9b, 0x0d, 0x5d, 0x4d, 0x5d, 0x87, 0xbe, 0x2a, 0xd2, 0xeb, 0x6b, 0xb9,
6814 0xb1, 0x45, 0xcd, 0xa1, 0x75, 0x0b, 0xd9, 0x29, 0xcf, 0x0a, 0x23, 0x92,
6815 0x1f, 0xd6, 0xcd, 0xe6, 0xa5, 0xf9, 0x7b, 0xcc, 0xe3, 0x52, 0x13, 0x66,
6816 0x8b, 0x46, 0xca, 0xba, 0x55, 0x28, 0x8c, 0x8a, 0x5c, 0x6c, 0xce, 0x95,
6817 0xa8, 0x47, 0x8f, 0xcf, 0x2e, 0x36, 0xc0, 0x63, 0x9d, 0xf9, 0xd4, 0x73,
6818 0x5b, 0x74, 0x70, 0x80, 0x79, 0xec, 0x89, 0x47, 0x85, 0xde, 0x3b, 0xe0,
6819 0x93, 0x14, 0x20, 0x9e, 0xc4, 0xfe, 0xc6, 0xb5, 0x11, 0xd5, 0x3c, 0xbd,
6820 0x5c, 0xe8, 0xf4, 0x24, 0x53, 0x3d, 0x94, 0xdf, 0x25, 0x9e, 0x88, 0xce,
6821 0x3b, 0x1b, 0x3d, 0x79, 0xa8, 0xee, 0x7e, 0xa7, 0x4c, 0x1a, 0xa1, 0x5d,
6822 0xa7, 0xaf, 0x30, 0xc8, 0xc6, 0xac, 0x8c, 0xa2, 0xa0, 0x49, 0x71, 0x93,
6823 0xe4, 0xa1, 0x8a, 0x97, 0xbe, 0x69, 0xc4, 0xda, 0x5a, 0xd4, 0x84, 0x1f,
6824 0x10, 0x49, 0x04, 0x57, 0x13, 0x29, 0x6b, 0x60, 0x7c, 0xdc, 0x0e, 0x25,
6825 0xe7, 0x23, 0xbf, 0x36, 0xca, 0x9e, 0x5b, 0xa4, 0x9e, 0x55, 0x8f, 0x85,
6826 0x10, 0x40, 0x06, 0xd8, 0xa0, 0x73, 0xc1, 0xfb, 0x83, 0x79, 0xcc, 0xf0,
6827 0x95, 0x5c, 0x70, 0x01, 0x58, 0x32, 0x08, 0x35, 0x1c, 0x69, 0x0d, 0x9d,
6828 0xda, 0xda, 0x7e, 0x0e, 0xa7, 0x21, 0xb2, 0x06, 0x1a, 0x51, 0x6e, 0x86,
6829 0xa4, 0x04, 0xc8, 0xea, 0xa9, 0x29, 0xf7, 0xc7, 0x73, 0xb4, 0x27, 0xb5,
6830 0x3d, 0xfa, 0xa1, 0x2d, 0x7b, 0x7e, 0x71, 0xf6, 0xd5, 0xc5, 0xf1, 0x78,
6831 0x1c, 0xbd, 0x3e, 0xbe, 0x94, 0x2b, 0xbf, 0x16, 0x03, 0xbe, 0xe6, 0x6b,
6832 0x7b, 0x84, 0x90, 0x83, 0x51, 0xc6, 0x18, 0xee, 0xc4, 0xfc, 0x09, 0x20,
6833 0xaf, 0xcf, 0x39, 0x9c, 0x06, 0x53, 0x0e, 0xd7, 0xf9, 0xb9, 0x42, 0xe9,
6834 0x6e, 0xe0, 0xf4, 0x07, 0xb0, 0x09, 0x51, 0x49, 0xe7, 0x43, 0xf7, 0xde,
6835 0x54, 0xd8, 0xc8, 0x02, 0x75, 0xba, 0x31, 0xcd, 0xe5, 0x3d, 0xe9, 0x7c,
6836 0x7a, 0xd3, 0x7f, 0x31, 0xbc, 0x3f, 0x44, 0x97, 0x79, 0xc5, 0xf4, 0x96,
6837 0xfc, 0xd7, 0x0b, 0x93, 0x8f, 0x3f, 0x44, 0xdf, 0x53, 0x9b, 0x33, 0x9a,
6838 0x75, 0x76, 0x24, 0xd3, 0x81, 0x3b, 0x46, 0xf9, 0x3c, 0x5f, 0x28, 0x04,
6839 0x14, 0xdd, 0x61, 0xa5, 0xd3, 0x55, 0x51, 0x8c, 0x1e, 0x2f, 0x3e, 0x0e,
6840 0x56, 0x0d, 0x61, 0x59, 0x51, 0x60, 0x9d, 0xfb, 0xb2, 0xd6, 0xc6, 0x8c,
6841 0xa2, 0xd3, 0xe4, 0xaa, 0x82, 0x41, 0xc2, 0x9f, 0xa3, 0xe6, 0x76, 0x98,
6842 0x6e, 0x76, 0x97, 0xeb, 0x04, 0xd1, 0x5f, 0x9f, 0x7c, 0xf6, 0xc9, 0xce,
6843 0x67, 0xf2, 0x57, 0xfb, 0xf3, 0xf9, 0xd3, 0x1d, 0xa5, 0x6d, 0xa6, 0x7f,
6844 0x3d, 0xdd, 0x7f, 0xba, 0xbb, 0xcf, 0x6c, 0x72, 0x3b, 0xfb, 0x3b, 0xf4,
6845 0xff, 0x9f, 0xea, 0x4f, 0x98, 0x32, 0xef, 0xf9, 0xde, 0x67, 0x9f, 0x02,
6846 0x12, 0xc3, 0xf2, 0x31, 0xa7, 0x8f, 0x0c, 0xab, 0x7c, 0x08, 0x52, 0x1b,
6847 0x18, 0x41, 0x7f, 0xa8, 0x3b, 0x24, 0x39, 0xc6, 0x3e, 0xe5, 0x98, 0xea,
6848 0xb5, 0x5c, 0x6f, 0xe6, 0x09, 0xd8, 0xec, 0xaf, 0x02, 0xae, 0x0f, 0x03,
6849 0x6e, 0x4b, 0xfa, 0xaf, 0x0e, 0x43, 0xdf, 0xae, 0xf0, 0x6f, 0xb0, 0x44,
6850 0xd5, 0xde, 0x11, 0xfc, 0x77, 0x40, 0x48, 0xf5, 0x4b, 0x3f, 0x6d, 0x09,
6851 0xc9, 0x1b, 0xa0, 0x99, 0xd2, 0xa5, 0xd2, 0xf7, 0xa6, 0x56, 0x5e, 0xd4,
6852 0x3d, 0xc5, 0x16, 0xe1, 0x42, 0x52, 0x05, 0xae, 0x04, 0x3b, 0xfc, 0x4b,
6853 0xbf, 0x27, 0x0e, 0x2c, 0x7e, 0x4b, 0xa5, 0x21, 0x6a, 0x7f, 0xcd, 0xa5,
6854 0x08, 0x74, 0x7c, 0xab, 0x26, 0x3c, 0x1b, 0x7e, 0xf9, 0xfd, 0x4c, 0xb1,
6855 0x56, 0xd3, 0x87, 0x5c, 0x66, 0x95, 0x54, 0x6a, 0xec, 0x18, 0x72, 0xab,
6856 0x39, 0x15, 0xa3, 0x5f, 0xd0, 0x9c, 0x1f, 0x11, 0x24, 0xd8, 0xad, 0xdc,
6857 0x30, 0x58, 0x9c, 0x54, 0xd0, 0x6d, 0x36, 0x1b, 0x8e, 0xc6, 0xd0, 0x4e,
6858 0x3c, 0x79, 0xd5, 0x89, 0xec, 0x50, 0xde, 0x50, 0xf3, 0xd3, 0x65, 0xab,
6859 0xd1, 0x2e, 0xbc, 0xcb, 0x71, 0xda, 0xcb, 0xf3, 0x26, 0xd9, 0xad, 0x4f,
6860 0xb1, 0x34, 0x06, 0xdf, 0xd3, 0x6f, 0x60, 0x3f, 0xb9, 0x4d, 0xf7, 0xe8,
6861 0xd0, 0x3c, 0xd0, 0xdd, 0xd5, 0xa9, 0xdc, 0x74, 0xc0, 0xf1, 0xae, 0x2d,
6862 0xe9, 0x9f, 0x03, 0x96, 0xdc, 0x35, 0x17, 0x1e, 0x44, 0xa8, 0x52, 0x8a,
6863 0xfe, 0x81, 0xd0, 0x66, 0xc5, 0x64, 0xe2, 0x5b, 0xa6, 0xc2, 0x86, 0xbf,
6864 0x77, 0xd8, 0x2d, 0x9c, 0x6b, 0x5a, 0x06, 0x2f, 0x16, 0xc9, 0x9f, 0x87,
6865 0xb9, 0xa7, 0x4e, 0xdb, 0x4d, 0xe2, 0xa2, 0x46, 0xda, 0xbd, 0xa1, 0x74,
6866 0xf0, 0x0b, 0xce, 0x6c, 0x0c, 0x6a, 0x28, 0xff, 0x6e, 0x63, 0x63, 0x7c,
6867 0x7e, 0x7c, 0x7c, 0x14, 0x9d, 0x9e, 0xbc, 0x3e, 0xb9, 0x0c, 0x0c, 0x72,
6868 0x77, 0x90, 0x98, 0xc3, 0xd5, 0x0a, 0xdc, 0x34, 0xa6, 0xc3, 0x93, 0xc4,
6869 0x6a, 0xe1, 0x01, 0x3d, 0xca, 0x17, 0x89, 0xa6, 0x34, 0xcc, 0x9b, 0xef,
6870 0xe1, 0xea, 0x0d, 0x36, 0x9b, 0x51, 0xf4, 0x65, 0x80, 0x8e, 0x8c, 0x4a,
6871 0x32, 0x6e, 0xa6, 0xae, 0x7e, 0xe7, 0xf0, 0x07, 0x05, 0x6b, 0xd4, 0x2d,
6872 0x27, 0xe5, 0xba, 0x74, 0x99, 0x36, 0x0a, 0x70, 0x6d, 0xf4, 0x8a, 0xe7,
6873 0x36, 0x11, 0xcc, 0x73, 0xe0, 0xa1, 0x03, 0x76, 0xef, 0x3e, 0x41, 0xd6,
6874 0xfc, 0x22, 0x95, 0x0c, 0xc8, 0x10, 0x58, 0xec, 0xca, 0x21, 0x5e, 0xe6,
6875 0xa2, 0xc7, 0xc3, 0x2f, 0x86, 0xb5, 0x6a, 0x0d, 0x55, 0x6b, 0xdf, 0x0a,
6876 0x8b, 0xa0, 0x3e, 0xd9, 0x71, 0xb9, 0x03, 0x4b, 0xe8, 0x1c, 0x35, 0xf5,
6877 0xf9, 0x63, 0xbb, 0x11, 0xd9, 0x23, 0x2b, 0xb6, 0xea, 0x8b, 0x55, 0xd6,
6878 0x3a, 0xee, 0x7e, 0x90, 0x77, 0x69, 0xfc, 0x9f, 0xec, 0xe0, 0x78, 0xbb,
6879 0x8a, 0x8b, 0x21, 0x59, 0x5e, 0x0f, 0x43, 0x73, 0xae, 0x8a, 0x44, 0x28,
6880 0xe8, 0x58, 0x5c, 0x3f, 0x89, 0xaf, 0xbc, 0xd8, 0xb0, 0x16, 0x7d, 0x02,
6881 0x48, 0x8e, 0xf0, 0xe4, 0x5c, 0x37, 0x00, 0x0f, 0x9d, 0x8b, 0xb4, 0x9b,
6882 0xb3, 0xd3, 0xdb, 0x3a, 0x9e, 0x07, 0xd5, 0x56, 0xd1, 0xeb, 0x28, 0x4e,
6883 0x07, 0x80, 0x5a, 0xe5, 0x56, 0x53, 0x1e, 0xa6, 0x8e, 0xa5, 0x6d, 0x5a,
6884 0x2f, 0xa2, 0xdd, 0xcf, 0x78, 0x1c, 0x1f, 0x37, 0x9e, 0x57, 0x79, 0x31,
6885 0x35, 0x44, 0x9b, 0x5c, 0x17, 0x82, 0xb4, 0x4f, 0xc9, 0x51, 0x40, 0x71,
6886 0x18, 0x99, 0x5d, 0x43, 0xc6, 0x02, 0xb9, 0xc7, 0xf7, 0x13, 0x0d, 0xab,
6887 0xc3, 0x33, 0x85, 0x38, 0xb7, 0x58, 0x48, 0x7c, 0xd6, 0xe8, 0xbc, 0xb0,
6888 0xaf, 0x55, 0x90, 0x7b, 0xfd, 0xc2, 0xa5, 0x85, 0xca, 0x34, 0xb0, 0x77,
6889 0x84, 0x64, 0xed, 0x3e, 0x9d, 0xc1, 0xaa, 0x36, 0x27, 0x00, 0xe4, 0x4f,
6890 0x84, 0x4f, 0x00, 0xd3, 0x08, 0x5d, 0x22, 0xe6, 0xe9, 0x7a, 0xa6, 0x06,
6891 0x0c, 0x0a, 0xcb, 0xc3, 0xb9, 0xb0, 0x09, 0xfb, 0x81, 0x8b, 0x63, 0xd6,
6892 0x43, 0x03, 0xac, 0x9a, 0x7b, 0xfe, 0x2b, 0x0c, 0xe2, 0xaf, 0xaa, 0xb9,
6893 0xf9, 0x15, 0x5e, 0x3b, 0xc1, 0xae, 0x8f, 0x99, 0x19, 0x3f, 0x82, 0x61,
6894 0xef, 0xee, 0x90, 0xfd, 0x3a, 0xcf, 0x9b, 0xb5, 0x96, 0xdb, 0x97, 0x52,
6895 0x0c, 0x6b, 0x88, 0xd9, 0xd9, 0xdd, 0xf9, 0x66, 0xfd, 0xac, 0x83, 0x53,
6896 0xfb, 0xd1, 0x97, 0xf7, 0x9e, 0x3e, 0xb2, 0x68, 0x67, 0x05, 0xee, 0xe5,
6897 0x89, 0x01, 0x21, 0x61, 0x08, 0xfa, 0x00, 0x4c, 0x6b, 0xd9, 0x48, 0xf0,
6898 0x93, 0xeb, 0x98, 0xbb, 0xff, 0x58, 0xef, 0x2d, 0x59, 0xa3, 0xd1, 0x95,
6899 0xd7, 0x0a, 0xcd, 0x96, 0x5f, 0x96, 0xec, 0x21, 0x5b, 0x82, 0x93, 0xcc,
6900 0x5f, 0x63, 0x5d, 0xde, 0xb7, 0x10, 0x41, 0x04, 0x6f, 0x8b, 0xe6, 0x1c,
6901 0xd4, 0x95, 0x84, 0x49, 0x4f, 0x91, 0x5c, 0xaf, 0x84, 0x69, 0x21, 0x97,
6902 0x6b, 0x3f, 0xd3, 0xe7, 0xea, 0x7e, 0x25, 0xdd, 0xcc, 0x28, 0x22, 0x91,
6903 0x27, 0x28, 0xde, 0x69, 0x6c, 0x26, 0xab, 0x98, 0x1c, 0xcd, 0x83, 0x81,
6904 0xfd, 0xb3, 0x53, 0x0e, 0x86, 0x41, 0x1b, 0x6c, 0x44, 0xcd, 0x1a, 0xae,
6905 0xc2, 0x0f, 0x37, 0x42, 0x02, 0xae, 0x08, 0x8a, 0x53, 0xf6, 0x9c, 0xe3,
6906 0xc5, 0x41, 0xb1, 0x4a, 0x22, 0x04, 0x68, 0x60, 0xa0, 0x52, 0x8b, 0x96,
6907 0xdc, 0xa7, 0x58, 0xe3, 0x97, 0x96, 0xa7, 0x2e, 0xac, 0xde, 0xec, 0xf7,
6908 0x3f, 0x3c, 0x7b, 0xf3, 0xea, 0xe4, 0x2b, 0xc7, 0x7e, 0x23, 0x4a, 0xdc,
6909 0x6a, 0x4b, 0xa2, 0x4d, 0x57, 0x58, 0xd7, 0x05, 0xbc, 0xb5, 0xf2, 0x9b,
6910 0x42, 0x70, 0x49, 0x3d, 0xbd, 0x0b, 0x7f, 0x00, 0x05, 0x92, 0x3d, 0x61,
6911 0x5f, 0xb9, 0x50, 0x4c, 0x94, 0x5b, 0xde, 0xf3, 0xd0, 0xe0, 0xe7, 0x92,
6912 0x54, 0x8d, 0xb8, 0xa8, 0x56, 0x4b, 0x87, 0x24, 0x0c, 0x2a, 0xc7, 0x29,
6913 0xdf, 0xaf, 0x25, 0x88, 0xaf, 0x96, 0xa2, 0x9a, 0x34, 0xcf, 0xb3, 0xe6,
6914 0xd8, 0x95, 0x33, 0x80, 0x3d, 0x0b, 0xca, 0xc9, 0xa1, 0x07, 0x40, 0x0b,
6915 0x9e, 0x33, 0x67, 0x82, 0xc0, 0x10, 0x34, 0x6f, 0xa1, 0x1c, 0xae, 0xbf,
6916 0x2b, 0x03, 0xb5, 0xea, 0xbb, 0x0b, 0xb9, 0x99, 0xf1, 0xb8, 0x51, 0x34,
6917 0xd5, 0x61, 0x72, 0x1c, 0x04, 0xd8, 0x87, 0x8a, 0x5c, 0xb1, 0x1d, 0x0f,
6918 0x53, 0xb2, 0xec, 0xd2, 0x18, 0x11, 0x4b, 0x84, 0x3c, 0xf1, 0x93, 0x97,
6919 0x1c, 0xa1, 0xd9, 0x67, 0xda, 0xeb, 0x85, 0x70, 0x68, 0x85, 0x59, 0xa1,
6920 0xaa, 0x25, 0x3d, 0x37, 0xf5, 0xc9, 0x55, 0x90, 0x5e, 0x26, 0x70, 0x41,
6921 0x13, 0x3a, 0x71, 0x17, 0xb3, 0xaf, 0xa5, 0xff, 0xfb, 0xfe, 0xb0, 0x7c,
6922 0x58, 0x4c, 0xf2, 0xb9, 0x65, 0x5f, 0x38, 0xe6, 0x05, 0x7b, 0xc8, 0x6a,
6923 0x39, 0xc5, 0x52, 0x4f, 0x1c, 0x9f, 0x0e, 0x3c, 0x94, 0x1e, 0x32, 0xe5,
6924 0xfb, 0x2f, 0xd5, 0x50, 0x10, 0x29, 0xb2, 0x51, 0x38, 0x1a, 0x90, 0x24,
6925 0x9b, 0xce, 0x73, 0x95, 0x6a, 0xce, 0xfb, 0xc6, 0x4c, 0xd5, 0x87, 0xce,
6926 0xb1, 0xbf, 0x7c, 0xc5, 0xce, 0x0e, 0x54, 0x3a, 0x20, 0x73, 0x87, 0x9d,
6927 0xc3, 0xdf, 0xd9, 0x00, 0xf9, 0x6d, 0xf9, 0x85, 0x42, 0xf3, 0x8d, 0x3f,
6928 0x85, 0x1a, 0x92, 0xd2, 0x08, 0xd4, 0xd5, 0xbf, 0x8a, 0x6f, 0x51, 0x22,
6929 0x80, 0x3f, 0xd8, 0xc7, 0xed, 0xd1, 0xc6, 0xd4, 0x93, 0x3c, 0xc5, 0xc5,
6930 0xb5, 0x12, 0x93, 0x69, 0x50, 0x0d, 0x97, 0x44, 0x57, 0xb0, 0xc2, 0xf9,
6931 0x28, 0xd9, 0x28, 0x71, 0xe0, 0x19, 0x98, 0x4f, 0x2b, 0x49, 0xf0, 0xd3,
6932 0x54, 0x28, 0xf1, 0x4e, 0x3a, 0x41, 0x0c, 0x34, 0xce, 0xef, 0x1d, 0x24,
6933 0x25, 0xf6, 0x67, 0x99, 0x11, 0xe9, 0x7b, 0x57, 0xad, 0x1e, 0x66, 0xc1,
6934 0x6b, 0xec, 0xcf, 0xc3, 0x4d, 0x38, 0x51, 0x1f, 0x8a, 0x7c, 0x0a, 0xb6,
6935 0x04, 0xb3, 0xf2, 0x21, 0x03, 0x28, 0x29, 0x7d, 0x13, 0xf2, 0xfb, 0x97,
6936 0xca, 0x43, 0x41, 0xfb, 0x59, 0x99, 0x45, 0x94, 0x31, 0xed, 0xb3, 0x1d,
6937 0xf5, 0xc4, 0x55, 0x8a, 0x59, 0x2d, 0xa3, 0x83, 0x8b, 0x63, 0xb2, 0x6c,
6938 0xaf, 0x33, 0x30, 0x47, 0x70, 0x0f, 0xb5, 0xd2, 0x54, 0xa6, 0x15, 0x7b,
6939 0x32, 0xdb, 0x1f, 0xfc, 0xc1, 0xfb, 0xe0, 0x4d, 0x16, 0x26, 0xc5, 0x07,
6940 0x48, 0x5a, 0xb5, 0x17, 0xb9, 0xa9, 0xb1, 0x97, 0x42, 0xeb, 0x30, 0x79,
6941 0x81, 0x88, 0x14, 0x47, 0x4b, 0xe8, 0x53, 0xb9, 0x31, 0x97, 0x9e, 0xb7,
6942 0xd4, 0x7a, 0x48, 0x59, 0x6a, 0x73, 0x8d, 0x5d, 0xed, 0xf3, 0x11, 0xfe,
6943 0x6e, 0x64, 0x84, 0xfa, 0xad, 0x5a, 0x04, 0xd4, 0x8b, 0xd3, 0xa0, 0xdb,
6944 0x7b, 0xf4, 0x77, 0x9c, 0x33, 0x6c, 0x8b, 0x34, 0xed, 0x82, 0xc4, 0xc1,
6945 0xec, 0xc5, 0x91, 0x3d, 0x0b, 0x8c, 0x5f, 0xc9, 0xcd, 0x43, 0x09, 0x68,
6946 0xf8, 0xa8, 0xd9, 0xf8, 0x89, 0x4b, 0xcd, 0x83, 0xd2, 0xeb, 0xc0, 0x4c,
6947 0xf7, 0x2a, 0x4b, 0x05, 0x63, 0x86, 0x27, 0xcc, 0xc6, 0x23, 0x25, 0x60,
6948 0x6b, 0xfa, 0xa9, 0xd3, 0xcd, 0xfb, 0x7b, 0x37, 0x5a, 0xdf, 0x07, 0xf7,
6949 0x4b, 0xfe, 0xd1, 0x4b, 0x47, 0x4e, 0x86, 0x52, 0xd6, 0xfc, 0x21, 0xa8,
6950 0x54, 0x84, 0x4f, 0xf9, 0x2f, 0xf8, 0x31, 0xc0, 0x6f, 0x46, 0xf1, 0x58,
6951 0x23, 0x18, 0xd2, 0x12, 0x1d, 0x61, 0x47, 0x24, 0xc6, 0x07, 0x0d, 0x3d,
6952 0x09, 0x4d, 0xe3, 0xe1, 0x37, 0xdb, 0x56, 0x74, 0x93, 0x5d, 0x39, 0x9c,
6953 0xcd, 0x6b, 0x1b, 0xbe, 0x4c, 0x6a, 0x55, 0x3a, 0x5d, 0xba, 0x50, 0x6f,
6954 0xd8, 0xa3, 0xb9, 0xe8, 0xcf, 0xe7, 0x5e, 0xe1, 0xdb, 0x63, 0xbc, 0xaa,
6955 0xc8, 0xac, 0xf3, 0x06, 0x93, 0xea, 0x2e, 0xa6, 0xff, 0x7f, 0xa8, 0xe5,
6956 0x39, 0x70, 0xfd, 0x24, 0x4e, 0x03, 0x72, 0x04, 0x51, 0xc8, 0x15, 0x01,
6957 0x5c, 0xe0, 0x2e, 0x2d, 0x2d, 0x0e, 0x49, 0xb2, 0x3d, 0x55, 0x6c, 0x84,
6958 0xf0, 0x04, 0x24, 0xd5, 0x34, 0x98, 0xca, 0x64, 0x7a, 0x93, 0x0b, 0xb4,
6959 0x96, 0x26, 0x2d, 0x48, 0xc1, 0xec, 0x45, 0xff, 0xa9, 0x32, 0xf0, 0x8d,
6960 0xcf, 0xdc, 0x63, 0x41, 0x18, 0x09, 0xf5, 0xde, 0xc8, 0x0b, 0xc4, 0xf1,
6961 0xf7, 0x97, 0x17, 0x07, 0xd1, 0xd7, 0xc7, 0x07, 0x47, 0xc7, 0x17, 0xe3,
6962 0xc6, 0xa1, 0xaf, 0x28, 0x10, 0xb1, 0xd0, 0xd8, 0x1f, 0x0c, 0xd3, 0xd8,
6963 0xf8, 0x00, 0x14, 0xbc, 0x6f, 0x5a, 0x8f, 0x84, 0x87, 0x37, 0x12, 0xed,
6964 0x0f, 0xbe, 0x10, 0x49, 0xe0, 0x00, 0x34, 0xab, 0x25, 0x94, 0x8d, 0x6b,
6965 0x63, 0x4a, 0x1a, 0x8a, 0xe1, 0x0c, 0xe6, 0x3d, 0x0f, 0xd3, 0x66, 0x3c,
6966 0xe7, 0x9b, 0x3f, 0x4c, 0x66, 0xb9, 0x65, 0x04, 0xd6, 0x57, 0xee, 0x6b,
6967 0x9f, 0x7c, 0x1d, 0xa8, 0x2d, 0x3d, 0x64, 0xd4, 0x81, 0xd8, 0xfb, 0x7e,
6968 0x48, 0xdf, 0x1d, 0xd2, 0xe4, 0x0f, 0x99, 0x96, 0xef, 0x21, 0x29, 0x7b,
6969 0x0d, 0x6f, 0x60, 0xfd, 0xf3, 0x1b, 0x52, 0xb9, 0xbe, 0xb5, 0x93, 0xbe,
6970 0xee, 0x6c, 0x89, 0x77, 0xd7, 0x9c, 0x2b, 0xb9, 0x34, 0x6f, 0x10, 0x38,
6971 0x54, 0x03, 0x23, 0x59, 0x77, 0x50, 0x2b, 0xc7, 0x45, 0x71, 0x4a, 0xfe,
6972 0x9a, 0xa9, 0xb0, 0x30, 0x74, 0x44, 0x87, 0x00, 0x5b, 0x87, 0xf6, 0x9e,
6973 0x1c, 0xea, 0xf0, 0x8b, 0x18, 0x67, 0x2c, 0x75, 0x4b, 0x1f, 0x0a, 0xcf,
6974 0x07, 0xc4, 0x42, 0x14, 0xac, 0x5f, 0xd6, 0x42, 0xa5, 0xea, 0x17, 0xd5,
6975 0x62, 0x62, 0xda, 0x1c, 0xf7, 0xc1, 0xc9, 0xbc, 0x61, 0xfc, 0xf9, 0x93,
6976 0x56, 0xc7, 0x40, 0xdf, 0x15, 0x30, 0x18, 0x5f, 0xea, 0xe1, 0xea, 0x94,
6977 0xa2, 0x88, 0xfc, 0x8e, 0xd9, 0xab, 0x41, 0x42, 0x50, 0x28, 0xcc, 0x28,
6978 0xba, 0x04, 0x10, 0xb9, 0x7b, 0x2e, 0x89, 0xbe, 0xce, 0x4b, 0x9c, 0x05,
6979 0xed, 0xc7, 0xf9, 0x90, 0xef, 0x9a, 0x7e, 0xbc, 0xa1, 0xa1, 0x2e, 0xc7,
6980 0x8b, 0x09, 0x22, 0x59, 0xa8, 0xaf, 0xf3, 0x83, 0xcb, 0xaf, 0x11, 0x68,
6981 0x85, 0x08, 0x1f, 0x81, 0xc8, 0xc4, 0xc2, 0x6b, 0xed, 0xbc, 0x2c, 0x77,
6982 0x81, 0x13, 0xfb, 0xd7, 0x08, 0xfe, 0xcc, 0x9e, 0x44, 0x20, 0x0f, 0x2e,
6983 0x4a, 0xf0, 0x85, 0xa5, 0xea, 0x78, 0xac, 0x97, 0x02, 0x03, 0x02, 0xde,
6984 0x25, 0xdd, 0x39, 0xd8, 0x65, 0x5f, 0xb2, 0xd2, 0xfb, 0x32, 0x26, 0x08,
6985 0x3d, 0x1b, 0x73, 0x7c, 0xe3, 0x09, 0xe9, 0x56, 0xf1, 0x8b, 0x2b, 0x4d,
6986 0xb7, 0x1d, 0xd0, 0x9a, 0x76, 0xf3, 0xe7, 0x05, 0x5b, 0xfa, 0x8b, 0xc5,
6987 0xc3, 0xa8, 0x4d, 0x8b, 0x13, 0x7d, 0xb9, 0xaa, 0xea, 0x6a, 0xa5, 0x41,
6988 0xfa, 0xea, 0x2c, 0xcb, 0x22, 0xcf, 0xab, 0x3a, 0x6d, 0x2a, 0x66, 0x47,
6989 0x76, 0xb4, 0x10, 0x25, 0x4a, 0x5f, 0xb8, 0xa9, 0x4c, 0xed, 0xee, 0xd0,
6990 0x30, 0x8c, 0x27, 0x65, 0x3e, 0x5f, 0x55, 0x01, 0x08, 0xfb, 0x97, 0xf5,
6991 0x39, 0xe8, 0xf4, 0xe6, 0xc9, 0x28, 0x31, 0x81, 0x62, 0x14, 0x71, 0x11,
6992 0xd3, 0x4d, 0x9f, 0xcc, 0x4b, 0xc4, 0x1d, 0x8b, 0x3c, 0xab, 0x57, 0xab,
6993 0x02, 0xde, 0x7b, 0x6b, 0x63, 0x63, 0x6c, 0x8b, 0xcd, 0x0c, 0x9d, 0xed,
6994 0x45, 0x07, 0x67, 0x04, 0x68, 0x40, 0x25, 0x6e, 0x30, 0xa5, 0xbf, 0x18,
6995 0x69, 0x5a, 0x22, 0x6b, 0x0a, 0x15, 0x2e, 0x6b, 0x9c, 0x96, 0xf5, 0x41,
6996 0xe1, 0x57, 0x2e, 0x72, 0x61, 0x49, 0x66, 0x97, 0xb9, 0x31, 0x87, 0x6b,
6997 0xe4, 0xce, 0x0b, 0x44, 0x2d, 0x4d, 0xbd, 0x93, 0x56, 0x97, 0x0f, 0x01,
6998 0x2b, 0x6d, 0xea, 0x50, 0xb9, 0xdc, 0xc9, 0xed, 0xff, 0xda, 0x8e, 0x06,
6999 0xc2, 0x85, 0xd5, 0xc1, 0xa5, 0xb3, 0x8a, 0xfe, 0x3f, 0x40, 0xb0, 0x94,
7000 0xd1, 0x94, 0xdb, 0x6c, 0xd0, 0x80, 0x8e, 0xe8, 0x0a, 0x75, 0x53, 0x4c,
7001 0xbd, 0xf4, 0x93, 0x75, 0x90, 0xdc, 0xf3, 0xfd, 0xc5, 0xee, 0x08, 0xca,
7002 0xe2, 0x21, 0xd5, 0x45, 0x1d, 0x2f, 0x12, 0xb8, 0x2f, 0xae, 0x9c, 0x57,
7003 0x8f, 0x0b, 0xfd, 0x49, 0xd9, 0x3b, 0x31, 0xeb, 0x51, 0xf4, 0xc5, 0x22,
7004 0xa8, 0x92, 0xea, 0xee, 0xee, 0xed, 0x65, 0x54, 0xe6, 0xf2, 0x5f, 0xcb,
7005 0x3c, 0x52, 0x8c, 0x97, 0x8a, 0xbf, 0x5e, 0xa3, 0xb4, 0xc2, 0x96, 0x52,
7006 0x5c, 0x19, 0xee, 0x54, 0x60, 0x75, 0x16, 0x98, 0xb4, 0x3e, 0x9a, 0x11,
7007 0xc0, 0x71, 0x4b, 0xb0, 0x23, 0x2a, 0x1f, 0x08, 0x63, 0xca, 0x98, 0xaf,
7008 0x55, 0x12, 0xb7, 0xb9, 0x4a, 0x9c, 0x5d, 0x64, 0xec, 0x44, 0xb5, 0x64,
7009 0x0e, 0xb7, 0x50, 0xbe, 0xf7, 0x7a, 0xf4, 0x23, 0x39, 0x1e, 0x31, 0xba,
7010 0xfb, 0x38, 0xad, 0x42, 0x8b, 0xc0, 0x46, 0xa4, 0x95, 0x26, 0x05, 0xc6,
7011 0x11, 0x42, 0x53, 0x3c, 0x6e, 0xf3, 0x9a, 0x73, 0x3d, 0xd4, 0x23, 0xa5,
7012 0xbc, 0x22, 0x70, 0x7f, 0xdd, 0xa4, 0x8a, 0x2e, 0x95, 0x49, 0x37, 0x77,
7013 0x20, 0xfb, 0x33, 0xe0, 0xde, 0x63, 0x68, 0x81, 0x8f, 0xae, 0x3a, 0x00,
7014 0xc4, 0xa8, 0xbd, 0x5b, 0x46, 0x8e, 0x9a, 0x53, 0x4f, 0x90, 0x93, 0x30,
7015 0xab, 0x1c, 0xb3, 0xe2, 0xe0, 0xce, 0x1f, 0xf5, 0xe9, 0xf0, 0x7b, 0x8c,
7016 0x62, 0xcd, 0x22, 0x3f, 0x1f, 0xa5, 0x16, 0x8e, 0xdf, 0xc5, 0x95, 0x54,
7017 0x80, 0x1b, 0x60, 0xba, 0xb4, 0xf2, 0x83, 0xb5, 0x62, 0x51, 0xc1, 0xbc,
7018 0x6f, 0x0d, 0x74, 0x82, 0x5c, 0xc2, 0xbd, 0xc6, 0x99, 0xc5, 0x22, 0x0c,
7019 0x22, 0x4e, 0xb5, 0x2a, 0x55, 0x92, 0xc4, 0x5d, 0x56, 0xc5, 0x6a, 0x5a,
7020 0x63, 0xb5, 0x83, 0x30, 0xd4, 0xe2, 0xf3, 0x6e, 0x7a, 0xf3, 0xf0, 0x56,
7021 0xbf, 0x19, 0xd7, 0x52, 0x5a, 0xf4, 0xc9, 0xf0, 0x13, 0x5b, 0xd1, 0x09,
7022 0xd3, 0x88, 0xcb, 0xf5, 0x5f, 0x6e, 0x27, 0xd4, 0x7f, 0x27, 0x60, 0xc3,
7023 0x73, 0x97, 0x50, 0xdf, 0xa8, 0x42, 0xcd, 0xe9, 0x09, 0xc1, 0xa9, 0xab,
7024 0x26, 0x18, 0x4c, 0x8e, 0x22, 0x52, 0x9a, 0x42, 0x18, 0x34, 0xec, 0xac,
7025 0xdc, 0x70, 0x54, 0x82, 0xf4, 0xb9, 0xa1, 0x82, 0x55, 0x25, 0x04, 0xbc,
7026 0x4d, 0x13, 0x69, 0x95, 0x48, 0x5c, 0x15, 0x9e, 0xd2, 0xd3, 0x11, 0x36,
7027 0xb0, 0xaa, 0xe0, 0x4c, 0x72, 0x96, 0xa1, 0x92, 0xb7, 0xe9, 0xfc, 0x8d,
7028 0x5c, 0x65, 0x78, 0xfd, 0x42, 0xd3, 0x90, 0x68, 0x9f, 0x8a, 0xe7, 0xc2,
7029 0x48, 0xd2, 0x12, 0xa2, 0x23, 0xf3, 0xa6, 0x42, 0xd9, 0x60, 0xc2, 0xf8,
7030 0x4e, 0x63, 0x8b, 0x74, 0x72, 0xee, 0x3e, 0x41, 0x5d, 0xe0, 0x11, 0xf7,
7031 0xe7, 0xc9, 0x4e, 0x3f, 0x28, 0x23, 0xb4, 0x29, 0xa8, 0xff, 0x1c, 0xf7,
7032 0x1e, 0xf6, 0x1c, 0x62, 0x80, 0xe2, 0xb7, 0x60, 0x84, 0xdb, 0x56, 0x47,
7033 0x57, 0xa8, 0x89, 0x5f, 0xda, 0x99, 0xdd, 0xe7, 0x7b, 0xa3, 0xdd, 0x4f,
7034 0x3e, 0x1b, 0xed, 0x8c, 0x76, 0x77, 0x58, 0xb3, 0x70, 0x57, 0x82, 0xce,
7035 0xc9, 0xbc, 0x74, 0x7c, 0xaa, 0xf6, 0x5e, 0xfb, 0x9b, 0x6f, 0x8e, 0x2f,
7036 0xbf, 0x3b, 0xbb, 0xf8, 0x26, 0x3a, 0x79, 0x73, 0x79, 0x7c, 0xf1, 0xea,
7037 0xe0, 0xf0, 0x63, 0xf9, 0xc9, 0x43, 0x87, 0x75, 0x50, 0x46, 0x37, 0xf1,
7038 0x13, 0xd3, 0xf6, 0x0a, 0xfa, 0x39, 0x4b, 0xaa, 0x9b, 0x9d, 0xfd, 0xdd,
7039 0x47, 0x49, 0x8d, 0x3b, 0x1c, 0x83, 0xfe, 0x7d, 0x1b, 0xd4, 0x2e, 0x0f,
7040 0x6a, 0x7d, 0x2b, 0x8e, 0x2a, 0x71, 0x2c, 0x00, 0x2b, 0x07, 0xce, 0x85,
7041 0x82, 0x47, 0x95, 0x96, 0x74, 0x52, 0xc4, 0xe6, 0x92, 0x9a, 0x08, 0xb3,
7042 0xaa, 0x64, 0xd7, 0x2a, 0xd7, 0x8b, 0x82, 0xd0, 0x55, 0xdd, 0x6e, 0x48,
7043 0xc9, 0xda, 0x4a, 0x1d, 0x29, 0x42, 0x94, 0x3a, 0x83, 0x71, 0x67, 0x0a,
7044 0x59, 0x93, 0xd7, 0x58, 0x5a, 0xb4, 0x90, 0xa2, 0x10, 0x00, 0xce, 0x5c,
7045 0xa2, 0x88, 0x23, 0x21, 0xd8, 0x88, 0x02, 0x0b, 0x1d, 0x7d, 0xad, 0x57,
7046 0x1d, 0x0e, 0x31, 0xb4, 0x0d, 0x96, 0xd2, 0xd2, 0xb0, 0xcd, 0x18, 0x58,
7047 0xcd, 0x29, 0x7a, 0xa8, 0x1d, 0xc1, 0x6e, 0x08, 0x7a, 0x23, 0x9f, 0x82,
7048 0x29, 0x65, 0xcc, 0xd8, 0x75, 0x8e, 0x5d, 0x39, 0x9d, 0x90, 0x3c, 0x21,
7049 0x96, 0x9f, 0x91, 0xf8, 0x73, 0xeb, 0x65, 0x8d, 0x35, 0x30, 0x92, 0xca,
7050 0x39, 0xe1, 0xeb, 0x62, 0x64, 0x03, 0xa2, 0x39, 0x2b, 0xe2, 0x7b, 0x94,
7051 0x7f, 0x48, 0x3d, 0x4b, 0xe7, 0x46, 0xbd, 0xfa, 0x0f, 0x9b, 0x4c, 0x7e,
7052 0xce, 0xa3, 0xf3, 0xe3, 0xd7, 0x43, 0xab, 0x5b, 0x4a, 0x7f, 0x17, 0x37,
7053 0x94, 0xf1, 0x3d, 0x4a, 0x72, 0xcf, 0x32, 0xc9, 0x0c, 0x50, 0x03, 0x9d,
7054 0xa8, 0x08, 0xa0, 0x70, 0x00, 0xbc, 0x69, 0x1c, 0x23, 0xa4, 0xe2, 0x46,
7055 0x0d, 0x78, 0xe9, 0x58, 0x45, 0x6b, 0x34, 0x99, 0xbc, 0x9e, 0x8a, 0x5a,
7056 0x8e, 0x36, 0x1d, 0x52, 0x97, 0xbf, 0x07, 0x38, 0x2a, 0xd0, 0x02, 0x0e,
7057 0x20, 0x90, 0x5b, 0xe2, 0xf5, 0xf9, 0x37, 0x87, 0xe3, 0xdf, 0xef, 0xee,
7058 0x69, 0x77, 0xb6, 0x46, 0x9e, 0xf3, 0xb6, 0x95, 0x93, 0x0f, 0x75, 0x1d,
7059 0xf6, 0xd1, 0x32, 0xac, 0xb1, 0xc1, 0xb1, 0x18, 0x9b, 0x2e, 0x33, 0x68,
7060 0xab, 0x96, 0x1a, 0x04, 0xf8, 0xd7, 0x83, 0x33, 0x2e, 0x5d, 0x5d, 0x51,
7061 0x0e, 0x86, 0xa0, 0xfc, 0x8c, 0x16, 0x80, 0xa9, 0x1c, 0xde, 0x2f, 0xce,
7062 0xec, 0x47, 0xd2, 0xb2, 0xb6, 0x86, 0x14, 0x72, 0x8f, 0x69, 0x69, 0xae,
7063 0x39, 0xcf, 0xb7, 0xff, 0x2d, 0x53, 0xab, 0xea, 0xa1, 0x6e, 0x1c, 0x3d,
7064 0xfe, 0x33, 0xd8, 0x00, 0x0a, 0x61, 0x9f, 0x59, 0x89, 0xa9, 0xcc, 0x57,
7065 0x7d, 0xe0, 0xa7, 0xcf, 0x68, 0xa1, 0x68, 0x67, 0x09, 0x6d, 0x03, 0x2b,
7066 0x85, 0x7c, 0xce, 0x97, 0x16, 0xf7, 0xc8, 0x51, 0xc1, 0xd5, 0x35, 0x96,
7067 0x02, 0x26, 0x7d, 0x33, 0x8a, 0xbe, 0x4e, 0x32, 0xce, 0x9b, 0x67, 0xd8,
7068 0x9d, 0x25, 0x5f, 0x01, 0x1c, 0xc8, 0x35, 0xee, 0x50, 0xf3, 0xeb, 0x34,
7069 0x89, 0x95, 0x23, 0x93, 0x74, 0x5d, 0x29, 0x77, 0x5b, 0xab, 0x77, 0x13,
7070 0x33, 0x44, 0x4f, 0x09, 0x3d, 0x1d, 0xd7, 0x05, 0x3f, 0x20, 0x0d, 0x6c,
7071 0xd6, 0x99, 0x2e, 0xc1, 0x5f, 0x8f, 0xe6, 0x74, 0x9b, 0x23, 0xca, 0xa4,
7072 0xfe, 0xe4, 0x1b, 0x10, 0x32, 0xb3, 0x9f, 0x50, 0xee, 0x5a, 0x5e, 0xa9,
7073 0xcc, 0x8a, 0x1b, 0x76, 0x7a, 0x94, 0x74, 0xdc, 0xc4, 0xd9, 0xf4, 0x61,
7074 0x34, 0x23, 0x2b, 0x96, 0xdd, 0x66, 0xa3, 0xd5, 0xed, 0x76, 0xb0, 0x4d,
7075 0x59, 0xe5, 0xdf, 0x08, 0x45, 0x40, 0xdd, 0xe5, 0x6d, 0xf5, 0x54, 0xdb,
7076 0x0c, 0x5e, 0x71, 0x6d, 0x4f, 0xb0, 0x48, 0x58, 0xb2, 0xbf, 0x6c, 0xcf,
7077 0xb5, 0x5c, 0x57, 0xc7, 0x91, 0xe3, 0x02, 0xe6, 0x16, 0x46, 0xcb, 0x64,
7078 0xb1, 0xef, 0xd2, 0x91, 0x4d, 0x3f, 0x68, 0x09, 0x01, 0x77, 0xa5, 0x08,
7079 0xdc, 0xb3, 0x59, 0x72, 0x3d, 0x57, 0x83, 0x22, 0xbc, 0xb4, 0x78, 0x6e,
7080 0xe7, 0x76, 0x1a, 0x88, 0x5c, 0x75, 0xee, 0x85, 0x62, 0x15, 0xb6, 0x3a,
7081 0xc9, 0x61, 0xa5, 0xb8, 0x5a, 0x79, 0x18, 0x05, 0xcd, 0x7d, 0x23, 0x4a,
7082 0x1c, 0x02, 0x5a, 0x62, 0x36, 0x83, 0xd5, 0xb9, 0x63, 0x70, 0x24, 0x0d,
7083 0x3c, 0x31, 0x31, 0x2b, 0x24, 0x04, 0x44, 0xe0, 0x0a, 0x8d, 0x46, 0xd8,
7084 0xd3, 0x6a, 0x96, 0xca, 0x5e, 0xa1, 0x5f, 0xdf, 0x3d, 0x61, 0x5f, 0xf7,
7085 0xe5, 0xe9, 0x78, 0x20, 0xf2, 0x90, 0x25, 0xf7, 0x81, 0x64, 0x09, 0x77,
7086 0xbd, 0x8a, 0x1f, 0x7b, 0x7e, 0x04, 0xbe, 0x66, 0xe5, 0xe3, 0x0b, 0xe9,
7087 0x8d, 0x68, 0x06, 0x1f, 0x24, 0xf3, 0x59, 0x10, 0x36, 0x11, 0x8a, 0x27,
7088 0xe6, 0xee, 0x58, 0x79, 0x25, 0x31, 0x88, 0x1c, 0xd9, 0x0b, 0xd3, 0xe8,
7089 0x91, 0xc1, 0xf4, 0x64, 0x10, 0x0d, 0xf7, 0x40, 0xa1, 0xb3, 0x5b, 0x9f,
7090 0xc8, 0xb8, 0x12, 0xee, 0x3e, 0x6e, 0x83, 0x5a, 0xb2, 0x56, 0x54, 0x25,
7091 0x6c, 0xaa, 0x58, 0xdf, 0xd1, 0xfb, 0xfc, 0x9f, 0x3d, 0x1d, 0xd4, 0xdd,
7092 0x2e, 0xa0, 0xdb, 0x42, 0x26, 0x39, 0x7f, 0x68, 0x9b, 0x0d, 0x7b, 0x8f,
7093 0xae, 0x2c, 0x92, 0x24, 0xee, 0x53, 0xc7, 0xbb, 0x2c, 0xd4, 0xfb, 0x70,
7094 0x84, 0x2a, 0x4f, 0xa7, 0x75, 0x80, 0xa6, 0x51, 0x5d, 0xdc, 0x59, 0x74,
7095 0xb7, 0x67, 0x91, 0x66, 0xfe, 0x8d, 0x4d, 0x9e, 0xb8, 0xea, 0xbd, 0x22,
7096 0x69, 0xe5, 0x2e, 0x32, 0xdc, 0x2d, 0x90, 0x5c, 0x4e, 0x7d, 0x22, 0xb9,
7097 0x25, 0x4d, 0x52, 0xd3, 0x34, 0x79, 0xa6, 0x4e, 0x05, 0xc9, 0x7b, 0x8f,
7098 0x33, 0xa1, 0x85, 0x26, 0x5b, 0xd8, 0x83, 0x9c, 0x00, 0x01, 0xc7, 0x9e,
7099 0x26, 0x0b, 0xb6, 0x5c, 0x2d, 0xb4, 0x5c, 0x1d, 0x14, 0xf1, 0x00, 0xc7,
7100 0x6d, 0x15, 0x91, 0x26, 0x4e, 0x05, 0xf2, 0x37, 0x7f, 0x70, 0xbc, 0xbe,
7101 0xea, 0x2c, 0xf5, 0x13, 0xc5, 0x1e, 0x30, 0xa1, 0xd6, 0x83, 0xbc, 0xdc,
7102 0xa4, 0xe2, 0xc3, 0x00, 0x42, 0x15, 0x13, 0x46, 0xaa, 0xa2, 0x1f, 0xd1,
7103 0xee, 0x5b, 0x71, 0xa3, 0x55, 0x0e, 0x08, 0xac, 0x33, 0x18, 0xa4, 0x8d,
7104 0xb1, 0x10, 0x75, 0xf6, 0x43, 0x1d, 0x39, 0xfc, 0x9c, 0xe7, 0xa0, 0xec,
7105 0xfb, 0x49, 0x53, 0x26, 0xf1, 0xfa, 0x0c, 0x68, 0x78, 0xc4, 0xca, 0x22,
7106 0x9d, 0x17, 0x56, 0xfc, 0xb9, 0x9f, 0xbc, 0x67, 0x03, 0xa9, 0xaf, 0x5f,
7107 0x95, 0x5f, 0x0b, 0x23, 0x00, 0x26, 0xf7, 0xfc, 0xe4, 0x8d, 0xd4, 0x33,
7108 0x76, 0x1b, 0x29, 0x61, 0xfa, 0xc4, 0x0d, 0x29, 0xc5, 0x8d, 0xfe, 0xc4,
7109 0xca, 0x39, 0x11, 0x89, 0xbf, 0x89, 0x85, 0x8d, 0x37, 0x48, 0xaa, 0xdf,
7110 0xba, 0x58, 0xc9, 0xd7, 0xfb, 0x7c, 0x48, 0x96, 0xe5, 0xbc, 0xdf, 0xa8,
7111 0xd1, 0xe9, 0x16, 0xb3, 0x71, 0x1a, 0x39, 0x47, 0xd6, 0x74, 0x16, 0x56,
7112 0x1d, 0xd7, 0x56, 0x6a, 0x4a, 0x72, 0xd0, 0xc8, 0x93, 0x0c, 0x3d, 0xe8,
7113 0xbf, 0x8f, 0x46, 0xdb, 0xf4, 0xc1, 0x72, 0xdb, 0x5e, 0x5c, 0xde, 0x4e,
7114 0x4b, 0x3a, 0x1e, 0x39, 0x29, 0xf8, 0x47, 0x47, 0xf7, 0xce, 0x3d, 0x9e,
7115 0xfd, 0x14, 0x0d, 0xa7, 0x73, 0x8c, 0x2f, 0x42, 0x41, 0xe0, 0x1f, 0x49,
7116 0x64, 0xf8, 0x89, 0x9f, 0x36, 0x38, 0x4b, 0x6e, 0xfc, 0xf6, 0x35, 0x17,
7117 0x5b, 0x40, 0xc5, 0xd5, 0xcb, 0x8b, 0x83, 0x37, 0xe3, 0x57, 0xe2, 0x64,
7118 0xbd, 0xcc, 0x7d, 0x2d, 0x57, 0xf5, 0x2c, 0xb8, 0x48, 0xa4, 0x63, 0x1d,
7119 0xbb, 0x97, 0x0a, 0x00, 0x06, 0xd2, 0xd6, 0x2a, 0xaf, 0x83, 0x26, 0xd3,
7120 0xb9, 0x54, 0x89, 0x85, 0xae, 0xa6, 0xcd, 0xb4, 0x59, 0x6e, 0xb9, 0x83,
7121 0xb5, 0x0c, 0x4b, 0x1a, 0x79, 0xbe, 0x3b, 0xa3, 0xfe, 0xd5, 0x87, 0x58,
7122 0x50, 0x0e, 0xad, 0x33, 0xf6, 0x53, 0xd1, 0xe5, 0x6b, 0x39, 0x26, 0x0f,
7123 0xe9, 0xea, 0x31, 0xd4, 0xda, 0x19, 0x41, 0x01, 0x27, 0xe7, 0x98, 0x13,
7124 0x5d, 0xae, 0xcc, 0x70, 0xae, 0xf1, 0x30, 0x91, 0xd0, 0x9a, 0xde, 0xfc,
7125 0xd3, 0xee, 0x56, 0x77, 0xf3, 0x97, 0xbf, 0xb4, 0xf9, 0xee, 0xbe, 0x9b,
7126 0xad, 0xef, 0xf3, 0x54, 0x36, 0xff, 0xb4, 0xb7, 0xf5, 0xe8, 0x88, 0xc2,
7127 0x4c, 0x3b, 0xff, 0x4d, 0x7a, 0x83, 0x3b, 0x1b, 0xbd, 0xb4, 0xba, 0xdd,
7128 0x7a, 0x06, 0x3b, 0xac, 0xc7, 0x95, 0x67, 0xbc, 0xab, 0x31, 0x40, 0x30,
7129 0x16, 0xd8, 0x59, 0x7e, 0x3e, 0x84, 0xa3, 0x29, 0x0b, 0x27, 0xff, 0xf3,
7130 0x38, 0x64, 0x0a, 0xa4, 0x8b, 0x78, 0xa8, 0xee, 0x38, 0xdd, 0xbc, 0xcc,
7131 0x47, 0xf8, 0xf6, 0xde, 0x23, 0xdf, 0xf6, 0xa3, 0x0b, 0xae, 0xb9, 0x1c,
7132 0x0f, 0x65, 0x40, 0x95, 0xd1, 0x1d, 0xeb, 0x77, 0x36, 0x7c, 0x85, 0xe0,
7133 0xf5, 0xdf, 0xbb, 0x3c, 0x79, 0x7d, 0xcc, 0xb4, 0xc8, 0x47, 0x27, 0xcc,
7134 0x65, 0x36, 0x56, 0x36, 0x41, 0xbb, 0xd1, 0x3a, 0xa2, 0xd5, 0xb0, 0x02,
7135 0x86, 0x04, 0x0a, 0x1d, 0x6e, 0xc9, 0xed, 0x7e, 0xb7, 0x12, 0xfc, 0x69,
7136 0x05, 0xd6, 0x96, 0x96, 0xbe, 0x77, 0x72, 0x35, 0x7c, 0x9d, 0xcf, 0x70,
7137 0xeb, 0x1a, 0x0a, 0x67, 0x3d, 0xbd, 0x45, 0x3f, 0x7c, 0x9b, 0x2d, 0x6a,
7138 0x3f, 0x0e, 0x93, 0x04, 0xf5, 0x42, 0xbd, 0xb1, 0xae, 0x4a, 0xc8, 0xcf,
7139 0xdb, 0xc3, 0x21, 0x2a, 0x74, 0x0b, 0x3e, 0x48, 0xa3, 0x04, 0x35, 0xbe,
7140 0x07, 0xdb, 0xfb, 0x34, 0x3f, 0xe9, 0xfc, 0x41, 0x22, 0xda, 0xb1, 0xc7,
7141 0x21, 0xf9, 0x8c, 0xc0, 0x6b, 0xce, 0x4a, 0xf2, 0xce, 0x22, 0x71, 0x07,
7142 0x6d, 0x84, 0xf4, 0x94, 0xb0, 0xcb, 0x93, 0x7b, 0x0f, 0xa4, 0xd1, 0x6a,
7143 0xa3, 0xf9, 0xf2, 0x01, 0x83, 0xbc, 0xaf, 0xc5, 0xe8, 0x3b, 0x03, 0x75,
7144 0x3f, 0xcb, 0x3b, 0xb5, 0xba, 0x38, 0xca, 0x21, 0x1c, 0x08, 0xa0, 0xfe,
7145 0x44, 0xcb, 0xc8, 0x9c, 0x15, 0x81, 0x02, 0xd3, 0x6e, 0x5b, 0x65, 0xa8,
7146 0x80, 0xba, 0x32, 0x60, 0xda, 0xac, 0xf7, 0xd3, 0x7b, 0x2f, 0x37, 0xf8,
7147 0x58, 0x1b, 0xb1, 0xd3, 0xdc, 0xa2, 0x2c, 0xa4, 0x75, 0x96, 0xf5, 0x7a,
7148 0x9e, 0x49, 0x64, 0x49, 0xc3, 0x92, 0x13, 0xde, 0x1f, 0xf6, 0x41, 0xbb,
7149 0x9f, 0x66, 0x1d, 0x83, 0x19, 0xfe, 0xf2, 0xd1, 0xb4, 0x62, 0x78, 0x51,
7150 0xef, 0x8a, 0x89, 0x15, 0x38, 0x20, 0xd2, 0x93, 0x0e, 0x08, 0xef, 0x88,
7151 0xc8, 0x16, 0xd9, 0xf3, 0xac, 0xd6, 0xec, 0x5e, 0x22, 0x77, 0x34, 0x07,
7152 0xb1, 0x74, 0xde, 0x56, 0x71, 0x72, 0xb1, 0x1e, 0x5d, 0x2d, 0x67, 0x88,
7153 0xee, 0x0b, 0xae, 0xf1, 0xdf, 0x99, 0xf4, 0xb8, 0x78, 0x88, 0x76, 0xf7,
7154 0x06, 0xd1, 0xde, 0xce, 0xee, 0x5e, 0xc7, 0x18, 0x7a, 0xff, 0xce, 0xe8,
7155 0x9a, 0x3d, 0xfc, 0xba, 0xf7, 0xb1, 0xa3, 0xf0, 0x18, 0x79, 0x9c, 0xaa,
7156 0x9a, 0x4d, 0x4a, 0xba, 0x87, 0x03, 0x7d, 0x52, 0x90, 0x9c, 0x8b, 0x7c,
7157 0x82, 0x1c, 0x0d, 0x36, 0x85, 0xf8, 0x9c, 0xac, 0x40, 0x9d, 0xab, 0x65,
7158 0xc4, 0x4f, 0x6c, 0x68, 0x9d, 0x45, 0x40, 0x28, 0x9c, 0xe3, 0x2d, 0x2e,
7159 0x50, 0x7d, 0xaf, 0xbe, 0x46, 0x69, 0x65, 0xcb, 0xc2, 0x18, 0x0d, 0x5e,
7160 0x1b, 0x92, 0xf7, 0xa3, 0x93, 0xc3, 0x4b, 0x63, 0xcf, 0xbb, 0xe2, 0xe3,
7161 0xb4, 0x78, 0xf8, 0xb8, 0x42, 0x66, 0x8f, 0x3e, 0x33, 0xdb, 0xbf, 0x49,
7162 0xc8, 0x22, 0xcb, 0x26, 0xab, 0xeb, 0xfd, 0xbf, 0xc5, 0xc5, 0x75, 0x9e,
7163 0x7d, 0xe8, 0xf9, 0x19, 0x92, 0x94, 0xf6, 0x49, 0x41, 0xed, 0x3e, 0xdf,
7164 0x7d, 0x22, 0x08, 0xf8, 0x94, 0xeb, 0x1e, 0x42, 0x3f, 0xf4, 0x17, 0x7d,
7165 0x21, 0x6c, 0x00, 0xf4, 0xde, 0xb1, 0x34, 0x64, 0xb3, 0xbe, 0x5c, 0xb7,
7166 0xe2, 0xf0, 0xd9, 0x99, 0x3e, 0x2b, 0xd9, 0xcc, 0xfd, 0x0d, 0xa9, 0xe7,
7167 0xda, 0xe7, 0xd4, 0xbf, 0xd5, 0xb2, 0x5f, 0xa7, 0x00, 0xff, 0xc0, 0x58,
7168 0xf9, 0x13, 0xae, 0x6e, 0xdb, 0xa1, 0x23, 0x36, 0x47, 0x56, 0x4a, 0x91,
7169 0xc4, 0xb7, 0xbe, 0xea, 0xa7, 0x67, 0x73, 0x30, 0xdf, 0xf9, 0xc5, 0xab,
7170 0x43, 0xe1, 0xc3, 0xb4, 0x1c, 0x1c, 0x4c, 0x75, 0xe4, 0x3c, 0x1d, 0x5b,
7171 0xdc, 0xcb, 0x0f, 0x7c, 0x9f, 0x41, 0xf2, 0xfb, 0xb3, 0xc9, 0x47, 0x3c,
7172 0x44, 0xfb, 0x4e, 0xa8, 0xc7, 0x0e, 0xea, 0x35, 0x4f, 0xd8, 0xe6, 0x47,
7173 0x79, 0x08, 0x2b, 0xef, 0xb9, 0x29, 0x55, 0x1c, 0xc5, 0x77, 0xcd, 0x5d,
7174 0x73, 0x35, 0xd2, 0xd5, 0x59, 0x40, 0xfd, 0xe6, 0x12, 0x89, 0x47, 0x07,
7175 0xe7, 0xc1, 0xbd, 0x09, 0xf7, 0x12, 0xef, 0x23, 0xe2, 0xe7, 0xd8, 0x66,
7176 0x46, 0x05, 0x61, 0x71, 0x25, 0x3d, 0x0c, 0xbc, 0xb5, 0x5b, 0x41, 0x4f,
7177 0xce, 0xee, 0x62, 0x41, 0x5a, 0xe7, 0x7a, 0x9c, 0xc0, 0x9d, 0x01, 0xb6,
7178 0xfa, 0xf9, 0x2c, 0x46, 0x44, 0x4d, 0x0f, 0x21, 0x18, 0xa1, 0x68, 0x2b,
7179 0x55, 0x58, 0x0d, 0xad, 0xcd, 0xfb, 0x48, 0xb3, 0x01, 0x34, 0xed, 0x41,
7180 0xcb, 0x49, 0xe0, 0x31, 0xce, 0x74, 0x7d, 0xb0, 0x01, 0x88, 0x7e, 0xa6,
7181 0xce, 0xc7, 0xe5, 0x2d, 0xa9, 0x52, 0x89, 0x04, 0xd3, 0xd7, 0xd3, 0x69,
7182 0x62, 0x3e, 0xd5, 0x59, 0x2a, 0x88, 0x0c, 0xf6, 0x66, 0x80, 0x57, 0xa7,
7183 0xb6, 0x60, 0x72, 0x02, 0xf1, 0xe5, 0x65, 0x5e, 0x26, 0xc2, 0x81, 0x17,
7184 0x5d, 0xde, 0xe7, 0x62, 0x74, 0x3a, 0xc2, 0x01, 0xc1, 0x34, 0x96, 0xab,
7185 0x54, 0xa8, 0x33, 0x68, 0xf1, 0xa0, 0x0f, 0x82, 0x1a, 0x8c, 0x3d, 0xe7,
7186 0x48, 0x39, 0x72, 0x01, 0xb4, 0xf1, 0xd1, 0x37, 0x11, 0xe7, 0x68, 0xf3,
7187 0x37, 0x0e, 0x99, 0xaf, 0x9d, 0x63, 0xe1, 0x0b, 0x5c, 0x24, 0xbe, 0x5a,
7188 0xf1, 0x7e, 0x3f, 0xbc, 0x89, 0x97, 0x6c, 0x12, 0xef, 0xee, 0xf0, 0xed,
7189 0xfb, 0x3b, 0xcb, 0xf6, 0xe2, 0x8d, 0x6a, 0xf5, 0x99, 0xcb, 0x5e, 0x70,
7190 0x31, 0x9f, 0x71, 0x79, 0x65, 0xb6, 0x89, 0xeb, 0x3e, 0x3f, 0x3a, 0x3d,
7191 0xcb, 0x6d, 0x61, 0x69, 0x2f, 0x49, 0x34, 0x8a, 0x72, 0x76, 0xbb, 0x3d,
7192 0xa5, 0x3f, 0x9e, 0xec, 0x6c, 0x83, 0x96, 0xb1, 0x82, 0x8b, 0x8c, 0x65,
7193 0x72, 0x6f, 0xef, 0xd9, 0xb3, 0x41, 0xd4, 0x63, 0xa7, 0x95, 0x7d, 0x80,
7194 0xb7, 0x04, 0xed, 0xac, 0x5e, 0x57, 0x31, 0xca, 0xed, 0xe2, 0x6a, 0xca,
7195 0xff, 0xe3, 0xd7, 0xac, 0xa0, 0xdc, 0xa5, 0xa6, 0x6f, 0x60, 0x1e, 0xb2,
7196 0x90, 0x6b, 0xc5, 0xc4, 0xea, 0x9e, 0xd6, 0xc1, 0xdc, 0x12, 0x1c, 0x81,
7197 0x58, 0x26, 0xf9, 0xd2, 0xc2, 0x8c, 0x0b, 0xad, 0xff, 0x80, 0xcf, 0x07,
7198 0xc1, 0x19, 0x04, 0x86, 0x05, 0x57, 0xa5, 0x89, 0xf5, 0xe5, 0x6a, 0x32,
7199 0xd4, 0x0c, 0x53, 0xb9, 0x67, 0xa4, 0xb4, 0x73, 0xe9, 0x9f, 0x73, 0xf3,
7200 0xfe, 0xb6, 0x34, 0xf2, 0x97, 0x51, 0x4f, 0x65, 0x8b, 0xff, 0x33, 0x42,
7201 0x94, 0x30, 0x99, 0xf2, 0x30, 0xf2, 0x97, 0xfa, 0x8f, 0x7f, 0xfb, 0x37,
7202 0x6a, 0xf6, 0xdf, 0xb8, 0x95, 0x97, 0x7f, 0x2a, 0xab, 0x9b, 0xe0, 0x99,
7203 0x9e, 0x0a, 0xfc, 0x89, 0x8f, 0x91, 0x02, 0xf7, 0x04, 0xd2, 0x52, 0x24,
7204 0x42, 0xbd, 0x3e, 0x55, 0x8d, 0x3c, 0x08, 0xc6, 0x97, 0x22, 0x45, 0x4d,
7205 0x7c, 0x6e, 0x0e, 0x76, 0xf0, 0x25, 0xc7, 0x2f, 0x13, 0x4e, 0x6d, 0x26,
7206 0x29, 0x04, 0x2b, 0xdd, 0x96, 0x99, 0x18, 0xc7, 0x6f, 0xbe, 0x3d, 0xb9,
7207 0x38, 0x7b, 0xf3, 0xfa, 0xf8, 0xcd, 0x65, 0xf4, 0xed, 0xc1, 0xc5, 0xc9,
7208 0xc1, 0x97, 0xa7, 0x9a, 0x41, 0xcd, 0x43, 0x60, 0xb4, 0x88, 0x98, 0xde,
7209 0x0d, 0x4e, 0xd1, 0x20, 0xa3, 0xa5, 0xb3, 0x36, 0x44, 0xa3, 0xa6, 0xe8,
7210 0x3b, 0x25, 0xa9, 0x86, 0x7b, 0xf5, 0x1d, 0xaa, 0xdc, 0x0c, 0x38, 0xe0,
7211 0xf7, 0xce, 0x0a, 0xde, 0xb0, 0xdb, 0xf2, 0x21, 0xc8, 0xc9, 0x65, 0x20,
7212 0x0b, 0x4b, 0xa9, 0xe9, 0x27, 0x5f, 0x9c, 0xcc, 0x15, 0x4f, 0xf8, 0x4a,
7213 0xd2, 0xba, 0xad, 0x92, 0x84, 0xbd, 0xaa, 0x29, 0x46, 0x70, 0xe3, 0xb8,
7214 0x3e, 0x1c, 0x9c, 0x9e, 0xfa, 0x4f, 0x3d, 0x5e, 0x64, 0x44, 0xe9, 0x7c,
7215 0x24, 0x0b, 0xe8, 0xc6, 0x4a, 0xac, 0x5f, 0xe7, 0x9e, 0x71, 0x3b, 0x7b,
7216 0x08, 0xc9, 0xb5, 0xf9, 0x63, 0xb4, 0x1c, 0x9b, 0xc2, 0xc5, 0xc0, 0xe1,
7217 0x46, 0xda, 0x40, 0x69, 0x79, 0x3b, 0x88, 0xfa, 0x7f, 0xea, 0x4b, 0x76,
7218 0x56, 0x02, 0xea, 0x59, 0x29, 0x61, 0xb2, 0xe5, 0x3b, 0xf5, 0xe6, 0xcc,
7219 0xf7, 0x49, 0x83, 0x68, 0xae, 0x03, 0xee, 0x45, 0x1f, 0xff, 0x2c, 0xcd,
7220 0x9e, 0x01, 0xf0, 0xd0, 0x3f, 0xae, 0xec, 0xfe, 0x2e, 0xc5, 0x5c, 0x65,
7221 0x94, 0xe3, 0x24, 0x9d, 0xef, 0xe2, 0xd2, 0x16, 0x4f, 0x03, 0x86, 0x61,
7222 0x71, 0xe3, 0xf0, 0xe5, 0x17, 0x76, 0x80, 0x14, 0x84, 0x97, 0xc3, 0x81,
7223 0xa6, 0x9a, 0x5d, 0x44, 0x1b, 0x56, 0xbd, 0x5c, 0x35, 0x28, 0xa4, 0xea,
7224 0xfd, 0xb6, 0x95, 0x32, 0x41, 0xc8, 0x8a, 0x81, 0xe5, 0x45, 0x3a, 0x53,
7225 0xce, 0xba, 0x4e, 0xa9, 0x18, 0x21, 0xd2, 0x71, 0x71, 0x08, 0x82, 0xef,
7226 0x8c, 0xab, 0xc4, 0xb9, 0xa2, 0x08, 0x02, 0x42, 0x25, 0x2d, 0x52, 0x70,
7227 0x66, 0x57, 0xa6, 0x46, 0x08, 0x80, 0x9d, 0x30, 0xd1, 0xe3, 0xeb, 0xdc,
7228 0xcc, 0xef, 0xd8, 0x85, 0x5f, 0x25, 0x63, 0x4b, 0x30, 0x3b, 0x66, 0x85,
7229 0x39, 0x22, 0x2a, 0xe7, 0x01, 0x43, 0xa0, 0xd6, 0xfc, 0xcd, 0x8c, 0x53,
7230 0x82, 0xbf, 0x4c, 0x71, 0x0c, 0x65, 0x90, 0xee, 0xeb, 0x61, 0xf0, 0xac,
7231 0x4b, 0x24, 0x44, 0x69, 0xcc, 0x50, 0x60, 0xe3, 0xb2, 0xf4, 0x60, 0x20,
7232 0xe6, 0xd0, 0x2d, 0x7e, 0x10, 0x4d, 0x2a, 0xf8, 0x11, 0x4d, 0x9a, 0x2b,
7233 0x94, 0x76, 0xcf, 0x9c, 0x33, 0x91, 0x4c, 0x13, 0xc5, 0xd1, 0x24, 0xbd,
7234 0x8e, 0xcc, 0x0b, 0x12, 0xb1, 0x94, 0x80, 0x31, 0x2c, 0x5f, 0x24, 0xbc,
7235 0x54, 0xe0, 0x03, 0x83, 0xed, 0x7e, 0x93, 0xcf, 0x43, 0xd2, 0x2a, 0x1b,
7236 0x49, 0xc9, 0x48, 0xfd, 0xc0, 0x8b, 0x06, 0x4f, 0xfa, 0x8a, 0xe7, 0xd1,
7237 0x60, 0x4d, 0xca, 0x75, 0xad, 0x20, 0x2f, 0x76, 0xd1, 0x82, 0x7a, 0x2f,
7238 0x43, 0x4a, 0x89, 0xa5, 0xe7, 0x62, 0x1e, 0x0c, 0x00, 0xcb, 0xda, 0x02,
7239 0x9e, 0x15, 0x2e, 0x49, 0xb7, 0xe9, 0xc8, 0xaa, 0xb9, 0x95, 0xa9, 0xd0,
7240 0x7d, 0xb2, 0xd0, 0x0b, 0x3e, 0xbd, 0x5e, 0xef, 0x45, 0x17, 0x4b, 0xa9,
7241 0x98, 0x48, 0x26, 0xb8, 0xd3, 0xd4, 0xbf, 0xcd, 0x40, 0xf1, 0x64, 0x24,
7242 0x22, 0xf2, 0x98, 0xdc, 0x1f, 0xf5, 0x5f, 0x43, 0x57, 0xa9, 0x4a, 0xc3,
7243 0x98, 0x5b, 0x3e, 0x82, 0x2d, 0x56, 0x00, 0x4b, 0xeb, 0x54, 0xab, 0xde,
7244 0xa1, 0xbf, 0xb4, 0x5e, 0xe6, 0x88, 0x0a, 0xfd, 0x58, 0x91, 0x65, 0x6e,
7245 0xcc, 0xe7, 0x01, 0x5d, 0xb5, 0xb8, 0x23, 0xe2, 0x96, 0xf1, 0xc1, 0xc1,
7246 0x06, 0x49, 0x68, 0x54, 0x0c, 0x89, 0x50, 0xdb, 0x06, 0x23, 0x51, 0x74,
7247 0x32, 0x9b, 0x67, 0x0d, 0xf7, 0x58, 0xa0, 0xd1, 0x2c, 0xda, 0x1a, 0x9e,
7248 0x4c, 0x5a, 0x25, 0x21, 0x8d, 0x17, 0x62, 0x3c, 0x7a, 0xf1, 0x5b, 0x3c,
7249 0x08, 0x7e, 0x6d, 0x63, 0xe3, 0xf0, 0xed, 0xf8, 0xf2, 0xec, 0x75, 0x74,
7250 0xf6, 0xf6, 0xf2, 0xfc, 0xed, 0xa5, 0x1e, 0x5d, 0x13, 0x41, 0xff, 0xca,
7251 0x1d, 0x51, 0xac, 0x00, 0x5b, 0xcd, 0x85, 0x86, 0x90, 0x01, 0x56, 0xc8,
7252 0x41, 0x53, 0x17, 0xb0, 0xd4, 0xb8, 0xec, 0x1e, 0x70, 0x37, 0x09, 0xfb,
7253 0x2d, 0xe6, 0xfc, 0x9e, 0xe6, 0x1c, 0x99, 0x99, 0xf0, 0xed, 0x58, 0xb2,
7254 0x10, 0xee, 0x3d, 0xdd, 0x15, 0x48, 0x1a, 0xc5, 0x0e, 0x11, 0xec, 0xad,
7255 0x93, 0x02, 0x79, 0x44, 0x8e, 0xf9, 0x76, 0xbc, 0xeb, 0x27, 0x04, 0x07,
7256 0x02, 0x16, 0x33, 0xad, 0xcc, 0x99, 0x69, 0xf8, 0x4c, 0x80, 0x56, 0xea,
7257 0x29, 0x6a, 0x61, 0xa6, 0x5c, 0x95, 0xd3, 0x08, 0x6f, 0x1c, 0xb6, 0x9a,
7258 0xf1, 0x28, 0xc0, 0x94, 0x49, 0x40, 0x9e, 0xc1, 0x5b, 0x72, 0x65, 0xa0,
7259 0x8b, 0x20, 0xbb, 0xc0, 0x5b, 0xc7, 0xec, 0x7d, 0xd4, 0xff, 0x2e, 0x09,
7260 0x1b, 0xfc, 0xc3, 0x7f, 0x70, 0x02, 0xe0, 0x3b, 0xfb, 0xc9, 0x3f, 0xe4,
7261 0x93, 0x7f, 0xcd, 0xfa, 0x80, 0x62, 0xd5, 0x23, 0xaf, 0xdf, 0x1c, 0x5f,
7262 0x7c, 0x79, 0x7c, 0x71, 0x36, 0x06, 0xfc, 0xc4, 0xdc, 0x5d, 0x6d, 0x61,
7263 0xbf, 0x4d, 0x8a, 0x49, 0x52, 0xe4, 0x5a, 0x27, 0xc9, 0xfe, 0xf5, 0x6c,
7264 0xfb, 0xab, 0xf1, 0xf8, 0xe0, 0xfc, 0xc4, 0xd5, 0x1f, 0x71, 0xa9, 0x48,
7265 0x72, 0x47, 0xca, 0x24, 0x59, 0x8e, 0xc7, 0x6f, 0xaf, 0x90, 0x5c, 0x4c,
7266 0x6f, 0x05, 0xa2, 0xda, 0x8a, 0x71, 0x9a, 0x8f, 0x96, 0x83, 0x9b, 0x9a,
7267 0xa1, 0xc6, 0x0d, 0x1b, 0xbb, 0x90, 0x24, 0x6a, 0x8b, 0x00, 0xbf, 0x62,
7268 0x97, 0xf2, 0xc0, 0xc1, 0xb8, 0x6e, 0x8b, 0xc9, 0x90, 0x04, 0xfd, 0xd6,
7269 0x8a, 0xc8, 0x0a, 0x98, 0x9e, 0xd4, 0xa4, 0xa0, 0x6c, 0xbd, 0x9f, 0xe1,
7270 0x96, 0x4b, 0x47, 0x6f, 0xdf, 0xf2, 0xd6, 0xe0, 0x12, 0x19, 0xf3, 0x91,
7271 0x68, 0x76, 0xd9, 0x4b, 0x06, 0x9d, 0x64, 0xf5, 0xfa, 0x18, 0xd9, 0x01,
7272 0x7d, 0xcd, 0x15, 0xb5, 0x13, 0x57, 0x17, 0xfd, 0xe4, 0xa9, 0x23, 0x7d,
7273 0x0a, 0xab, 0x0a, 0x5f, 0x91, 0xf1, 0xbd, 0xbc, 0x9f, 0xe9, 0x01, 0x02,
7274 0xba, 0xe3, 0x4c, 0xbc, 0xdc, 0xa2, 0xbf, 0x9b, 0xb1, 0x0e, 0xae, 0xc2,
7275 0x07, 0xd4, 0xbf, 0x62, 0x9a, 0xa3, 0xc9, 0x3c, 0xce, 0x6e, 0x71, 0x92,
7276 0xe1, 0x6c, 0xe2, 0xeb, 0xa6, 0x71, 0x19, 0x71, 0xcd, 0x42, 0x84, 0xb6,
7277 0x94, 0x5e, 0x00, 0x06, 0xe0, 0x9c, 0x15, 0xdb, 0x83, 0x78, 0x76, 0x1d,
7278 0x65, 0x53, 0x10, 0xc4, 0xc1, 0x4e, 0xf2, 0x93, 0xc0, 0x5e, 0xa3, 0xe3,
7279 0x53, 0x3a, 0x94, 0x5c, 0xa6, 0x02, 0xae, 0xe7, 0xc9, 0x9c, 0x89, 0x77,
7280 0x0c, 0x5c, 0x22, 0xc9, 0x79, 0x29, 0x94, 0x98, 0x28, 0x0e, 0x63, 0xe2,
7281 0x46, 0x18, 0x02, 0x92, 0x82, 0x1c, 0xc4, 0xd2, 0xd5, 0xab, 0x50, 0xad,
7282 0x2d, 0x0a, 0x0c, 0x44, 0x93, 0xbe, 0x7c, 0x45, 0x58, 0xd0, 0x44, 0x31,
7283 0x5b, 0x87, 0x1e, 0x5a, 0xe2, 0x6a, 0x3d, 0x49, 0x27, 0xbc, 0x49, 0xea,
7284 0x82, 0x55, 0xb5, 0x14, 0x89, 0xb5, 0xcb, 0x24, 0xaf, 0x77, 0x39, 0x00,
7285 0xa0, 0x00, 0xa9, 0x01, 0xf1, 0x7e, 0x3b, 0x7a, 0x19, 0xc3, 0xbd, 0xd6,
7286 0xb1, 0xa6, 0xd6, 0x71, 0x09, 0x2c, 0xb3, 0xdf, 0x76, 0x5e, 0x59, 0xfc,
7287 0x09, 0x38, 0x49, 0x3d, 0x7d, 0xab, 0x19, 0xb4, 0x4d, 0x51, 0x63, 0x3d,
7288 0x0d, 0x21, 0x9e, 0xc2, 0x80, 0x00, 0xb7, 0xa0, 0x80, 0xfe, 0x71, 0x83,
7289 0x71, 0xb6, 0xed, 0xf0, 0x0d, 0x1f, 0x15, 0xf9, 0x70, 0xb2, 0xc2, 0x9d,
7290 0x2c, 0xa8, 0xc1, 0x24, 0x89, 0x80, 0x5c, 0x39, 0x1c, 0xe4, 0x5c, 0xf8,
7291 0x3d, 0x87, 0x35, 0x90, 0x62, 0x2d, 0x91, 0x0e, 0xe4, 0xdc, 0xd5, 0x89,
7292 0x5b, 0x1c, 0x5d, 0x87, 0x00, 0xd9, 0x01, 0xe8, 0xb5, 0xaa, 0x5d, 0xd2,
7293 0x43, 0x5d, 0x64, 0x07, 0x39, 0xcb, 0xb4, 0xb4, 0x26, 0xfc, 0xec, 0x75,
7294 0xd8, 0x6e, 0xe5, 0x98, 0xd3, 0x2f, 0x61, 0x22, 0x24, 0xca, 0x27, 0x6e,
7295 0x78, 0x5c, 0x43, 0xff, 0xdf, 0x55, 0x5c, 0x2b, 0x48, 0x98, 0x06, 0xe2,
7296 0xb9, 0x14, 0x7c, 0x58, 0x7b, 0x8a, 0xc8, 0x66, 0xaa, 0x2e, 0x2f, 0x7f,
7297 0x38, 0x3f, 0x7e, 0x69, 0x6f, 0x3e, 0xb6, 0x66, 0x42, 0xc0, 0x05, 0xf8,
7298 0x45, 0xa2, 0x64, 0x97, 0x41, 0xa1, 0x5e, 0x12, 0xb2, 0x61, 0x65, 0x61,
7299 0x61, 0xf9, 0xcc, 0x30, 0xfa, 0xfe, 0xe8, 0x64, 0x7c, 0x7e, 0x7a, 0x76,
7300 0xf8, 0xf2, 0xc5, 0xf7, 0xa6, 0x8d, 0x3f, 0x67, 0xc6, 0x19, 0xb1, 0xd1,
7301 0xdc, 0xcf, 0x3c, 0x41, 0x80, 0xbe, 0xf7, 0xe6, 0xf8, 0xbb, 0x77, 0x74,
7302 0x33, 0x78, 0xc9, 0x04, 0xe1, 0x83, 0xbb, 0x78, 0xae, 0x2f, 0xf1, 0xf5,
7303 0xaa, 0xc3, 0xae, 0x0b, 0xd2, 0x39, 0xba, 0x26, 0xd6, 0x55, 0x9e, 0xf4,
7304 0x60, 0xf7, 0x07, 0x43, 0x64, 0x05, 0xb5, 0x85, 0xe2, 0x5a, 0x6e, 0x66,
7305 0x47, 0x05, 0xd7, 0xdc, 0x9d, 0xfc, 0xfd, 0x4a, 0x90, 0x79, 0x1c, 0x8d,
7306 0x0e, 0x83, 0xbc, 0x00, 0x3f, 0xea, 0x6f, 0x3c, 0x28, 0x54, 0xa9, 0x78,
7307 0x0b, 0xc6, 0x42, 0x38, 0x2e, 0x43, 0x2d, 0xa3, 0x8b, 0xf0, 0xa9, 0x12,
7308 0x1e, 0x2a, 0x93, 0x0f, 0xe3, 0x30, 0x0d, 0x92, 0xed, 0x4a, 0xb5, 0x8b,
7309 0xf9, 0xe2, 0xfa, 0xc2, 0x25, 0xcf, 0x0a, 0x3e, 0x94, 0x50, 0xda, 0xe5,
7310 0xfc, 0xf8, 0x62, 0x7c, 0x32, 0xbe, 0xe4, 0x2b, 0x94, 0x16, 0xe5, 0x53,
7311 0xf7, 0xb3, 0x55, 0x4c, 0x44, 0xe2, 0x7f, 0x9d, 0xbb, 0x32, 0x2c, 0x3b,
7312 0x51, 0xdb, 0xd1, 0x4e, 0xcd, 0xd5, 0x33, 0x01, 0xd9, 0x8b, 0x20, 0xe9,
7313 0x85, 0x6c, 0x84, 0x0a, 0x03, 0x6b, 0x7c, 0x65, 0x1b, 0x38, 0x57, 0xd1,
7314 0x68, 0x54, 0x5f, 0x40, 0xe5, 0x14, 0xac, 0xce, 0x3c, 0x9d, 0x78, 0x87,
7315 0x79, 0x23, 0x12, 0xc9, 0x81, 0x6e, 0x65, 0x7c, 0x08, 0xb7, 0x90, 0xb9,
7316 0xc2, 0x7d, 0x7a, 0x6d, 0x99, 0x5b, 0x8d, 0x55, 0x11, 0x7e, 0xb8, 0xaa,
7317 0xc3, 0x24, 0x48, 0x77, 0x49, 0xc5, 0xc5, 0xc4, 0x4c, 0x34, 0xf7, 0xd3,
7318 0x00, 0xca, 0xa8, 0x24, 0x42, 0xe0, 0x3e, 0x55, 0x95, 0xcd, 0x4a, 0x39,
7319 0x95, 0x74, 0x26, 0x76, 0xb2, 0x90, 0xc1, 0x82, 0xf4, 0x6c, 0x40, 0x4e,
7320 0x74, 0x64, 0x2d, 0xeb, 0x43, 0xcd, 0xc6, 0x6b, 0xce, 0x83, 0x02, 0x53,
7321 0xd3, 0x8c, 0x4d, 0x2d, 0x78, 0xdf, 0xc2, 0x8f, 0xd9, 0x49, 0xca, 0x33,
7322 0x38, 0x59, 0x85, 0xb5, 0xbd, 0x5c, 0xef, 0xa5, 0xbc, 0x05, 0x26, 0x1e,
7323 0x60, 0xbb, 0xb8, 0x00, 0x13, 0x62, 0xa5, 0xac, 0xe3, 0x76, 0xe9, 0x51,
7324 0xe4, 0xdc, 0xa8, 0x4e, 0x0a, 0x63, 0x72, 0x69, 0x95, 0x28, 0x1f, 0x9b,
7325 0xd1, 0xa0, 0x2c, 0x20, 0x8b, 0x6f, 0x91, 0x18, 0x04, 0x46, 0x5c, 0x0c,
7326 0x25, 0xc7, 0x1a, 0xb2, 0xa9, 0x3b, 0x8c, 0x39, 0x73, 0x85, 0xa1, 0x20,
7327 0x85, 0x12, 0xee, 0x90, 0xfa, 0x63, 0xaf, 0x32, 0x6a, 0x09, 0xa2, 0x48,
7328 0x2e, 0x07, 0xdc, 0x8c, 0x8c, 0xcd, 0x63, 0x81, 0x65, 0xba, 0x03, 0xb1,
7329 0x12, 0xd7, 0xfa, 0x83, 0x7e, 0xd0, 0x65, 0x59, 0xdb, 0x62, 0x0d, 0x24,
7330 0x69, 0x27, 0x46, 0x8e, 0x88, 0xf9, 0x74, 0x83, 0x5c, 0xc3, 0x52, 0x33,
7331 0x38, 0x5d, 0xb0, 0x52, 0x14, 0x1e, 0xaa, 0x17, 0xf9, 0x9c, 0xa7, 0x5a,
7332 0x50, 0x90, 0x2c, 0xcb, 0x25, 0x4a, 0xf1, 0x4c, 0x95, 0x8d, 0x1c, 0xe0,
7333 0x4f, 0xd7, 0x9e, 0x9d, 0x21, 0x7e, 0xae, 0x68, 0x52, 0x5f, 0xbf, 0x3d,
7334 0xbd, 0x3c, 0x39, 0x0f, 0x03, 0x8f, 0xd1, 0x77, 0x27, 0x97, 0x5f, 0x93,
7335 0xbd, 0xce, 0x05, 0xe0, 0x4f, 0x39, 0xba, 0xf3, 0xfa, 0xf5, 0xc1, 0x1b,
7336 0xce, 0x50, 0x7f, 0x03, 0x8c, 0xdc, 0x01, 0xee, 0x0c, 0xac, 0x8d, 0x68,
7337 0x86, 0x59, 0x74, 0x38, 0x77, 0x79, 0xd0, 0x8e, 0x32, 0x34, 0x76, 0x9f,
7338 0x94, 0xcb, 0xcd, 0xea, 0x73, 0xc4, 0x0b, 0xae, 0x77, 0x82, 0x07, 0xf6,
7339 0xe9, 0x60, 0xd7, 0xf2, 0x3d, 0x8b, 0xe7, 0xb9, 0x49, 0x43, 0x8e, 0x3c,
7340 0x39, 0xb1, 0xcd, 0x11, 0x53, 0x95, 0xa3, 0xdb, 0x47, 0x2e, 0xb0, 0xa0,
7341 0x8e, 0xc4, 0x14, 0x98, 0x55, 0x32, 0x99, 0x32, 0xbd, 0xd2, 0xc8, 0x71,
7342 0x59, 0xc7, 0xad, 0xd3, 0x17, 0xd1, 0x25, 0x04, 0x95, 0x73, 0xef, 0x0c,
7343 0xe4, 0xcb, 0x26, 0xdf, 0x97, 0x2f, 0x4e, 0xc3, 0xf3, 0xb4, 0x5e, 0x64,
7344 0xdc, 0x80, 0x66, 0xd7, 0x79, 0xe2, 0x37, 0xee, 0xf0, 0xcc, 0x9a, 0x31,
7345 0xcf, 0x2f, 0x6e, 0x60, 0x72, 0xb6, 0x0c, 0x59, 0xad, 0x0d, 0x69, 0x49,
7346 0xb6, 0x5c, 0xbd, 0x1a, 0xf5, 0x9c, 0xed, 0x8b, 0x55, 0xe9, 0x68, 0x7a,
7347 0xad, 0xdc, 0x1a, 0x35, 0x67, 0x2d, 0x2b, 0xa0, 0x01, 0xb8, 0x5e, 0x4d,
7348 0x8d, 0xd1, 0x31, 0x43, 0x59, 0xda, 0x63, 0xb5, 0xcc, 0x5e, 0x39, 0xee,
7349 0xce, 0xcc, 0xab, 0x67, 0xa9, 0x51, 0x48, 0x88, 0x64, 0x0a, 0x17, 0x1f,
7350 0x33, 0x45, 0x89, 0xae, 0x3c, 0x1f, 0x25, 0xef, 0x13, 0x0e, 0x6f, 0xf2,
7351 0x5f, 0xff, 0xb6, 0xbc, 0x0e, 0xb3, 0xa6, 0xa4, 0x62, 0xf0, 0xb2, 0x6b,
7352 0x65, 0x95, 0x13, 0x58, 0xac, 0x22, 0x2d, 0x54, 0x56, 0xeb, 0x81, 0x56,
7353 0x1f, 0xdb, 0x5d, 0xf7, 0x41, 0xfd, 0xfd, 0x5e, 0xfb, 0xf7, 0x7b, 0xe2,
7354 0x71, 0x3c, 0x39, 0xbf, 0xfb, 0xc4, 0xf1, 0x69, 0x4a, 0x2e, 0x70, 0x68,
7355 0xbd, 0x99, 0x4d, 0xc0, 0x12, 0xc6, 0x8f, 0xca, 0x91, 0x13, 0x8b, 0x4a,
7356 0x14, 0xb7, 0x3f, 0x63, 0x91, 0x56, 0x05, 0x72, 0x1c, 0xf1, 0x08, 0x3c,
7357 0xc4, 0x02, 0x20, 0x05, 0x5c, 0x0b, 0x6a, 0x8a, 0x4f, 0x2b, 0x6a, 0x90,
7358 0x7e, 0xff, 0xd4, 0x01, 0xba, 0xbd, 0x4a, 0x43, 0xb1, 0x2f, 0xcd, 0xa8,
7359 0x19, 0xa6, 0xcb, 0x3b, 0xab, 0xdf, 0x4a, 0x7f, 0xfd, 0xc4, 0x15, 0x7a,
7360 0x29, 0x6b, 0xe1, 0xa9, 0x1a, 0x71, 0xad, 0xe9, 0x7e, 0x74, 0x0e, 0x00,
7361 0x3b, 0x56, 0x0c, 0x8e, 0xf3, 0x75, 0xd4, 0xe8, 0x57, 0x52, 0x87, 0xf6,
7362 0x06, 0x65, 0x27, 0xe1, 0x5b, 0x9e, 0x23, 0xbb, 0x12, 0xea, 0x28, 0xd0,
7363 0x2d, 0x21, 0x67, 0xbc, 0xae, 0xfa, 0x8f, 0x7b, 0x3b, 0x3b, 0xbb, 0xfb,
7364 0xbb, 0x9f, 0x3d, 0xdf, 0xd9, 0xdf, 0xdd, 0xdd, 0xdd, 0xdb, 0xdf, 0xdd,
7365 0xdf, 0xdf, 0xdb, 0xf9, 0x69, 0x9b, 0x5d, 0x47, 0x77, 0x69, 0x72, 0x6f,
7366 0x31, 0x29, 0xc9, 0xe7, 0x82, 0x58, 0x4b, 0x4d, 0x6e, 0xbd, 0xbb, 0xeb,
7367 0x0d, 0xd7, 0x0c, 0x1f, 0xc7, 0x4c, 0x20, 0xe0, 0x6b, 0x21, 0x24, 0x5b,
7368 0xfa, 0x6c, 0x45, 0xec, 0xc1, 0x80, 0x30, 0x19, 0xbd, 0xfa, 0xfb, 0x8a,
7369 0x47, 0x3a, 0x61, 0x6b, 0x00, 0x26, 0x4d, 0xe9, 0x72, 0xc3, 0xae, 0xe7,
7370 0xf9, 0x64, 0x02, 0x00, 0xbc, 0x4b, 0x8f, 0x1c, 0x45, 0xcc, 0xcc, 0x79,
7371 0x2b, 0x22, 0xa1, 0x41, 0x03, 0xc0, 0xd3, 0x64, 0xa3, 0xfb, 0xd9, 0x11,
7372 0xbb, 0x4b, 0x21, 0xb9, 0xd3, 0x9c, 0x19, 0xea, 0x67, 0xac, 0x94, 0x68,
7373 0x92, 0x0a, 0x97, 0x36, 0x11, 0x5d, 0x25, 0x9f, 0xed, 0xec, 0xef, 0x73,
7374 0x11, 0x89, 0x3f, 0xec, 0x0e, 0x14, 0x59, 0x18, 0xc2, 0xa5, 0x07, 0xee,
7375 0x74, 0x92, 0x36, 0xf8, 0xf6, 0x11, 0x8e, 0x33, 0x5b, 0x2d, 0x92, 0x42,
7376 0xef, 0x21, 0x38, 0x0f, 0x85, 0x40, 0x86, 0x85, 0xd1, 0xba, 0xec, 0x9e,
7377 0x45, 0x59, 0x14, 0xb8, 0xe4, 0x25, 0xbf, 0xc1, 0x1f, 0x9e, 0xba, 0xcf,
7378 0xb1, 0x55, 0x32, 0x29, 0x38, 0xc9, 0x0f, 0xc3, 0x20, 0x07, 0x2b, 0x46,
7379 0x7e, 0x1b, 0xda, 0xaa, 0x9a, 0xd3, 0xf1, 0x63, 0xd0, 0xf9, 0xbd, 0x67,
7380 0xbb, 0x3f, 0x09, 0x90, 0x8d, 0x05, 0xdc, 0xcf, 0x82, 0x96, 0x09, 0x9b,
7381 0xa9, 0x3d, 0x22, 0x69, 0x60, 0x2a, 0x18, 0x9b, 0xc9, 0xe8, 0x7a, 0x64,
7382 0x46, 0x82, 0x3a, 0x0e, 0x07, 0x21, 0x9c, 0x58, 0x18, 0xac, 0xa5, 0xa4,
7383 0x2c, 0xae, 0x5d, 0xe6, 0x1b, 0x32, 0xdf, 0xae, 0xf8, 0x25, 0x6b, 0xf5,
7384 0x5e, 0x36, 0xe8, 0xc8, 0x38, 0x38, 0x39, 0x65, 0xbc, 0xca, 0x29, 0x59,
7385 0x60, 0x63, 0x53, 0x65, 0x80, 0xf4, 0x00, 0x6f, 0x93, 0xa5, 0x7c, 0x9a,
7386 0x0e, 0x1c, 0xb5, 0xbc, 0xc1, 0xe2, 0x61, 0x56, 0xb0, 0xdf, 0x5d, 0x2c,
7387 0x73, 0xe5, 0x81, 0x22, 0x7b, 0x98, 0xf4, 0x59, 0x29, 0xee, 0x14, 0xd0,
7388 0x2d, 0x32, 0x0f, 0x31, 0x62, 0x1c, 0xb0, 0x78, 0x65, 0xe2, 0x51, 0xd9,
7389 0xa2, 0x48, 0xe6, 0xc9, 0x9d, 0xfa, 0x3d, 0x84, 0xbc, 0xee, 0x2b, 0x0d,
7390 0x2f, 0x48, 0x61, 0xbb, 0xca, 0x47, 0x49, 0x6a, 0x11, 0x0c, 0xfe, 0xe6,
7391 0xb6, 0xe4, 0xfd, 0xfb, 0x74, 0x6e, 0xd4, 0xb6, 0x76, 0x84, 0xcb, 0x16,
7392 0xcd, 0xe1, 0xf7, 0x86, 0x6c, 0x82, 0x2a, 0x0e, 0xe9, 0x6d, 0xa9, 0x19,
7393 0xbb, 0x4d, 0x54, 0xa0, 0x5c, 0xe5, 0xad, 0x34, 0x92, 0xb8, 0xc5, 0x06,
7394 0xc6, 0x89, 0x29, 0xce, 0x3c, 0xb6, 0x5a, 0x06, 0xec, 0x42, 0x91, 0xe2,
7395 0xbb, 0x64, 0x2f, 0x31, 0xf3, 0xf9, 0x40, 0x92, 0x83, 0x70, 0x00, 0xe5,
7396 0x73, 0xfa, 0x27, 0x80, 0x0e, 0x3c, 0xeb, 0x78, 0x96, 0x39, 0xfd, 0x02,
7397 0xf8, 0x11, 0xfd, 0x53, 0x60, 0xaf, 0xfa, 0x2f, 0x34, 0x55, 0xac, 0x40,
7398 0x1d, 0x39, 0x10, 0x61, 0xe5, 0x78, 0x40, 0x35, 0x1d, 0xb9, 0xde, 0x6b,
7399 0x38, 0x4e, 0xfa, 0x7f, 0x64, 0xd1, 0x22, 0x53, 0x13, 0x79, 0x61, 0xb3,
7400 0x2b, 0xab, 0x30, 0x91, 0x4a, 0x56, 0x5f, 0xae, 0xd8, 0x4f, 0xed, 0x2a,
7401 0x35, 0x70, 0x2f, 0x16, 0x2c, 0x5a, 0x89, 0x14, 0x8d, 0x73, 0x8d, 0xb3,
7402 0xc1, 0xb5, 0xa2, 0xd5, 0x95, 0xd6, 0x4f, 0xf3, 0x7b, 0xae, 0x78, 0x77,
7403 0x75, 0x95, 0x4e, 0xb9, 0x90, 0x81, 0xa7, 0x88, 0x64, 0xad, 0x2a, 0x0f,
7404 0x2e, 0xac, 0xcc, 0x06, 0x8d, 0x2d, 0x5a, 0xae, 0x26, 0x73, 0xda, 0x4b,
7405 0x06, 0x5c, 0x1c, 0x45, 0x07, 0x98, 0x25, 0xb2, 0x85, 0xd0, 0x9c, 0x84,
7406 0xd9, 0x60, 0x0e, 0x36, 0x70, 0x72, 0x5a, 0x8e, 0x97, 0x4f, 0xc8, 0x05,
7407 0x4a, 0xff, 0x31, 0x26, 0x6c, 0x91, 0x67, 0x06, 0x7b, 0x5e, 0x95, 0x42,
7408 0x18, 0x66, 0xb5, 0x7b, 0x37, 0xc4, 0x67, 0x98, 0xce, 0x95, 0xa1, 0x57,
7409 0x0d, 0x67, 0xbc, 0x11, 0x0e, 0x66, 0x36, 0x5c, 0xde, 0x2c, 0x6d, 0xa5,
7410 0x4d, 0x5f, 0x89, 0x32, 0x53, 0xa0, 0x2d, 0x8e, 0xb7, 0xf3, 0xaf, 0xcf,
7411 0x47, 0xd1, 0x31, 0xb7, 0x24, 0x7d, 0xd2, 0x73, 0x08, 0x37, 0x28, 0xfa,
7412 0x1d, 0x0d, 0xf6, 0x9a, 0x15, 0xf8, 0x59, 0xc1, 0xff, 0x42, 0x6b, 0xfa,
7413 0x4b, 0x71, 0x9a, 0xe0, 0xb7, 0xf5, 0xaf, 0x52, 0x43, 0x86, 0x88, 0x3b,
7414 0xc7, 0xdf, 0x69, 0xab, 0x90, 0x76, 0x74, 0xcb, 0xe4, 0xbf, 0x90, 0x17,
7415 0x35, 0x7a, 0x05, 0x79, 0x33, 0x22, 0xa5, 0x09, 0xd5, 0xb7, 0x7c, 0xc0,
7416 0xfa, 0xe1, 0xc2, 0x0d, 0x4e, 0x0e, 0x3d, 0x1e, 0xa4, 0x81, 0x40, 0xb4,
7417 0x54, 0xfc, 0x1c, 0xb0, 0x46, 0xf6, 0x55, 0x21, 0xc4, 0x02, 0x45, 0xa2,
7418 0x30, 0xa4, 0x5c, 0x03, 0x18, 0x72, 0xdf, 0x28, 0x93, 0xc6, 0x76, 0x0d,
7419 0xcc, 0x2b, 0xfb, 0x05, 0x1b, 0xc5, 0xdc, 0x17, 0x52, 0x42, 0xb4, 0x04,
7420 0xa3, 0x8d, 0xff, 0x1f, 0xcc, 0x37, 0x75, 0x37, 0xce, 0x27, 0x02, 0x00,
7421
74157422 };
74167423 #define BUF_SIZE 0x10000
74177424 static voidpf zalloc_func(voidpf opaque, unsigned int items, unsigned int size)
6565 }
6666 #endif
6767
68 if(!outs->filename && (cb > 20) &&
69 checkprefix("Content-disposition:", str)) {
68 if((cb > 20) && checkprefix("Content-disposition:", str)) {
7069 const char *p = str + 20;
7170
7271 /* look for the 'filename=' parameter
44 * | (__| |_| | _ <| |___
55 * \___|\___/|_| \_\_____|
66 *
7 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
7 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
88 *
99 * This software is licensed as described in the file COPYING, which
1010 * you should have received as part of this distribution. The terms
7171 * the old curl_formparse code.
7272 *
7373 ***************************************************************************/
74
75 #define FORM_FILE_SEPARATOR ','
76 #define FORM_TYPE_SEPARATOR ';'
7774
7875 int formparse(struct Configurable *config,
7976 const char *input,
119116 char *ptr;
120117 char *filename = NULL;
121118
122 sep = strchr(contp, FORM_TYPE_SEPARATOR);
123 sep2 = strchr(contp, FORM_FILE_SEPARATOR);
119 sep = strchr(contp, ';');
120 sep2 = strchr(contp, ',');
124121
125122 /* pick the closest */
126123 if(sep2 && (sep2 < sep)) {
132129 type = NULL;
133130
134131 if(sep) {
135
136 /* if we got here on a comma, don't do much */
137 if(FORM_FILE_SEPARATOR == *sep)
138 ptr = NULL;
139 else
140 ptr = sep+1;
132 bool semicolon = (';' == *sep) ? TRUE : FALSE;
141133
142134 *sep = '\0'; /* terminate file name at separator */
143135
144 while(ptr && (FORM_FILE_SEPARATOR!= *ptr)) {
136 ptr = sep+1; /* point to the text following the separator */
137
138 while(semicolon && ptr && (','!= *ptr)) {
145139
146140 /* pass all white spaces */
147141 while(ISSPACE(*ptr))
167161 specified and if not we simply assume that it is text that
168162 the user wants included in the type and include that too up
169163 to the next zero or semicolon. */
170 if((*sep==';') && !checkprefix(";filename=", sep)) {
171 sep2 = strchr(sep+1, ';');
172 if(sep2)
173 sep = sep2;
174 else
175 sep = sep + strlen(sep); /* point to end of string */
176 }
164 if(*sep==';') {
165 if(!checkprefix(";filename=", sep)) {
166 sep2 = strchr(sep+1, ';');
167 if(sep2)
168 sep = sep2;
169 else
170 sep = sep + strlen(sep); /* point to end of string */
171 }
172 }
173 else
174 semicolon = FALSE;
177175
178176 if(*sep) {
179177 *sep = '\0'; /* zero terminate type string */
185183 }
186184 else if(checkprefix("filename=", ptr)) {
187185 filename = &ptr[9];
188 ptr = strchr(filename, FORM_TYPE_SEPARATOR);
186 ptr = strchr(filename, ';');
189187 if(!ptr) {
190 ptr = strchr(filename, FORM_FILE_SEPARATOR);
188 ptr = strchr(filename, ',');
191189 }
192190 if(ptr) {
193191 *ptr = '\0'; /* zero terminate */
198196 /* confusion, bail out of loop */
199197 break;
200198 }
201 /* find the following comma */
202 if(ptr)
203 sep = strchr(ptr, FORM_FILE_SEPARATOR);
204 else
205 sep = NULL;
206 }
207 else {
208 sep = strchr(contp, FORM_FILE_SEPARATOR);
209 }
210 if(sep) {
211 /* the next file name starts here */
212 *sep = '\0';
213 sep++;
214 }
199
200 sep = ptr;
201 }
202
215203 /* if type == NULL curl_formadd takes care of the problem */
216204
217205 if(!AddMultiFiles(contp, type, filename, &multi_start,
575575
576576 if((urlnode->flags & GETOUT_USEREMOTE)
577577 && config->content_disposition) {
578 /* Our header callback sets the filename */
578 /* Our header callback MIGHT set the filename */
579579 DEBUGASSERT(!outs.filename);
580580 }
581
582 if(config->resume_from_current) {
583 /* We're told to continue from where we are now. Get the size
584 of the file as it is now and open it for append instead */
585 struct_stat fileinfo;
586 /* VMS -- Danger, the filesize is only valid for stream files */
587 if(0 == stat(outfile, &fileinfo))
588 /* set offset to current file size: */
589 config->resume_from = fileinfo.st_size;
590 else
591 /* let offset be 0 */
592 config->resume_from = 0;
593 }
594
595 if(config->resume_from) {
596 /* open file for output: */
597 FILE *file = fopen(outfile, config->resume_from?"ab":"wb");
598 if(!file) {
599 helpf(config->errors, "Can't open '%s'!\n", outfile);
600 res = CURLE_WRITE_ERROR;
601 goto quit_urls;
602 }
603 outs.fopened = TRUE;
604 outs.stream = file;
605 outs.init = config->resume_from;
606 }
581607 else {
582 if(config->resume_from_current) {
583 /* We're told to continue from where we are now. Get the size
584 of the file as it is now and open it for append instead */
585 struct_stat fileinfo;
586 /* VMS -- Danger, the filesize is only valid for stream files */
587 if(0 == stat(outfile, &fileinfo))
588 /* set offset to current file size: */
589 config->resume_from = fileinfo.st_size;
590 else
591 /* let offset be 0 */
592 config->resume_from = 0;
593 }
594
595 if(config->resume_from) {
596 /* open file for output: */
597 FILE *file = fopen(outfile, config->resume_from?"ab":"wb");
598 if(!file) {
599 helpf(config->errors, "Can't open '%s'!\n", outfile);
600 res = CURLE_WRITE_ERROR;
601 goto quit_urls;
602 }
603 outs.fopened = TRUE;
604 outs.stream = file;
605 outs.init = config->resume_from;
606 }
607 else {
608 outs.stream = NULL; /* open when needed */
609 }
610 outs.filename = outfile;
611 outs.s_isreg = TRUE;
612 }
608 outs.stream = NULL; /* open when needed */
609 }
610 outs.filename = outfile;
611 outs.s_isreg = TRUE;
613612 }
614613
615614 if(uploadfile && !stdin_upload(uploadfile)) {
767766 /* for uploads */
768767 input.fd = infd;
769768 input.config = config;
769 /* Note that if CURLOPT_READFUNCTION is fread (the default), then
770 * lib/telnet.c will Curl_poll() on the input file descriptor
771 * rather then calling the READFUNCTION at regular intervals.
772 * The circumstances in which it is preferable to enable this
773 * behaviour, by omitting to set the READFUNCTION & READDATA options,
774 * have not been determined.
775 */
770776 my_setopt(curl, CURLOPT_READDATA, &input);
771777 /* what call to read */
772 if((outfile && !curlx_strequal("-", outfile)) ||
773 !checkprefix("telnet:", this_url))
774 my_setopt(curl, CURLOPT_READFUNCTION, tool_read_cb);
778 my_setopt(curl, CURLOPT_READFUNCTION, tool_read_cb);
775779
776780 /* in 7.18.0, the CURLOPT_SEEKFUNCTION/DATA pair is taking over what
777781 CURLOPT_IOCTLFUNCTION/DATA pair previously provided for seeking */
12331237 RETRY_LAST /* not used */
12341238 } retry = RETRY_NO;
12351239 long response;
1236 if(CURLE_OPERATION_TIMEDOUT == res)
1240 if((CURLE_OPERATION_TIMEDOUT == res) ||
1241 (CURLE_COULDNT_RESOLVE_HOST == res) ||
1242 (CURLE_COULDNT_RESOLVE_PROXY == res) ||
1243 (CURLE_FTP_ACCEPT_TIMEOUT == res))
12371244 /* retry timeout always */
12381245 retry = RETRY_TIMEOUT;
12391246 else if((CURLE_OK == res) ||
177177 return CURLE_OUT_OF_MEMORY;
178178 }
179179 }
180
181 /* in case we built debug enabled, we allow an environment variable
182 * named CURL_TESTDIR to prefix the given file name to put it into a
183 * specific directory
184 */
185 #ifdef DEBUGBUILD
186 {
187 char *tdir = curlx_getenv("CURL_TESTDIR");
188 if(tdir) {
189 char buffer[512]; /* suitably large */
190 snprintf(buffer, sizeof(buffer), "%s/%s", tdir, *filename);
191 Curl_safefree(*filename);
192 *filename = strdup(buffer); /* clone the buffer */
193 curl_free(tdir);
194 }
195 }
196 #endif
197
180198 return CURLE_OK;
181199 }
182200
122122 */
123123 double tool_tvdiff_secs(struct timeval newer, struct timeval older)
124124 {
125 return (double)(newer.tv_sec-older.tv_sec)+
126 (double)(newer.tv_usec-older.tv_usec)/1000000.0;
125 if(newer.tv_sec != older.tv_sec)
126 return (double)(newer.tv_sec-older.tv_sec)+
127 (double)(newer.tv_usec-older.tv_usec)/1000000.0;
128 else
129 return (double)(newer.tv_usec-older.tv_usec)/1000000.0;
127130 }
128131
129132 /* return the number of seconds in the given input timeval struct */
2424
2525 #define CURL_NAME "curl"
2626 #define CURL_COPYRIGHT LIBCURL_COPYRIGHT
27 #define CURL_VERSION "7.23.1"
27 #define CURL_VERSION "7.24.0"
2828 #define CURL_VERSION_MAJOR LIBCURL_VERSION_MAJOR
2929 #define CURL_VERSION_MINOR LIBCURL_VERSION_MINOR
3030 #define CURL_VERSION_PATCH LIBCURL_VERSION_PATCH
159159 smtp
160160 httptls+srp
161161 httptls+srp-ipv6
162 http-proxy
162163
163164 Give only one per line. This subsection is mandatory.
164165 </server>
270271 %CLIENTIP - IPv4 address of the client running curl
271272 %CLIENT6IP - IPv6 address of the client running curl
272273 %HOSTIP - IPv4 address of the host running this test
273 %HOSTPORT - Port number of the HTTP server
274 %HTTPPORT - Port number of the HTTP server
274275 %HOST6IP - IPv6 address of the host running this test
275 %HOST6PORT - IPv6 port number of the HTTP server
276 %HTTP6PORT - IPv6 port number of the HTTP server
276277 %HTTPSPORT - Port number of the HTTPS server
278 %PROXYPORT - Port number of the HTTP proxy
277279 %FTPPORT - Port number of the FTP server
278280 %FTP6PORT - IPv6 port number of the FTP server
279281 %FTPSPORT - Port number of the FTPS server
320322 One perl op per line that operates on the protocol dump. This is pretty
321323 advanced. Example: "s/^EPRT .*/EPRT stripped/"
322324 </strippart>
325
323326 <protocol [nonewline="yes"]>
324 the protocol dump curl should transmit, if 'nonewline' is set, we will cut
325 off the trailing newline of this given data before comparing with the one
326 actually sent by the client
327 Variables are substituted as in the <command> section.
327
328 the protocol dump curl should transmit, if 'nonewline' is set, we will cut off
329 the trailing newline of this given data before comparing with the one actually
330 sent by the client Variables are substituted as in the <command> section. The
331 <strip> and <strippart> rules are applied before comparisons are made.
332
328333 </protocol>
334
335 <proxy [nonewline="yes"]>
336
337 The protocol dump curl should transmit to a HTTP proxy (when the http-proxy
338 server is used), if 'nonewline' is set, we will cut off the trailing newline
339 of this given data before comparing with the one actually sent by the client
340 Variables are substituted as in the <command> section. The <strip> and
341 <strippart> rules are applied before comparisons are made.
342
343 </proxy>
344
329345 <stdout [mode="text"] [nonewline="yes"]>
330346 This verifies that this data was passed to stdout. Variables are
331347 substituted as in the <command> section.
6868 $(top_srcdir)/m4/curl-system.m4 $(top_srcdir)/m4/libtool.m4 \
6969 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
7070 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
71 $(top_srcdir)/m4/xc-translit.m4 $(top_srcdir)/acinclude.m4 \
71 $(top_srcdir)/m4/xc-translit.m4 \
72 $(top_srcdir)/m4/zz50-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \
7273 $(top_srcdir)/configure.ac
7374 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
7475 $(ACLOCAL_M4)
220221 USE_EMBEDDED_ARES_FALSE = @USE_EMBEDDED_ARES_FALSE@
221222 USE_EMBEDDED_ARES_TRUE = @USE_EMBEDDED_ARES_TRUE@
222223 USE_GNUTLS = @USE_GNUTLS@
224 USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
223225 USE_LIBRTMP = @USE_LIBRTMP@
224226 USE_LIBSSH2 = @USE_LIBSSH2@
225227 USE_MANUAL_FALSE = @USE_MANUAL_FALSE@
230232 USE_SSLEAY = @USE_SSLEAY@
231233 USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
232234 VERSION = @VERSION@
235 VERSIONED_FLAVOUR = @VERSIONED_FLAVOUR@
236 VERSIONED_SYMBOLS_FALSE = @VERSIONED_SYMBOLS_FALSE@
237 VERSIONED_SYMBOLS_TRUE = @VERSIONED_SYMBOLS_TRUE@
233238 VERSIONNUM = @VERSIONNUM@
234239 ac_ct_AR = @ac_ct_AR@
235240 ac_ct_CC = @ac_ct_CC@
9797 3 to 9. Any test numbers starting with ! are disabled, as are any test
9898 numbers found in the file data/DISABLED (one per line).
9999
100 When -s is not present, each successful test will display on one line the
101 test number and description and on the next line a set of flags, the test
102 result, current test sequence, total number of tests to be run and an
103 estimated amount of time to complete the test run. The flags consist of
104 these letters describing what is checked in this test:
105
106 s stdout
107 d data
108 u upload
109 p protocol
110 o output
111 e exit code
112 m memory
113 v valgrind
114
100115 1.5 Shell startup scripts
101116
102117 Tests which use the ssh test server, SCP/SFTP/SOCKS tests, might be badly
11 # test cases are run by runtests.pl. Just add the plain test case numbers, one
22 # per line.
33 # Lines starting with '#' letters are treated as comments.
4 811
5 591
6 592
7 593
84 594
9 1206
10 1207
11 1208
125 1209
6 1211
4747 test562 test563 test564 test565 test566 test567 test568 test569 test570 \
4848 test571 test572 test573 test574 test575 test576 test578 test579 test580 \
4949 test581 test582 test583 test584 test585 test586 test587 test588 test590 \
50 test591 test592 test593 test594 \
50 test591 test592 test593 test594 test595 test596 test597 \
5151 test600 test601 test602 test603 test604 \
5252 test605 test606 test607 test608 test609 test610 test611 test612 test613 \
5353 test614 test615 test616 test617 test618 test619 test620 test621 test622 \
5454 test623 test624 test625 test626 test627 test628 test629 test630 test631 \
55 test632 test633 test634 test635 test636 test637 test700 test701 test702 \
56 test703 test704 test705 test706 test707 test708 test709 test710 \
55 test632 test633 test634 test635 test636 test637 test638 test639 \
56 test700 test701 test702 test703 test704 test705 test706 test707 test708 \
57 test709 test710 \
5758 test800 test801 test802 \
5859 test803 test804 test805 test806 test807 test808 test809 test810 test811 \
59 test812 test813 test814 \
60 test812 test813 test814 test815 \
6061 test1000 test1001 test1002 test1003 test1004 test1005 \
6162 test1006 test1007 test1008 test1009 test1010 test1011 test1012 test1013 \
6263 test1014 test1015 test1016 test1017 test1018 test1019 test1020 test1021 \
7576 test1118 test1119 test1120 test1121 test1122 test1123 test1124 test1125 \
7677 test1126 test1127 test1128 test1129 test1130 test1131 \
7778 test1200 test1201 test1202 test1203 test1204 test1205 test1206 test1207 \
78 test1208 test1209 \
79 test1208 test1209 test1210 test1211 \
80 test1220 \
7981 test1300 test1301 test1302 test1303 test1304 test1305 \
8082 test1306 test1307 test1308 test1309 test1310 test1311 test1312 test1313 \
81 test1314 \
83 test1314 test1315 test1316 test1317 test1318 test1319 test1320 test1321 \
84 test1322 test1323 test1324 test1325 test1326 test1327 \
8285 test2000 test2001 test2002 test2003 test2004
8386
8487 EXTRA_DIST = $(TESTCASES) DISABLED
4646 $(top_srcdir)/m4/curl-system.m4 $(top_srcdir)/m4/libtool.m4 \
4747 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
4848 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
49 $(top_srcdir)/m4/xc-translit.m4 $(top_srcdir)/acinclude.m4 \
49 $(top_srcdir)/m4/xc-translit.m4 \
50 $(top_srcdir)/m4/zz50-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \
5051 $(top_srcdir)/configure.ac
5152 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
5253 $(ACLOCAL_M4)
190191 USE_EMBEDDED_ARES_FALSE = @USE_EMBEDDED_ARES_FALSE@
191192 USE_EMBEDDED_ARES_TRUE = @USE_EMBEDDED_ARES_TRUE@
192193 USE_GNUTLS = @USE_GNUTLS@
194 USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
193195 USE_LIBRTMP = @USE_LIBRTMP@
194196 USE_LIBSSH2 = @USE_LIBSSH2@
195197 USE_MANUAL_FALSE = @USE_MANUAL_FALSE@
200202 USE_SSLEAY = @USE_SSLEAY@
201203 USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
202204 VERSION = @VERSION@
205 VERSIONED_FLAVOUR = @VERSIONED_FLAVOUR@
206 VERSIONED_SYMBOLS_FALSE = @VERSIONED_SYMBOLS_FALSE@
207 VERSIONED_SYMBOLS_TRUE = @VERSIONED_SYMBOLS_TRUE@
203208 VERSIONNUM = @VERSIONNUM@
204209 ac_ct_AR = @ac_ct_AR@
205210 ac_ct_CC = @ac_ct_CC@
295300 test562 test563 test564 test565 test566 test567 test568 test569 test570 \
296301 test571 test572 test573 test574 test575 test576 test578 test579 test580 \
297302 test581 test582 test583 test584 test585 test586 test587 test588 test590 \
298 test591 test592 test593 test594 \
303 test591 test592 test593 test594 test595 test596 test597 \
299304 test600 test601 test602 test603 test604 \
300305 test605 test606 test607 test608 test609 test610 test611 test612 test613 \
301306 test614 test615 test616 test617 test618 test619 test620 test621 test622 \
302307 test623 test624 test625 test626 test627 test628 test629 test630 test631 \
303 test632 test633 test634 test635 test636 test637 test700 test701 test702 \
304 test703 test704 test705 test706 test707 test708 test709 test710 \
308 test632 test633 test634 test635 test636 test637 test638 test639 \
309 test700 test701 test702 test703 test704 test705 test706 test707 test708 \
310 test709 test710 \
305311 test800 test801 test802 \
306312 test803 test804 test805 test806 test807 test808 test809 test810 test811 \
307 test812 test813 test814 \
313 test812 test813 test814 test815 \
308314 test1000 test1001 test1002 test1003 test1004 test1005 \
309315 test1006 test1007 test1008 test1009 test1010 test1011 test1012 test1013 \
310316 test1014 test1015 test1016 test1017 test1018 test1019 test1020 test1021 \
323329 test1118 test1119 test1120 test1121 test1122 test1123 test1124 test1125 \
324330 test1126 test1127 test1128 test1129 test1130 test1131 \
325331 test1200 test1201 test1202 test1203 test1204 test1205 test1206 test1207 \
326 test1208 test1209 \
332 test1208 test1209 test1210 test1211 \
333 test1220 \
327334 test1300 test1301 test1302 test1303 test1304 test1305 \
328335 test1306 test1307 test1308 test1309 test1310 test1311 test1312 test1313 \
329 test1314 \
336 test1314 test1315 test1316 test1317 test1318 test1319 test1320 test1321 \
337 test1322 test1323 test1324 test1325 test1326 test1327 \
330338 test2000 test2001 test2002 test2003 test2004
331339
332340 EXTRA_DIST = $(TESTCASES) DISABLED
3030 <client>
3131 <server>
3232 http
33 http-proxy
3334 </server>
3435 <name>
3536 HTTP 1.0 CONNECT with proxytunnel and downgrade GET to HTTP/1.0
3637 </name>
3738 <command>
38 --proxy1.0 %HOSTIP:%HTTPPORT -p http://%HOSTIP:%HTTPPORT/we/want/that/page/1078 http://%HOSTIP:%HTTPPORT/we/want/that/page/1078
39 --proxy1.0 %HOSTIP:%PROXYPORT -p http://%HOSTIP:%HTTPPORT/we/want/that/page/1078 http://%HOSTIP:%HTTPPORT/we/want/that/page/1078
3940 </command>
4041 </client>
4142
4546 <strip>
4647 ^User-Agent:.*
4748 </strip>
48 <protocol>
49 <proxy>
4950 CONNECT %HOSTIP:%HTTPPORT HTTP/1.0
5051 Host: %HOSTIP:%HTTPPORT
5152 Proxy-Connection: Keep-Alive
5253
54 </proxy>
55 <protocol>
5356 GET /we/want/that/page/1078 HTTP/1.1
5457 Host: %HOSTIP:%HTTPPORT
5558 Accept: */*
4646 QUIT
4747 </protocol>
4848 <errorcode>
49 19
49 10
5050 </errorcode>
5151 </verify>
5252 </testcase>
4646 QUIT
4747 </protocol>
4848 <errorcode>
49 19
49 10
5050 </errorcode>
5151 </verify>
5252 </testcase>
4646 QUIT
4747 </protocol>
4848 <errorcode>
49 19
49 12
5050 </errorcode>
5151 </verify>
5252 </testcase>
3535 <strippart>
3636 s/^EPRT \|1\|(.*)/EPRT \|1\|/
3737 </strippart>
38
39 # The protocol part does not include QUIT simply because the error is
40 # CURLE_OPERATION_TIMEDOUT (28) which is a generic timeout error without
41 # specificly saying for which connection it concerns, and for timeouts libcurl
42 # marks the control channel as "invalid". As this test case times out for the
43 # data connection it could still use the control channel.
3844 <protocol>
3945 USER anonymous
4046 PASS ftp@example.com
4349 TYPE I
4450 SIZE 1209
4551 RETR 1209
46 QUIT
4752 </protocol>
4853 <errorcode>
49 19
54 28
5055 </errorcode>
5156 </verify>
5257 </testcase>
0 <testcase>
1 <info>
2 <keywords>
3 HTTP
4 HTTP GET
5 -J
6 </keywords>
7 </info>
8
9 #
10 <reply>
11 <data nocheck="yes">
12 HTTP/1.1 200 OK
13 Date: Thu, 09 Nov 2010 14:49:00 GMT
14 Server: test-server/fake
15 Content-Length: 6
16 Connection: close
17 Content-Type: text/html
18
19 12345
20 </data>
21 </reply>
22
23 #
24 # Client-side
25 <client>
26 # this relies on the debug feature to allow us to set directory to store the
27 # -O output in, using the CURL_TESTDIR variable
28 <features>
29 debug
30 </features>
31 <server>
32 http
33 </server>
34 <name>
35 HTTP GET with -J without Content-Disposition
36 </name>
37 <setenv>
38 CURL_TESTDIR=%PWD/log
39 </setenv>
40 <command option="no-output,no-include">
41 http://%HOSTIP:%HTTPPORT/1210 -J -O
42 </command>
43 </client>
44
45 #
46 # Verify data after the test has been "shot"
47 <verify>
48 <strip>
49 ^User-Agent:.*
50 </strip>
51 <protocol>
52 GET /1210 HTTP/1.1
53 Host: %HOSTIP:%HTTPPORT
54 Accept: */*
55
56 </protocol>
57 <file name="log/1210">
58 12345
59 </file>
60
61 </verify>
62 </testcase>
0 <testcase>
1 <info>
2 <keywords>
3 FTP
4 PORT
5 RETR
6 NODATACONN425
7 </keywords>
8 </info>
9 # Server-side
10 <reply>
11 <data nocheck="yes">
12 some bytes
13 </data>
14 <servercmd>
15 NODATACONN425
16 </servercmd>
17 </reply>
18
19 # Client-side
20 <client>
21 <server>
22 ftp
23 </server>
24 <name>
25 FTP PORT and 425 on download
26 </name>
27 <command>
28 ftp://%HOSTIP:%FTPPORT/1211 -P -
29 </command>
30
31 </client>
32
33 # Verify data after the test has been "shot"
34 <verify>
35 <strippart>
36 s/^EPRT \|1\|(.*)/EPRT \|1\|/
37 </strippart>
38
39 <protocol>
40 USER anonymous
41 PASS ftp@example.com
42 PWD
43 EPRT |1|
44 TYPE I
45 SIZE 1211
46 RETR 1211
47 </protocol>
48 <errorcode>
49 28
50 </errorcode>
51 </verify>
52 </testcase>
0 <testcase>
1 # Server-side
2 <reply>
3 <data>
4 </data>
5 </reply>
6
7 # Client-side
8 <client>
9 <server>
10 file
11 </server>
12 <name>
13 file:// URLs with query string
14 </name>
15 <command>
16 file://localhost/%PWD/log/test1220.txt?a_query=foobar#afragment
17 </command>
18 <file name="log/test1220.txt">
19 contents in a single file
20 </file>
21 </client>
22
23 # Verify data after the test has been "shot"
24 <verify>
25 <stdout>
26 contents in a single file
27 </stdout>
28 </verify>
29 </testcase>
0 <testcase>
1 # Based on tests 186 and 1053
2 <info>
3 <keywords>
4 HTTP
5 HTTP FORMPOST
6 HTTP file upload
7 </keywords>
8 </info>
9
10 # Server-side
11 <reply>
12 <data>
13 HTTP/1.1 200 OK
14 Date: Thu, 29 Jul 2008 14:49:00 GMT
15 Server: test-server/fake
16 Content-Length: 0
17 Connection: close
18
19 </data>
20 </reply>
21
22 # Client-side
23 <client>
24 <server>
25 http
26 </server>
27 <name>
28 HTTP RFC1867-type formposting - -F with three files, one with explicit type
29 </name>
30 <command>
31 http://%HOSTIP:%HTTPPORT/we/want/1315 -F name=value -F 'file=@log/test1315.txt,log/test1315.txt;type=magic/content,log/test1315.txt'
32 </command>
33 # We create this file before the command is invoked!
34 <file name="log/test1315.txt">
35 dummy data
36 </file>
37 </client>
38
39 # Verify data after the test has been "shot"
40 <verify>
41 <strip>
42 (^User-Agent:.*|-----+\w+)
43 </strip>
44 <protocol>
45 POST /we/want/1315 HTTP/1.1
46 User-Agent: curl/7.18.2 (i686-pc-linux-gnu) libcurl/7.18.2 OpenSSL/0.9.7a ipv6 zlib/1.1.4
47 Host: %HOSTIP:%HTTPPORT
48 Accept: */*
49 Content-Length: 795
50 Expect: 100-continue
51 Content-Type: multipart/form-data; boundary=----------------------------9ef8d6205763
52
53 ------------------------------9ef8d6205763
54 Content-Disposition: form-data; name="name"
55
56 value
57 ------------------------------9ef8d6205763
58 Content-Disposition: form-data; name="file"
59 Content-Type: multipart/mixed; boundary=----------------------------aaaaaaaaaaaa
60
61 Content-Disposition: attachment; filename="test1315.txt"
62 Content-Type: text/plain
63
64 dummy data
65
66 ------------------------------9ef8d6205763
67 Content-Disposition: attachment; filename="test1315.txt"
68 Content-Type: magic/content
69
70 dummy data
71
72 ------------------------------9ef8d6205763
73 Content-Disposition: attachment; filename="test1315.txt"
74 Content-Type: text/plain
75
76 dummy data
77
78 ------------------------------aaaaaaaaaaaa--
79 ------------------------------9ef8d6205763--
80 </protocol>
81 </verify>
82 </testcase>
0 <testcase>
1 <info>
2 <keywords>
3 FTP
4 PASV
5 LIST
6 HTTP CONNECT
7 </keywords>
8 </info>
9 #
10 # Server-side
11 <reply>
12 # When doing LIST, we get the default list output hard-coded in the test
13 # FTP server
14 <datacheck>
15 HTTP/1.1 200 Mighty fine indeed
16
17 HTTP/1.1 200 Mighty fine indeed
18
19 total 20
20 drwxr-xr-x 8 98 98 512 Oct 22 13:06 .
21 drwxr-xr-x 8 98 98 512 Oct 22 13:06 ..
22 drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT
23 -r--r--r-- 1 0 1 35 Jul 16 1996 README
24 lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin
25 dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev
26 drwxrwxrwx 2 98 98 512 May 29 16:04 download.html
27 dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc
28 drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub
29 dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr
30 </datacheck>
31 </reply>
32
33 #
34 # Client-side
35 <client>
36 <server>
37 ftp
38 http-proxy
39 </server>
40 <name>
41 FTP LIST tunneled through HTTP proxy
42 </name>
43 <command>
44 ftp://%HOSTIP:%FTPPORT/ -p -x %HOSTIP:%PROXYPORT
45 </command>
46 </client>
47
48 #
49 # Verify data after the test has been "shot"
50 <verify>
51 <protocol>
52 USER anonymous
53 PASS ftp@example.com
54 PWD
55 EPSV
56 TYPE A
57 LIST
58 QUIT
59 </protocol>
60 </verify>
61 </testcase>
0 <testcase>
1 <info>
2 <keywords>
3 HTTP
4 HTTP GET
5 --resolve
6 </keywords>
7 </info>
8
9 #
10 # Server-side
11 <reply>
12 <data>
13 HTTP/1.1 200 OK
14 Date: Thu, 09 Nov 2010 14:49:00 GMT
15 Server: test-server/fake
16 Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
17 ETag: "21025-dc7-39462498"
18 Accept-Ranges: bytes
19 Content-Length: 6
20 Connection: close
21 Content-Type: text/html
22 Funny-head: yesyes
23
24 -foo-
25 </data>
26 </reply>
27
28 #
29 # Client-side
30 <client>
31 <server>
32 http
33 </server>
34 <name>
35 HTTP with --resolve
36 </name>
37 <command>
38 --resolve example.com:%HTTPPORT:%HOSTIP http://example.com:%HTTPPORT/1317
39 </command>
40 </client>
41
42 #
43 # Verify data after the test has been "shot"
44 <verify>
45 <strip>
46 ^User-Agent:.*
47 </strip>
48 <protocol>
49 GET /1317 HTTP/1.1
50 Host: example.com:%HTTPPORT
51 Accept: */*
52
53 </protocol>
54 </verify>
55 </testcase>
0 <testcase>
1 <info>
2 <keywords>
3 HTTP
4 HTTP GET
5 </keywords>
6 </info>
7
8 #
9 # Server-side
10 <reply>
11 <data>
12 HTTP/1.1 200 OK
13 Date: Thu, 09 Nov 2010 14:49:00 GMT
14 Server: test-server/fake
15 Content-Length: 0
16
17 </data>
18 <data1>
19 HTTP/1.1 200 second version
20 Date: Thu, 09 Nov 2010 14:49:00 GMT
21 Server: test-server/fake
22 Content-Length: 0
23
24 </data1>
25 </reply>
26
27 #
28 # Client-side
29 <client>
30 <server>
31 http
32 </server>
33 <name>
34 HTTP with same host name using different cases
35 </name>
36 <command>
37 --resolve MiXeDcAsE.cOm:%HTTPPORT:%HOSTIP http://MiXeDcAsE.cOm:%HTTPPORT/1318 http://mixedcase.com:%HTTPPORT/13180001
38 </command>
39 </client>
40
41 #
42 # Verify data after the test has been "shot"
43 <verify>
44 <strip>
45 ^User-Agent:.*
46 </strip>
47 <protocol>
48 GET /1318 HTTP/1.1
49 Host: MiXeDcAsE.cOm:%HTTPPORT
50 Accept: */*
51
52 GET /13180001 HTTP/1.1
53 Host: mixedcase.com:%HTTPPORT
54 Accept: */*
55
56 </protocol>
57 </verify>
58 </testcase>
0 <testcase>
1 <info>
2 <keywords>
3 POP3
4 RETR
5 HTTP CONNECT
6 </keywords>
7 </info>
8 #
9 # Server-side
10 <reply>
11 # When doing LIST, we get the default list output hard-coded in the test
12 # FTP server
13 <data>
14 From: me@somewhere
15 To: fake@nowhere
16
17 body
18
19 --
20 yours sincerely
21 </data>
22
23 <datacheck>
24 HTTP/1.1 200 Mighty fine indeed
25
26 From: me@somewhere
27 To: fake@nowhere
28
29 body
30
31 --
32 yours sincerely
33 </datacheck>
34 </reply>
35
36 #
37 # Client-side
38 <client>
39 <server>
40 pop3
41 http-proxy
42 </server>
43 <name>
44 POP3 fetch tunneled through HTTP proxy
45 </name>
46 <command>
47 pop3://%HOSTIP:%POP3PORT/1319 -p -x %HOSTIP:%PROXYPORT -u user:secret
48 </command>
49 </client>
50
51 #
52 # Verify data after the test has been "shot"
53 <verify>
54 <strip>
55 ^User-Agent:
56 </strip>
57 <protocol>
58 USER user
59 PASS secret
60 RETR 1319
61 QUIT
62 </protocol>
63 <proxy>
64 CONNECT %HOSTIP:%POP3PORT HTTP/1.1
65 Host: %HOSTIP:%POP3PORT
66 User-Agent: curl/7.24.0-DEV (i686-pc-linux-gnu) libcurl/7.24.0-DEV OpenSSL/1.0.0e zlib/1.2.3.4 c-ares/1.7.6-DEV libidn/1.23 libssh2/1.4.0_DEV librtmp/2.2e
67 Proxy-Connection: Keep-Alive
68
69 </proxy>
70 </verify>
71 </testcase>
0 <testcase>
1 <info>
2 <keywords>
3 SMTP
4 HTTP CONNECT
5 </keywords>
6 </info>
7
8 #
9 # Server-side
10 <reply>
11 </reply>
12
13 #
14 # Client-side
15 <client>
16 <server>
17 smtp
18 http-proxy
19 </server>
20 <name>
21 SMTP send tunneled trough HTTP proxy
22 </name>
23 <stdin>
24 From: different
25 To: another
26
27 body
28 </stdin>
29 <command>
30 smtp://%HOSTIP:%SMTPPORT/user --mail-rcpt 1320@foo --mail-rcpt 1320@foobar.example --mail-from 1320@from -T - -p -x %HOSTIP:%PROXYPORT
31 </command>
32 </client>
33
34 #
35 # Verify data after the test has been "shot"
36 <verify>
37 <strip>
38 ^User-Agent: curl/.*
39 </strip>
40 <protocol>
41 EHLO user
42 MAIL FROM:<1320@from>
43 RCPT TO:<1320@foo>
44 RCPT TO:<1320@foobar.example>
45 DATA
46 QUIT
47 </protocol>
48 <upload>
49 From: different
50 To: another
51
52 body
53
54 .
55 </upload>
56 <proxy>
57 CONNECT %HOSTIP:%SMTPPORT HTTP/1.1
58 Host: %HOSTIP:%SMTPPORT
59 User-Agent: curl/7.24.0-DEV (i686-pc-linux-gnu) libcurl/7.24.0-DEV OpenSSL/1.0.0e zlib/1.2.3.4 c-ares/1.7.6-DEV libidn/1.23 libssh2/1.4.0_DEV librtmp/2.2e
60 Proxy-Connection: Keep-Alive
61
62 </proxy>
63 </verify>
64 </testcase>
0 <testcase>
1 <info>
2 <keywords>
3 IMAP
4 FETCH
5 </keywords>
6 </info>
7
8 #
9 # Server-side
10 <reply>
11 <data>
12 From: me@somewhere
13 To: fake@nowhere
14
15 body
16
17 --
18 yours sincerely
19 </data>
20 <datacheck>
21 HTTP/1.1 200 Mighty fine indeed
22
23 From: me@somewhere
24 To: fake@nowhere
25
26 body
27
28 --
29 yours sincerely
30 </datacheck>
31 </reply>
32
33 #
34 # Client-side
35 <client>
36 <server>
37 imap
38 http-proxy
39 </server>
40 <name>
41 IMAP FETCH tunneled through HTTP proxy
42 </name>
43 <command>
44 imap://%HOSTIP:%IMAPPORT/1321 -u user:secret -p -x %HOSTIP:%PROXYPORT
45 </command>
46 </client>
47
48 #
49 # Verify data after the test has been "shot"
50 <verify>
51 <strip>
52 ^User-Agent: curl/.*
53 </strip>
54 <protocol>
55 B LOGIN user secret
56 C SELECT 1321
57 D FETCH 1 BODY[TEXT]
58 A LOGOUT
59 </protocol>
60 <proxy>
61 CONNECT %HOSTIP:%IMAPPORT HTTP/1.1
62 Host: %HOSTIP:%IMAPPORT
63 User-Agent: curl/7.24.0-DEV (i686-pc-linux-gnu) libcurl/7.24.0-DEV OpenSSL/1.0.0e zlib/1.2.3.4 c-ares/1.7.6-DEV libidn/1.23 libssh2/1.4.0_DEV librtmp/2.2e
64 Proxy-Connection: Keep-Alive
65
66 </proxy>
67 </verify>
68 </testcase>
0 <testcase>
1 <info>
2 <keywords>
3 POP3
4 CRLF-in-URL
5 </keywords>
6 </info>
7
8 # Client-side
9 <client>
10 <server>
11 pop3
12 </server>
13 <name>
14 POP3 with URL-encoded CR LF in the URL
15 </name>
16 <command>
17 pop3://%HOSTIP:%POP3PORT/%0d%0a/1322
18 </command>
19 </client>
20
21 #
22 <verify>
23 # 3 - CURLE_URL_MALFORMAT
24 <errorcode>
25 3
26 </errorcode>
27 </verify>
28 </testcase>
0 <testcase>
1 <info>
2 <keywords>
3 SMTP
4 CRLF-in-URL
5 </keywords>
6 </info>
7
8 # Client-side
9 <client>
10 <server>
11 smtp
12 </server>
13 <name>
14 SMTP with URL-encoded CR LF in the URL
15 </name>
16 <command>
17 smtp://%HOSTIP:%SMTPPORT/%0d%0a/1323
18 </command>
19 </client>
20
21 #
22 <verify>
23 # 3 - CURLE_URL_MALFORMAT
24 <errorcode>
25 3
26 </errorcode>
27 </verify>
28 </testcase>
0 <testcase>
1 <info>
2 <keywords>
3 IMAP
4 CRLF-in-URL
5 </keywords>
6 </info>
7
8 # Client-side
9 <client>
10 <server>
11 imap
12 </server>
13 <name>
14 IMAP with URL-encoded CR LF in the URL
15 </name>
16 <command>
17 imap://%HOSTIP:%IMAPPORT/%0d%0a/1322
18 </command>
19 </client>
20
21 #
22 <verify>
23 # 3 - CURLE_URL_MALFORMAT
24 <errorcode>
25 3
26 </errorcode>
27 </verify>
28 </testcase>
0 # http://greenbytes.de/tech/webdav/draft-reschke-http-status-308-latest.html
1 <testcase>
2 <info>
3 <keywords>
4 HTTP
5 HTTP GET
6 308
7 followlocation
8 </keywords>
9 </info>
10 #
11 # Server-side
12 <reply>
13 <data>
14 HTTP/1.1 308 OK swsclose
15 Location: 13250002
16 Date: Thu, 09 Nov 2010 14:49:00 GMT
17 Connection: close
18
19 </data>
20 <data2>
21 HTTP/1.1 200 OK swsclose
22 Location: this should be ignored
23 Date: Thu, 09 Nov 2010 14:49:00 GMT
24 Connection: close
25
26 body
27 </data2>
28 <datacheck>
29 HTTP/1.1 308 OK swsclose
30 Location: 13250002
31 Date: Thu, 09 Nov 2010 14:49:00 GMT
32 Connection: close
33
34 HTTP/1.1 200 OK swsclose
35 Location: this should be ignored
36 Date: Thu, 09 Nov 2010 14:49:00 GMT
37 Connection: close
38
39 body
40 </datacheck>
41 </reply>
42
43 #
44 # Client-side
45 <client>
46 <server>
47 http
48 </server>
49 <name>
50 HTTP 308-redirect with POST
51 </name>
52 <command>
53 http://%HOSTIP:%HTTPPORT/we/1325 -L -d "moo"
54 </command>
55 </client>
56
57 #
58 # Verify data after the test has been "shot"
59 <verify>
60 <strip>
61 ^User-Agent:.*
62 </strip>
63 <protocol nonewline="yes">
64 POST /we/1325 HTTP/1.1
65 Host: %HOSTIP:%HTTPPORT
66 Accept: */*
67 Content-Length: 3
68 Content-Type: application/x-www-form-urlencoded
69
70 mooPOST /we/13250002 HTTP/1.1
71 Host: %HOSTIP:%HTTPPORT
72 Accept: */*
73 Content-Length: 3
74 Content-Type: application/x-www-form-urlencoded
75
76 moo
77 </protocol>
78 </verify>
79 </testcase>
0 <testcase>
1 <info>
2 <keywords>
3 TELNET
4 UPLOAD
5 </keywords>
6 </info>
7
8 #
9 # Server-side
10 <reply>
11 <data>
12 HTTP/1.1 200 swsclose
13
14 moo
15 </data>
16 </reply>
17
18 #
19 # Client-side
20 <client>
21 <server>
22 http
23 </server>
24 <features>
25 telnet
26 </features>
27 <name>
28 TELNET to HTTP server
29 </name>
30 <stdin>
31 GET /we/want/1326 HTTP/1.0
32
33 </stdin>
34 <command>
35 telnet://%HOSTIP:%HTTPPORT
36 </command>
37 </client>
38
39 #
40 # Verify data after the test has been "shot"
41 <verify>
42 <protocol>
43 GET /we/want/1326 HTTP/1.0
44
45 </protocol>
46 </verify>
47 </testcase>
0 <testcase>
1 <info>
2 <keywords>
3 TELNET
4 UPLOAD
5 </keywords>
6 </info>
7
8 #
9 # Server-side
10 <reply>
11 </reply>
12
13 #
14 # Client-side
15 <client>
16 <server>
17 http
18 </server>
19 <features>
20 telnet
21 </features>
22 <name>
23 TELNET check of upload with stdout redirected
24 </name>
25 <stdin>
26 GET /ignore/for/1327 HTTP/1.0
27
28 </stdin>
29 <file name="log/1327.txt">
30 GET /we/want/1327 HTTP/1.0
31
32 </file>
33 <command option="no-output">
34 telnet://%HOSTIP:%HTTPPORT -T log/1327.txt
35 </command>
36 </client>
37
38 #
39 # Verify data after the test has been "shot"
40 <verify>
41 <protocol>
42 GET /we/want/1327 HTTP/1.0
43
44 </protocol>
45 </verify>
46 </testcase>
00 <testcase>
1 # Server-side
1 <info>
2 <keywords>
3 FTP
4 CURLE_PARTIAL_FILE
5 RETR
6 PASV
7 </keywords>
8 </info>
29 <reply>
310 <data>
411 1oooooooooooooooooooooooooooooooooooooooooo2
2431
2532 # Verify data after the test has been "shot"
2633 <verify>
34 # This gets QUIT sent because CURLE_PARTIAL_FILE does NOT mark the control
35 # connection as bad
2736 <protocol>
2837 USER anonymous
2938 PASS ftp@example.com
3241 TYPE I
3342 SIZE 161
3443 RETR 161
44 QUIT
3545 </protocol>
3646 <errorcode>
3747 18
4040 <client>
4141 <server>
4242 http
43 http-proxy
4344 </server>
4445 <name>
4546 HTTP CONNECT with proxytunnel getting two URLs from the same host
4647 </name>
4748 <command>
48 http://remotesite.com/we/want/that/page/275 -p -x %HOSTIP:%HTTPPORT --user iam:myself --proxy-user youare:yourself http://remotesite.com/we/want/that/page/275
49 http://remotesite.com:%HTTPPORT/we/want/that/page/275 -p -x %HOSTIP:%PROXYPORT --user iam:myself --proxy-user youare:yourself http://remotesite.com:%HTTPPORT/we/want/that/page/275
4950 </command>
5051 </client>
5152
5556 <strip>
5657 ^User-Agent:.*
5758 </strip>
58 <protocol>
59 CONNECT remotesite.com:80 HTTP/1.1
60 Host: remotesite.com:80
59 <proxy>
60 CONNECT remotesite.com:%HTTPPORT HTTP/1.1
61 Host: remotesite.com:%HTTPPORT
6162 Proxy-Authorization: Basic eW91YXJlOnlvdXJzZWxm
6263 User-Agent: curl/7.10.7-pre2 (i686-pc-linux-gnu) libcurl/7.10.7-pre2 OpenSSL/0.9.7a zlib/1.1.3
6364 Proxy-Connection: Keep-Alive
6465
66 </proxy>
67 <protocol>
6568 GET /we/want/that/page/275 HTTP/1.1
6669 Authorization: Basic aWFtOm15c2VsZg==
67 Host: remotesite.com
70 Host: remotesite.com:%HTTPPORT
6871 Accept: */*
6972
7073 GET /we/want/that/page/275 HTTP/1.1
7174 Authorization: Basic aWFtOm15c2VsZg==
72 Host: remotesite.com
75 Host: remotesite.com:%HTTPPORT
7376 Accept: */*
7477
7578 </protocol>
3636 <client>
3737 <server>
3838 http
39 http-proxy
3940 </server>
4041 # tool is what to use instead of 'curl'
4142 <tool>
4647 simple multi http:// through proxytunnel with authentication info
4748 </name>
4849 <command>
49 http://%HOSTIP:%HTTPSPORT/503 %HOSTIP:%HTTPPORT
50 http://%HOSTIP:%HTTPPORT/503 %HOSTIP:%PROXYPORT
5051 </command>
5152 <file name="log/test503.txt">
5253 foo
5960
6061 # Verify data after the test has been "shot"
6162 <verify>
62 <protocol>
63 CONNECT %HOSTIP:%HTTPSPORT HTTP/1.1
64 Host: %HOSTIP:%HTTPSPORT
63 <proxy>
64 CONNECT %HOSTIP:%HTTPPORT HTTP/1.1
65 Host: %HOSTIP:%HTTPPORT
6566 Proxy-Authorization: Basic dGVzdDppbmc=
6667 Proxy-Connection: Keep-Alive
6768
69 </proxy>
70 <protocol>
6871 GET /503 HTTP/1.1
6972 Authorization: Basic dGVzdDppbmc=
70 Host: %HOSTIP:%HTTPSPORT
73 Host: %HOSTIP:%HTTPPORT
7174 Accept: */*
7275
7376 </protocol>
6363 QUIT
6464 </protocol>
6565 <errorcode>
66 28
66 10
6767 </errorcode>
6868 <upload>
6969 </upload>
6363 QUIT
6464 </protocol>
6565 <errorcode>
66 28
66 10
6767 </errorcode>
6868 <upload>
6969 </upload>
6363 QUIT
6464 </protocol>
6565 <errorcode>
66 28
66 12
6767 </errorcode>
6868 <upload>
6969 </upload>
0 #
1 # This test is like 585 but uses passive FTP instead of HTTP
2 #
3 <testcase>
4 <info>
5 <keywords>
6 FTP
7 </keywords>
8 </info>
9 #
10 # Server-side
11 <reply>
12 <data>
13 moo
14 </data>
15 <datacheck>
16 [OPEN] counter: 1
17 [OPEN] counter: 2
18 moo
19 [CLOSE] counter: 2
20 [CLOSE] counter: 1
21 </datacheck>
22 </reply>
23
24 # Client-side
25 <client>
26 <server>
27 ftp
28 </server>
29 # tool is what to use instead of 'curl'
30 <tool>
31 lib585
32 </tool>
33
34 <name>
35 verify close callbacks with passive FTP
36 </name>
37 <command>
38 ftp://%HOSTIP:%FTPPORT/595 log/ip595
39 </command>
40 </client>
41
42 #
43 # Verify data after the test has been "shot"
44 <verify>
45 <protocol>
46 USER anonymous
47 PASS ftp@example.com
48 PWD
49 EPSV
50 TYPE I
51 SIZE 595
52 RETR 595
53 QUIT
54 </protocol>
55 </verify>
56 </testcase>
0 #
1 # This test is like 585 but uses active FTP instead of HTTP
2 #
3 <testcase>
4 <info>
5 <keywords>
6 FTP
7 </keywords>
8 </info>
9 #
10 # Server-side
11 <reply>
12 <data>
13 moo
14 </data>
15 <datacheck>
16 [OPEN] counter: 1
17 [OPEN] counter: 2
18 [CLOSE] counter: 2
19 moo
20 [CLOSE] counter: 1
21 </datacheck>
22 </reply>
23
24 # Client-side
25 <client>
26 <server>
27 ftp
28 </server>
29 # tool is what to use instead of 'curl'
30 <tool>
31 lib585
32 </tool>
33
34 <name>
35 verify close callbacks with active FTP
36 </name>
37 <command>
38 ftp://%HOSTIP:%FTPPORT/596 log/ip596 activeftp
39 </command>
40 </client>
41
42 #
43 # Verify data after the test has been "shot"
44 <verify>
45 <strippart>
46 s/^(EPRT \|1\|)(.*)/$1/
47 </strippart>
48 <protocol>
49 USER anonymous
50 PASS ftp@example.com
51 PWD
52 EPRT |1|
53 TYPE I
54 SIZE 596
55 RETR 596
56 QUIT
57 </protocol>
58 </verify>
59 </testcase>
0 <testcase>
1 <info>
2 <keywords>
3 FTP
4 CONNECT_ONLY
5 </keywords>
6 </info>
7
8 # Client-side
9 <client>
10 <server>
11 ftp
12 </server>
13 <tool>
14 lib597
15 </tool>
16 <name>
17 FTP connect only option
18 </name>
19
20 <command>
21 ftp://%HOSTIP:%FTPPORT
22 </command>
23
24 </client>
25
26 #
27 # Verify data after the test has been "shot"
28 <verify>
29 <protocol>
30 USER anonymous
31 PASS ftp@example.com
32 PWD
33 QUIT
34 </protocol>
35 </verify>
36 </testcase>
0 <testcase>
1 <info>
2 <keywords>
3 SFTP
4 post-quote
5 acceptfail
6 asterisk
7 </keywords>
8 </info>
9
10 #
11 # Server-side
12 <reply>
13 <data>
14 Dummy test file for rename test
15 </data>
16 </reply>
17
18 #
19 # Client-side
20 <client>
21 <server>
22 sftp
23 </server>
24 <precheck>
25 perl %SRCDIR/libtest/test610.pl mkdir %PWD/log/test638.dir
26 </precheck>
27 <name>
28 SFTP post-quote rename * asterisk accept-fail
29 </name>
30 <command>
31 --key curl_client_key --pubkey curl_client_key.pub -u %USER: -Q "-*rename %PWD/log/test638.dir %PWD/log/test638.new" sftp://%HOSTIP:%SSHPORT%PWD/log/file638.txt --insecure
32 </command>
33 <postcheck>
34 perl %SRCDIR/libtest/test610.pl rmdir %PWD/log/test638.new
35 </postcheck>
36 <file name="log/file638.txt">
37 Dummy test file for rename test
38 </file>
39 </client>
40
41 #
42 # Verify data after the test has been "shot"
43 <verify>
44 <valgrind>
45 disable
46 </valgrind>
47 </verify>
48 </testcase>
0 <testcase>
1 <info>
2 <keywords>
3 SFTP
4 post-quote
5 acceptfail
6 asterisk
7 </keywords>
8 </info>
9
10 #
11 # Server-side
12 <reply>
13 <data>
14 Dummy test file for rename test
15 </data>
16 </reply>
17
18 #
19 # Client-side
20 <client>
21 <server>
22 sftp
23 </server>
24 <precheck>
25 perl %SRCDIR/libtest/test610.pl mkdir %PWD/log/test639.dir
26 </precheck>
27 <name>
28 SFTP post-quote rename * asterisk accept-fail
29 </name>
30 <command>
31 --key curl_client_key --pubkey curl_client_key.pub -u %USER: -Q "-*rename %PWD/log/test639-not-exists-dir %PWD/log/test639.new" sftp://%HOSTIP:%SSHPORT%PWD/log/file639.txt --insecure
32 </command>
33 <postcheck>
34 perl %SRCDIR/libtest/test610.pl rmdir %PWD/log/test639.dir
35 </postcheck>
36 <file name="log/file639.txt">
37 Dummy test file for rename test
38 </file>
39 </client>
40
41 #
42 # Verify data after the test has been "shot"
43 <verify>
44 <valgrind>
45 disable
46 </valgrind>
47 </verify>
48 </testcase>
4242 <client>
4343 <server>
4444 http
45 http-proxy
4546 </server>
4647 <name>
47 HTTP 1.0 CONNECT with proxytunnel and host Basic authentication
48 HTTP 1.0 CONNECT with proxytunnel and proxy+host Basic authentication
4849 </name>
4950 <command>
50 http://%HOSTIP:%HTTPPORT/we/want/that/page/80 -p --proxy1.0 %HOSTIP:%HTTPPORT --user iam:myself --proxy-user youare:yourself
51 http://%HOSTIP:%HTTPPORT/we/want/that/page/80 -p --proxy1.0 %HOSTIP:%PROXYPORT --user iam:myself --proxy-user youare:yourself
5152 </command>
5253 </client>
5354
5758 <strip>
5859 ^User-Agent:.*
5960 </strip>
60 <protocol>
61 <proxy>
6162 CONNECT %HOSTIP:%HTTPPORT HTTP/1.0
6263 Host: %HOSTIP:%HTTPPORT
6364 Proxy-Authorization: Basic eW91YXJlOnlvdXJzZWxm
6465 User-Agent: curl/7.10.7-pre2 (i686-pc-linux-gnu) libcurl/7.10.7-pre2 OpenSSL/0.9.7a zlib/1.1.3
6566 Proxy-Connection: Keep-Alive
6667
68 </proxy>
69 <protocol>
6770 GET /we/want/that/page/80 HTTP/1.1
6871 Authorization: Basic aWFtOm15c2VsZg==
6972 User-Agent: curl/7.10.7-pre2 (i686-pc-linux-gnu) libcurl/7.10.7-pre2 OpenSSL/0.9.7a zlib/1.1.3
88 #
99 # Server-side
1010 <reply>
11 # We use SLOWDOWN to really exercise the end-of-body parsing over multiple
12 # packets
13 <servercmd>
14 SLOWDOWN
15 </servercmd>
1116 # When doing LIST, we get the default list output hard-coded in the test
1217 # POP3 server
1318 <datacheck>
2429 pop3
2530 </server>
2631 <name>
27 POP3 LIST messages
32 POP3 LIST messages from *SLOW* server
2833 </name>
2934 <command>
3035 pop3://%HOSTIP:%POP3PORT/ -u user:secret
0 <testcase>
1 <info>
2 <keywords>
3 POP3
4 RETR
5 </keywords>
6 </info>
7
8 #
9 # Server-side
10 <reply>
11 <data>
12 From: me@somewhere
13 To: fake@nowhere
14
15 ..body with a single dot first
16 ...triple dots...
17
18 --
19 yours sincerely
20 </data>
21 <datacheck>
22 From: me@somewhere
23 To: fake@nowhere
24
25 .body with a single dot first
26 ..triple dots...
27
28 --
29 yours sincerely
30 </datacheck>
31 </reply>
32
33 #
34 # Client-side
35 <client>
36 <server>
37 pop3
38 </server>
39 <name>
40 POP3 RETR with dot-prefixed line
41 </name>
42 <command>
43 pop3://%HOSTIP:%POP3PORT/815 -u user:secret
44 </command>
45 </client>
46
47 #
48 # Verify data after the test has been "shot"
49 <verify>
50 <protocol>
51 USER user
52 PASS secret
53 RETR 815
54 QUIT
55 </protocol>
56 </verify>
57 </testcase>
3939 <client>
4040 <server>
4141 http
42 http-proxy
4243 </server>
4344 <name>
4445 HTTP over proxy-tunnel with site authentication
4546 </name>
4647 <command>
47 http://%HOSTIP:%HTTPPORT/we/want/that/page/83 -p -x %HOSTIP:%HTTPPORT --user iam:myself
48 http://%HOSTIP:%HTTPPORT/we/want/that/page/83 -p -x %HOSTIP:%PROXYPORT --user iam:myself
4849 </command>
4950 </client>
5051
5455 <strip>
5556 ^User-Agent:.*
5657 </strip>
57 <protocol>
58 <proxy>
5859 CONNECT %HOSTIP:%HTTPPORT HTTP/1.1
5960 User-Agent: curl/7.10.7-pre2 (i686-pc-linux-gnu) libcurl/7.10.7-pre2 OpenSSL/0.9.7a zlib/1.1.3
6061 Host: %HOSTIP:%HTTPPORT
6162 Proxy-Connection: Keep-Alive
6263
64 </proxy>
65 <protocol>
6366 GET /we/want/that/page/83 HTTP/1.1
6467 Authorization: Basic aWFtOm15c2VsZg==
6568 User-Agent: curl/7.10.7-pre2 (i686-pc-linux-gnu) libcurl/7.10.7-pre2 OpenSSL/0.9.7a zlib/1.1.3
3939 <client>
4040 <server>
4141 http
42 http-proxy
4243 </server>
4344 <name>
4445 HTTP over proxytunnel using POST
4546 </name>
4647 <command>
47 http://%HOSTIP:%HTTPPORT/we/want/that/page/95 -p -x %HOSTIP:%HTTPPORT -d "datatopost=ohthatsfunyesyes"
48 http://%HOSTIP:%HTTPPORT/we/want/that/page/95 -p -x %HOSTIP:%PROXYPORT -d "datatopost=ohthatsfunyesyes"
4849 </command>
4950 </client>
5051
5455 <strip>
5556 ^User-Agent:.*
5657 </strip>
57 <protocol nonewline="yes">
58 <proxy>
5859 CONNECT %HOSTIP:%HTTPPORT HTTP/1.1
5960 User-Agent: curl/7.10.7-pre2 (i686-pc-linux-gnu) libcurl/7.10.7-pre2 OpenSSL/0.9.7a zlib/1.1.3
6061 Host: %HOSTIP:%HTTPPORT
6162 Proxy-Connection: Keep-Alive
6263
64 </proxy>
65 <protocol nonewline="yes">
6366 POST /we/want/that/page/95 HTTP/1.1
6467 User-Agent: curl/7.10.7-pre2 (i686-pc-linux-gnu) libcurl/7.10.7-pre2 OpenSSL/0.9.7a zlib/1.1.3
6568 Host: %HOSTIP:%HTTPPORT
114114 local *SFWRITE; # used to write to primary connection
115115 local *DREAD; # used to read from secondary connection
116116 local *DWRITE; # used to write to secondary connection
117
118 my $sockfilt_timeout = 5; # default timeout for sockfilter eXsysreads
117119
118120 #**********************************************************************
119121 # global vars which depend on server protocol selection
219221 # better on windows/cygwin
220222 }
221223
224 #**********************************************************************
225 # eXsysread is a wrapper around perl's sysread() function. This will
226 # repeat the call to sysread() until it has actually read the complete
227 # number of requested bytes or an unrecoverable condition occurs.
228 # On success returns a positive value, the number of bytes requested.
229 # On failure or timeout returns zero.
230 #
231 sub eXsysread {
232 my $FH = shift;
233 my $scalar = shift;
234 my $nbytes = shift;
235 my $timeout = shift; # A zero timeout disables eXsysread() time limit
236 #
237 my $time_limited = 0;
238 my $timeout_rest = 0;
239 my $start_time = 0;
240 my $nread = 0;
241 my $rc;
242
243 $$scalar = "";
244
245 if((not defined $nbytes) || ($nbytes < 1)) {
246 logmsg "Error: eXsysread() failure: " .
247 "length argument must be positive\n";
248 return 0;
249 }
250 if((not defined $timeout) || ($timeout < 0)) {
251 logmsg "Error: eXsysread() failure: " .
252 "timeout argument must be zero or positive\n";
253 return 0;
254 }
255 if($timeout > 0) {
256 # caller sets eXsysread() time limit
257 $time_limited = 1;
258 $timeout_rest = $timeout;
259 $start_time = int(time());
260 }
261
262 while($nread < $nbytes) {
263 if($time_limited) {
264 eval {
265 local $SIG{ALRM} = sub { die "alarm\n"; };
266 alarm $timeout_rest;
267 $rc = sysread($FH, $$scalar, $nbytes - $nread, $nread);
268 alarm 0;
269 };
270 $timeout_rest = $timeout - (int(time()) - $start_time);
271 if($timeout_rest < 1) {
272 logmsg "Error: eXsysread() failure: timed out\n";
273 return 0;
274 }
275 }
276 else {
277 $rc = sysread($FH, $$scalar, $nbytes - $nread, $nread);
278 }
279 if($got_exit_signal) {
280 logmsg "Error: eXsysread() failure: signalled to die\n";
281 return 0;
282 }
283 if(not defined $rc) {
284 if($!{EINTR}) {
285 logmsg "Warning: retrying sysread() interrupted system call\n";
286 next;
287 }
288 if($!{EAGAIN}) {
289 logmsg "Warning: retrying sysread() due to EAGAIN\n";
290 next;
291 }
292 if($!{EWOULDBLOCK}) {
293 logmsg "Warning: retrying sysread() due to EWOULDBLOCK\n";
294 next;
295 }
296 logmsg "Error: sysread() failure: $!\n";
297 return 0;
298 }
299 if($rc < 0) {
300 logmsg "Error: sysread() failure: returned negative value $rc\n";
301 return 0;
302 }
303 if($rc == 0) {
304 logmsg "Error: sysread() failure: read zero bytes\n";
305 return 0;
306 }
307 $nread += $rc;
308 }
309 return $nread;
310 }
311
312 #**********************************************************************
313 # read_mainsockf attempts to read the given amount of output from the
314 # sockfilter which is in use for the main or primary connection. This
315 # reads untranslated sockfilt lingo which may hold data read from the
316 # main or primary socket. On success returns 1, otherwise zero.
317 #
318 sub read_mainsockf {
319 my $scalar = shift;
320 my $nbytes = shift;
321 my $timeout = shift; # Optional argument, if zero blocks indefinitively
322 my $FH = \*SFREAD;
323
324 if(not defined $timeout) {
325 $timeout = $sockfilt_timeout + ($nbytes >> 12);
326 }
327 if(eXsysread($FH, $scalar, $nbytes, $timeout) != $nbytes) {
328 my ($fcaller, $lcaller) = (caller)[1,2];
329 logmsg "Error: read_mainsockf() failure at $fcaller " .
330 "line $lcaller. Due to eXsysread() failure\n";
331 return 0;
332 }
333 return 1;
334 }
335
336 #**********************************************************************
337 # read_datasockf attempts to read the given amount of output from the
338 # sockfilter which is in use for the data or secondary connection. This
339 # reads untranslated sockfilt lingo which may hold data read from the
340 # data or secondary socket. On success returns 1, otherwise zero.
341 #
342 sub read_datasockf {
343 my $scalar = shift;
344 my $nbytes = shift;
345 my $timeout = shift; # Optional argument, if zero blocks indefinitively
346 my $FH = \*DREAD;
347
348 if(not defined $timeout) {
349 $timeout = $sockfilt_timeout + ($nbytes >> 12);
350 }
351 if(eXsysread($FH, $scalar, $nbytes, $timeout) != $nbytes) {
352 my ($fcaller, $lcaller) = (caller)[1,2];
353 logmsg "Error: read_datasockf() failure at $fcaller " .
354 "line $lcaller. Due to eXsysread() failure\n";
355 return 0;
356 }
357 return 1;
358 }
222359
223360 sub sysread_or_die {
224361 my $FH = shift;
326463 my $log;
327464 foreach $log (@_) {
328465 my $l = $log;
329 $l =~ s/[\r\n]//g;
466 $l =~ s/\r/[CR]/g;
467 $l =~ s/\n/[LF]/g;
330468 logmsg "> \"$l\"\n";
331469 }
332470 }
564702 $size = hex($1);
565703 }
566704
567 sysread \*SFREAD, $line, $size;
705 read_mainsockf(\$line, $size);
568706
569707 $ulsize += $size;
570708 print FILE $line if(!$nosave);
11391277 $size = hex($1);
11401278 }
11411279
1142 sysread DREAD, $line, $size;
1280 read_datasockf(\$line, $size);
11431281
11441282 #print STDERR " GOT: $size bytes\n";
11451283
12401378 }
12411379
12421380 # READ the response data
1243 sysread_or_die(\*DREAD, \$i, $size);
1381 read_datasockf(\$i, $size);
12441382
12451383 # The data is in the format
12461384 # IPvX/NNN
17871925 }
17881926 }
17891927
1928 my $full = "";
1929
17901930 while(1) {
17911931 my $i;
17921932
18141954 }
18151955
18161956 # data
1817 sysread SFREAD, $_, $size;
1818
1819 ftpmsg $_;
1957 read_mainsockf(\$input, $size);
1958
1959 ftpmsg $input;
1960
1961 $full .= $input;
1962
1963 # Loop until command completion
1964 next unless($full =~ /\r\n$/);
18201965
18211966 # Remove trailing CRLF.
1822 s/[\n\r]+$//;
1967 $full =~ s/[\n\r]+$//;
18231968
18241969 my $FTPCMD;
18251970 my $FTPARG;
1826 my $full=$_;
18271971 if($proto eq "imap") {
18281972 # IMAP is different with its identifier first on the command line
1829 unless (m/^([^ ]+) ([^ ]+) (.*)/ ||
1830 m/^([^ ]+) ([^ ]+)/) {
1831 sendcontrol "$1 '$_': command not understood.\r\n";
1973 unless(($full =~ /^([^ ]+) ([^ ]+) (.*)/) ||
1974 ($full =~ /^([^ ]+) ([^ ]+)/)) {
1975 sendcontrol "$1 '$full': command not understood.\r\n";
18321976 last;
18331977 }
18341978 $cmdid=$1; # set the global variable
18351979 $FTPCMD=$2;
18361980 $FTPARG=$3;
18371981 }
1838 elsif (m/^([A-Z]{3,4})(\s(.*))?$/i) {
1982 elsif($full =~ /^([A-Z]{3,4})(\s(.*))?$/i) {
18391983 $FTPCMD=$1;
18401984 $FTPARG=$3;
18411985 }
1842 elsif($proto eq "smtp" && m/^[A-Z0-9+\/]{0,512}={0,2}$/i) {
1986 elsif(($proto eq "smtp") && ($full =~ /^[A-Z0-9+\/]{0,512}={0,2}$/i)) {
18431987 # SMTP long "commands" are base64 authentication data.
1844 $FTPCMD=$_;
1988 $FTPCMD=$full;
18451989 $FTPARG="";
18461990 }
18471991 else {
1848 sendcontrol "500 '$_': command not understood.\r\n";
1992 sendcontrol "500 '$full': command not understood.\r\n";
18491993 last;
18501994 }
18511995
18541998 if($verbose) {
18551999 print STDERR "IN: $full\n";
18562000 }
2001
2002 $full = "";
18572003
18582004 my $delay = $delayreply{$FTPCMD};
18592005 if($delay) {
55 # | (__| |_| | _ <| |___
66 # \___|\___/|_| \_\_____|
77 #
8 # Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
8 # Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
99 #
1010 # This software is licensed as described in the file COPYING, which
1111 # you should have received as part of this distribution. The terms
3939 my $proto = 'http'; # protocol the http server speaks
4040 my $pidfile; # http server pid file
4141 my $logfile; # http server log file
42 my $connect; # IP to connect to on CONNECT
4243 my $srcdir;
4344 my $fork;
4445 my $gopher = 0;
8182 shift @ARGV;
8283 }
8384 }
85 elsif($ARGV[0] eq '--connect') {
86 if($ARGV[1]) {
87 $connect = $ARGV[1];
88 shift @ARGV;
89 }
90 }
8491 elsif($ARGV[0] eq '--id') {
8592 if($ARGV[1] =~ /^(\d+)$/) {
8693 $idnum = $1 if($1 > 0);
109116 $logfile = server_logfilename($logdir, $proto, $ipvnum, $idnum);
110117 }
111118
119 $flags .= "--pidfile \"$pidfile\" --logfile \"$logfile\" ";
112120 $flags .= "--gopher " if($gopher);
113121 $flags .= "--fork " if(defined($fork));
114 $flags .= "--pidfile \"$pidfile\" --logfile \"$logfile\" ";
122 $flags .= "--connect $connect " if($connect);
115123 $flags .= "--ipv$ipvnum --port $port --srcdir \"$srcdir\"";
116124
125 if($verbose) {
126 print STDERR "RUN: server/sws $flags\n";
127 }
128
117129 exec("server/sws $flags");
6161 lib568$(EXEEXT) lib569$(EXEEXT) lib570$(EXEEXT) \
6262 lib571$(EXEEXT) lib572$(EXEEXT) lib573$(EXEEXT) \
6363 lib582$(EXEEXT) lib583$(EXEEXT) lib585$(EXEEXT) \
64 lib587$(EXEEXT) lib590$(EXEEXT) lib591$(EXEEXT)
64 lib586$(EXEEXT) lib587$(EXEEXT) lib590$(EXEEXT) \
65 lib591$(EXEEXT) lib597$(EXEEXT)
6566 subdir = tests/libtest
6667 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
6768 am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
7374 $(top_srcdir)/m4/curl-system.m4 $(top_srcdir)/m4/libtool.m4 \
7475 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
7576 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
76 $(top_srcdir)/m4/xc-translit.m4 $(top_srcdir)/acinclude.m4 \
77 $(top_srcdir)/m4/xc-translit.m4 \
78 $(top_srcdir)/m4/zz50-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \
7779 $(top_srcdir)/configure.ac
7880 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
7981 $(ACLOCAL_M4)
9193 chkhostname-curl_gethostname.$(OBJEXT)
9294 chkhostname_OBJECTS = $(am_chkhostname_OBJECTS)
9395 am__objects_1 = first.$(OBJEXT)
94 am_lib500_OBJECTS = lib500.$(OBJEXT) $(am__objects_1)
96 am__objects_2 = testutil.$(OBJEXT)
97 am__objects_3 = testtrace.$(OBJEXT)
98 am_lib500_OBJECTS = lib500.$(OBJEXT) $(am__objects_1) $(am__objects_2) \
99 $(am__objects_3)
95100 lib500_OBJECTS = $(am_lib500_OBJECTS)
96101 lib500_LDADD = $(LDADD)
97102 lib500_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
99104 lib501_OBJECTS = $(am_lib501_OBJECTS)
100105 lib501_LDADD = $(LDADD)
101106 lib501_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
102 am__objects_2 = testutil.$(OBJEXT)
103 am__objects_3 = warnless.$(OBJEXT)
107 am__objects_4 = warnless.$(OBJEXT)
104108 am_lib502_OBJECTS = lib502.$(OBJEXT) $(am__objects_1) $(am__objects_2) \
105 $(am__objects_3)
109 $(am__objects_4)
106110 lib502_OBJECTS = $(am_lib502_OBJECTS)
107111 lib502_LDADD = $(LDADD)
108112 lib502_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
109113 am_lib503_OBJECTS = lib503.$(OBJEXT) $(am__objects_1) $(am__objects_2) \
110 $(am__objects_3)
114 $(am__objects_4)
111115 lib503_OBJECTS = $(am_lib503_OBJECTS)
112116 lib503_LDADD = $(LDADD)
113117 lib503_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
114118 am_lib504_OBJECTS = lib504.$(OBJEXT) $(am__objects_1) $(am__objects_2) \
115 $(am__objects_3)
119 $(am__objects_4)
116120 lib504_OBJECTS = $(am_lib504_OBJECTS)
117121 lib504_LDADD = $(LDADD)
118122 lib504_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
125129 lib506_LDADD = $(LDADD)
126130 lib506_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
127131 am_lib507_OBJECTS = lib507.$(OBJEXT) $(am__objects_1) $(am__objects_2) \
128 $(am__objects_3)
132 $(am__objects_4)
129133 lib507_OBJECTS = $(am_lib507_OBJECTS)
130134 lib507_LDADD = $(LDADD)
131135 lib507_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
165169 lib517_OBJECTS = $(am_lib517_OBJECTS)
166170 lib517_LDADD = $(LDADD)
167171 lib517_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
168 am_lib518_OBJECTS = lib518.$(OBJEXT) $(am__objects_1) $(am__objects_3)
172 am_lib518_OBJECTS = lib518.$(OBJEXT) $(am__objects_1) $(am__objects_4)
169173 lib518_OBJECTS = $(am_lib518_OBJECTS)
170174 lib518_LDADD = $(LDADD)
171175 lib518_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
190194 lib524_LDADD = $(LDADD)
191195 lib524_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
192196 am_lib525_OBJECTS = lib525.$(OBJEXT) $(am__objects_1) $(am__objects_2) \
193 $(am__objects_3)
197 $(am__objects_4)
194198 lib525_OBJECTS = $(am_lib525_OBJECTS)
195199 lib525_LDADD = $(LDADD)
196200 lib525_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
197 am__objects_4 = lib526-first.$(OBJEXT)
198 am__objects_5 = lib526-testutil.$(OBJEXT)
199 am__objects_6 = lib526-warnless.$(OBJEXT)
200 am_lib526_OBJECTS = lib526-lib526.$(OBJEXT) $(am__objects_4) \
201 $(am__objects_5) $(am__objects_6)
201 am__objects_5 = lib526-first.$(OBJEXT)
202 am__objects_6 = lib526-testutil.$(OBJEXT)
203 am__objects_7 = lib526-warnless.$(OBJEXT)
204 am_lib526_OBJECTS = lib526-lib526.$(OBJEXT) $(am__objects_5) \
205 $(am__objects_6) $(am__objects_7)
202206 lib526_OBJECTS = $(am_lib526_OBJECTS)
203207 lib526_LDADD = $(LDADD)
204208 lib526_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
205 am__objects_7 = lib527-first.$(OBJEXT)
206 am__objects_8 = lib527-testutil.$(OBJEXT)
207 am__objects_9 = lib527-warnless.$(OBJEXT)
208 am_lib527_OBJECTS = lib527-lib526.$(OBJEXT) $(am__objects_7) \
209 $(am__objects_8) $(am__objects_9)
209 am__objects_8 = lib527-first.$(OBJEXT)
210 am__objects_9 = lib527-testutil.$(OBJEXT)
211 am__objects_10 = lib527-warnless.$(OBJEXT)
212 am_lib527_OBJECTS = lib527-lib526.$(OBJEXT) $(am__objects_8) \
213 $(am__objects_9) $(am__objects_10)
210214 lib527_OBJECTS = $(am_lib527_OBJECTS)
211215 lib527_LDADD = $(LDADD)
212216 lib527_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
213 am__objects_10 = lib529-first.$(OBJEXT)
214 am__objects_11 = lib529-testutil.$(OBJEXT)
215 am__objects_12 = lib529-warnless.$(OBJEXT)
216 am_lib529_OBJECTS = lib529-lib525.$(OBJEXT) $(am__objects_10) \
217 $(am__objects_11) $(am__objects_12)
217 am__objects_11 = lib529-first.$(OBJEXT)
218 am__objects_12 = lib529-testutil.$(OBJEXT)
219 am__objects_13 = lib529-warnless.$(OBJEXT)
220 am_lib529_OBJECTS = lib529-lib525.$(OBJEXT) $(am__objects_11) \
221 $(am__objects_12) $(am__objects_13)
218222 lib529_OBJECTS = $(am_lib529_OBJECTS)
219223 lib529_LDADD = $(LDADD)
220224 lib529_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
221 am__objects_13 = lib530-first.$(OBJEXT)
222 am__objects_14 = lib530-testutil.$(OBJEXT)
223 am__objects_15 = lib530-warnless.$(OBJEXT)
224 am_lib530_OBJECTS = lib530-lib530.$(OBJEXT) $(am__objects_13) \
225 $(am__objects_14) $(am__objects_15)
225 am__objects_14 = lib530-first.$(OBJEXT)
226 am__objects_15 = lib530-testutil.$(OBJEXT)
227 am__objects_16 = lib530-warnless.$(OBJEXT)
228 am_lib530_OBJECTS = lib530-lib530.$(OBJEXT) $(am__objects_14) \
229 $(am__objects_15) $(am__objects_16)
226230 lib530_OBJECTS = $(am_lib530_OBJECTS)
227231 lib530_LDADD = $(LDADD)
228232 lib530_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
229 am__objects_16 = lib532-first.$(OBJEXT)
230 am__objects_17 = lib532-testutil.$(OBJEXT)
231 am__objects_18 = lib532-warnless.$(OBJEXT)
232 am_lib532_OBJECTS = lib532-lib526.$(OBJEXT) $(am__objects_16) \
233 $(am__objects_17) $(am__objects_18)
233 am__objects_17 = lib532-first.$(OBJEXT)
234 am__objects_18 = lib532-testutil.$(OBJEXT)
235 am__objects_19 = lib532-warnless.$(OBJEXT)
236 am_lib532_OBJECTS = lib532-lib526.$(OBJEXT) $(am__objects_17) \
237 $(am__objects_18) $(am__objects_19)
234238 lib532_OBJECTS = $(am_lib532_OBJECTS)
235239 lib532_LDADD = $(LDADD)
236240 lib532_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
237241 am_lib533_OBJECTS = lib533.$(OBJEXT) $(am__objects_1) $(am__objects_2) \
238 $(am__objects_3)
242 $(am__objects_4)
239243 lib533_OBJECTS = $(am_lib533_OBJECTS)
240244 lib533_LDADD = $(LDADD)
241245 lib533_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
242246 am_lib536_OBJECTS = lib536.$(OBJEXT) $(am__objects_1) $(am__objects_2) \
243 $(am__objects_3)
247 $(am__objects_4)
244248 lib536_OBJECTS = $(am_lib536_OBJECTS)
245249 lib536_LDADD = $(LDADD)
246250 lib536_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
247 am_lib537_OBJECTS = lib537.$(OBJEXT) $(am__objects_1) $(am__objects_3)
251 am_lib537_OBJECTS = lib537.$(OBJEXT) $(am__objects_1) $(am__objects_4)
248252 lib537_OBJECTS = $(am_lib537_OBJECTS)
249253 lib537_LDADD = $(LDADD)
250254 lib537_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
253257 lib539_LDADD = $(LDADD)
254258 lib539_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
255259 am_lib540_OBJECTS = lib540.$(OBJEXT) $(am__objects_1) $(am__objects_2) \
256 $(am__objects_3)
260 $(am__objects_4)
257261 lib540_OBJECTS = $(am_lib540_OBJECTS)
258262 lib540_LDADD = $(LDADD)
259263 lib540_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
273277 lib544_OBJECTS = $(am_lib544_OBJECTS)
274278 lib544_LDADD = $(LDADD)
275279 lib544_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
276 am__objects_19 = lib545-first.$(OBJEXT)
277 am_lib545_OBJECTS = lib545-lib544.$(OBJEXT) $(am__objects_19)
280 am__objects_20 = lib545-first.$(OBJEXT)
281 am_lib545_OBJECTS = lib545-lib544.$(OBJEXT) $(am__objects_20)
278282 lib545_OBJECTS = $(am_lib545_OBJECTS)
279283 lib545_LDADD = $(LDADD)
280284 lib545_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
282286 lib547_OBJECTS = $(am_lib547_OBJECTS)
283287 lib547_LDADD = $(LDADD)
284288 lib547_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
285 am__objects_20 = lib548-first.$(OBJEXT)
286 am_lib548_OBJECTS = lib548-lib547.$(OBJEXT) $(am__objects_20)
289 am__objects_21 = lib548-first.$(OBJEXT)
290 am_lib548_OBJECTS = lib548-lib547.$(OBJEXT) $(am__objects_21)
287291 lib548_OBJECTS = $(am_lib548_OBJECTS)
288292 lib548_LDADD = $(LDADD)
289293 lib548_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
304308 lib554_LDADD = $(LDADD)
305309 lib554_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
306310 am_lib555_OBJECTS = lib555.$(OBJEXT) $(am__objects_1) $(am__objects_2) \
307 $(am__objects_3)
311 $(am__objects_4)
308312 lib555_OBJECTS = $(am_lib555_OBJECTS)
309313 lib555_LDADD = $(LDADD)
310314 lib555_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
317321 lib557_LDADD = $(LDADD)
318322 lib557_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
319323 am_lib560_OBJECTS = lib560.$(OBJEXT) $(am__objects_1) $(am__objects_2) \
320 $(am__objects_3)
324 $(am__objects_4)
321325 lib560_OBJECTS = $(am_lib560_OBJECTS)
322326 lib560_LDADD = $(LDADD)
323327 lib560_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
326330 lib562_LDADD = $(LDADD)
327331 lib562_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
328332 am_lib564_OBJECTS = lib564.$(OBJEXT) $(am__objects_1) $(am__objects_2) \
329 $(am__objects_3)
333 $(am__objects_4)
330334 lib564_OBJECTS = $(am_lib564_OBJECTS)
331335 lib564_LDADD = $(LDADD)
332336 lib564_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
333 am__objects_21 = lib565-first.$(OBJEXT)
334 am_lib565_OBJECTS = lib565-lib510.$(OBJEXT) $(am__objects_21)
337 am__objects_22 = lib565-first.$(OBJEXT)
338 am_lib565_OBJECTS = lib565-lib510.$(OBJEXT) $(am__objects_22)
335339 lib565_OBJECTS = $(am_lib565_OBJECTS)
336340 lib565_LDADD = $(LDADD)
337341 lib565_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
364368 lib572_LDADD = $(LDADD)
365369 lib572_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
366370 am_lib573_OBJECTS = lib573.$(OBJEXT) $(am__objects_1) $(am__objects_2) \
367 $(am__objects_3)
371 $(am__objects_4) $(am__objects_3)
368372 lib573_OBJECTS = $(am_lib573_OBJECTS)
369373 lib573_LDADD = $(LDADD)
370374 lib573_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
373377 lib574_LDADD = $(LDADD)
374378 lib574_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
375379 am_lib575_OBJECTS = lib575.$(OBJEXT) $(am__objects_1) $(am__objects_2) \
376 $(am__objects_3)
380 $(am__objects_4)
377381 lib575_OBJECTS = $(am_lib575_OBJECTS)
378382 lib575_LDADD = $(LDADD)
379383 lib575_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
390394 lib579_LDADD = $(LDADD)
391395 lib579_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
392396 am_lib582_OBJECTS = lib582.$(OBJEXT) $(am__objects_1) $(am__objects_2) \
393 $(am__objects_3)
397 $(am__objects_4)
394398 lib582_OBJECTS = $(am_lib582_OBJECTS)
395399 lib582_LDADD = $(LDADD)
396400 lib582_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
398402 lib583_OBJECTS = $(am_lib583_OBJECTS)
399403 lib583_LDADD = $(LDADD)
400404 lib583_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
401 am__objects_22 = lib585-first.$(OBJEXT)
402 am_lib585_OBJECTS = lib585-lib500.$(OBJEXT) $(am__objects_22)
405 am__objects_23 = lib585-first.$(OBJEXT)
406 am__objects_24 = lib585-testutil.$(OBJEXT)
407 am__objects_25 = lib585-testtrace.$(OBJEXT)
408 am_lib585_OBJECTS = lib585-lib500.$(OBJEXT) $(am__objects_23) \
409 $(am__objects_24) $(am__objects_25)
403410 lib585_OBJECTS = $(am_lib585_OBJECTS)
404411 lib585_LDADD = $(LDADD)
405412 lib585_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
406 am__objects_23 = lib587-first.$(OBJEXT)
407 am_lib587_OBJECTS = lib587-lib554.$(OBJEXT) $(am__objects_23)
413 am_lib586_OBJECTS = lib586.$(OBJEXT) $(am__objects_1)
414 lib586_OBJECTS = $(am_lib586_OBJECTS)
415 lib586_LDADD = $(LDADD)
416 lib586_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
417 am__objects_26 = lib587-first.$(OBJEXT)
418 am_lib587_OBJECTS = lib587-lib554.$(OBJEXT) $(am__objects_26)
408419 lib587_OBJECTS = $(am_lib587_OBJECTS)
409420 lib587_LDADD = $(LDADD)
410421 lib587_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
413424 lib590_LDADD = $(LDADD)
414425 lib590_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
415426 am_lib591_OBJECTS = lib591.$(OBJEXT) $(am__objects_1) $(am__objects_2) \
416 $(am__objects_3)
427 $(am__objects_4)
417428 lib591_OBJECTS = $(am_lib591_OBJECTS)
418429 lib591_LDADD = $(LDADD)
419430 lib591_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
431 am_lib597_OBJECTS = lib597.$(OBJEXT) $(am__objects_1) $(am__objects_2) \
432 $(am__objects_4)
433 lib597_OBJECTS = $(am_lib597_OBJECTS)
434 lib597_LDADD = $(LDADD)
435 lib597_DEPENDENCIES = $(top_builddir)/lib/libcurl.la
420436 DEFAULT_INCLUDES =
421437 depcomp = $(SHELL) $(top_srcdir)/depcomp
422438 am__depfiles_maybe = depfiles
451467 $(lib571_SOURCES) $(lib572_SOURCES) $(lib573_SOURCES) \
452468 $(lib574_SOURCES) $(lib575_SOURCES) $(lib576_SOURCES) \
453469 $(lib578_SOURCES) $(lib579_SOURCES) $(lib582_SOURCES) \
454 $(lib583_SOURCES) $(lib585_SOURCES) $(lib587_SOURCES) \
455 $(lib590_SOURCES) $(lib591_SOURCES)
470 $(lib583_SOURCES) $(lib585_SOURCES) $(lib586_SOURCES) \
471 $(lib587_SOURCES) $(lib590_SOURCES) $(lib591_SOURCES) \
472 $(lib597_SOURCES)
456473 DIST_SOURCES = $(libhostname_la_SOURCES) $(chkhostname_SOURCES) \
457474 $(lib500_SOURCES) $(lib501_SOURCES) $(lib502_SOURCES) \
458475 $(lib503_SOURCES) $(lib504_SOURCES) $(lib505_SOURCES) \
476493 $(lib571_SOURCES) $(lib572_SOURCES) $(lib573_SOURCES) \
477494 $(lib574_SOURCES) $(lib575_SOURCES) $(lib576_SOURCES) \
478495 $(lib578_SOURCES) $(lib579_SOURCES) $(lib582_SOURCES) \
479 $(lib583_SOURCES) $(lib585_SOURCES) $(lib587_SOURCES) \
480 $(lib590_SOURCES) $(lib591_SOURCES)
496 $(lib583_SOURCES) $(lib585_SOURCES) $(lib586_SOURCES) \
497 $(lib587_SOURCES) $(lib590_SOURCES) $(lib591_SOURCES) \
498 $(lib597_SOURCES)
481499 ETAGS = etags
482500 CTAGS = ctags
483501 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
613631 USE_EMBEDDED_ARES_FALSE = @USE_EMBEDDED_ARES_FALSE@
614632 USE_EMBEDDED_ARES_TRUE = @USE_EMBEDDED_ARES_TRUE@
615633 USE_GNUTLS = @USE_GNUTLS@
634 USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
616635 USE_LIBRTMP = @USE_LIBRTMP@
617636 USE_LIBSSH2 = @USE_LIBSSH2@
618637 USE_MANUAL_FALSE = @USE_MANUAL_FALSE@
623642 USE_SSLEAY = @USE_SSLEAY@
624643 USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
625644 VERSION = @VERSION@
645 VERSIONED_FLAVOUR = @VERSIONED_FLAVOUR@
646 VERSIONED_SYMBOLS_FALSE = @VERSIONED_SYMBOLS_FALSE@
647 VERSIONED_SYMBOLS_TRUE = @VERSIONED_SYMBOLS_TRUE@
626648 VERSIONNUM = @VERSIONNUM@
627649 ac_ct_AR = @ac_ct_AR@
628650 ac_ct_CC = @ac_ct_CC@
733755 TESTUTIL = testutil.c testutil.h
734756
735757 # files used only in some libcurl test programs
758 TSTTRACE = testtrace.c testtrace.h
759
760 # files used only in some libcurl test programs
736761 WARNLESS = $(top_srcdir)/lib/warnless.c $(top_srcdir)/lib/warnless.h
737762
738763 # these files are used in every single test program below
741766 chkhostname_LDADD = @CURL_NETWORK_LIBS@
742767 chkhostname_DEPENDENCIES =
743768 chkhostname_CFLAGS = $(AM_CFLAGS)
744 lib500_SOURCES = lib500.c $(SUPPORTFILES)
769 lib500_SOURCES = lib500.c $(SUPPORTFILES) $(TESTUTIL) $(TSTTRACE)
745770 lib501_SOURCES = lib501.c $(SUPPORTFILES)
746771 lib502_SOURCES = lib502.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
747772 lib503_SOURCES = lib503.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
811836 lib570_SOURCES = lib570.c $(SUPPORTFILES)
812837 lib571_SOURCES = lib571.c $(SUPPORTFILES)
813838 lib572_SOURCES = lib572.c $(SUPPORTFILES)
814 lib573_SOURCES = lib573.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
839 lib573_SOURCES = lib573.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS) $(TSTTRACE)
815840 lib578_SOURCES = lib578.c $(SUPPORTFILES)
816841 lib579_SOURCES = lib579.c $(SUPPORTFILES)
817842 lib582_SOURCES = lib582.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
818843 lib583_SOURCES = lib583.c $(SUPPORTFILES)
819 lib585_SOURCES = lib500.c $(SUPPORTFILES)
844 lib585_SOURCES = lib500.c $(SUPPORTFILES) $(TESTUTIL) $(TSTTRACE)
820845 lib585_CPPFLAGS = $(AM_CPPFLAGS) -DLIB585
846 lib586_SOURCES = lib586.c $(SUPPORTFILES)
821847 lib587_SOURCES = lib554.c $(SUPPORTFILES)
822848 lib587_CPPFLAGS = $(AM_CPPFLAGS) -DLIB587
823849 lib590_SOURCES = lib590.c $(SUPPORTFILES)
824850 lib591_SOURCES = lib591.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
851 lib597_SOURCES = lib597.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
825852 @BUILD_LIBHOSTNAME_FALSE@noinst_LTLIBRARIES =
826853
827854 # Makefile.inc provides the source defines (TESTUTIL, SUPPORTFILES,
10951122 lib585$(EXEEXT): $(lib585_OBJECTS) $(lib585_DEPENDENCIES)
10961123 @rm -f lib585$(EXEEXT)
10971124 $(LINK) $(lib585_LDFLAGS) $(lib585_OBJECTS) $(lib585_LDADD) $(LIBS)
1125 lib586$(EXEEXT): $(lib586_OBJECTS) $(lib586_DEPENDENCIES)
1126 @rm -f lib586$(EXEEXT)
1127 $(LINK) $(lib586_LDFLAGS) $(lib586_OBJECTS) $(lib586_LDADD) $(LIBS)
10981128 lib587$(EXEEXT): $(lib587_OBJECTS) $(lib587_DEPENDENCIES)
10991129 @rm -f lib587$(EXEEXT)
11001130 $(LINK) $(lib587_LDFLAGS) $(lib587_OBJECTS) $(lib587_LDADD) $(LIBS)
11041134 lib591$(EXEEXT): $(lib591_OBJECTS) $(lib591_DEPENDENCIES)
11051135 @rm -f lib591$(EXEEXT)
11061136 $(LINK) $(lib591_LDFLAGS) $(lib591_OBJECTS) $(lib591_LDADD) $(LIBS)
1137 lib597$(EXEEXT): $(lib597_OBJECTS) $(lib597_DEPENDENCIES)
1138 @rm -f lib597$(EXEEXT)
1139 $(LINK) $(lib597_LDFLAGS) $(lib597_OBJECTS) $(lib597_LDADD) $(LIBS)
11071140
11081141 mostlyclean-compile:
11091142 -rm -f *.$(OBJEXT)
12011234 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib583.Po@am__quote@
12021235 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib585-first.Po@am__quote@
12031236 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib585-lib500.Po@am__quote@
1237 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib585-testtrace.Po@am__quote@
1238 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib585-testutil.Po@am__quote@
1239 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib586.Po@am__quote@
12041240 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib587-first.Po@am__quote@
12051241 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib587-lib554.Po@am__quote@
12061242 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib590.Po@am__quote@
12071243 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib591.Po@am__quote@
1244 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib597.Po@am__quote@
12081245 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sethostname.Plo@am__quote@
1246 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testtrace.Po@am__quote@
12091247 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testutil.Po@am__quote@
12101248 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/warnless.Po@am__quote@
12111249
16631701 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='first.c' object='lib585-first.obj' libtool=no @AMDEPBACKSLASH@
16641702 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
16651703 @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib585_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib585-first.obj `if test -f 'first.c'; then $(CYGPATH_W) 'first.c'; else $(CYGPATH_W) '$(srcdir)/first.c'; fi`
1704
1705 lib585-testutil.o: testutil.c
1706 @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib585_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib585-testutil.o -MD -MP -MF "$(DEPDIR)/lib585-testutil.Tpo" -c -o lib585-testutil.o `test -f 'testutil.c' || echo '$(srcdir)/'`testutil.c; \
1707 @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib585-testutil.Tpo" "$(DEPDIR)/lib585-testutil.Po"; else rm -f "$(DEPDIR)/lib585-testutil.Tpo"; exit 1; fi
1708 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testutil.c' object='lib585-testutil.o' libtool=no @AMDEPBACKSLASH@
1709 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1710 @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib585_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib585-testutil.o `test -f 'testutil.c' || echo '$(srcdir)/'`testutil.c
1711
1712 lib585-testutil.obj: testutil.c
1713 @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib585_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib585-testutil.obj -MD -MP -MF "$(DEPDIR)/lib585-testutil.Tpo" -c -o lib585-testutil.obj `if test -f 'testutil.c'; then $(CYGPATH_W) 'testutil.c'; else $(CYGPATH_W) '$(srcdir)/testutil.c'; fi`; \
1714 @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib585-testutil.Tpo" "$(DEPDIR)/lib585-testutil.Po"; else rm -f "$(DEPDIR)/lib585-testutil.Tpo"; exit 1; fi
1715 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testutil.c' object='lib585-testutil.obj' libtool=no @AMDEPBACKSLASH@
1716 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1717 @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib585_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib585-testutil.obj `if test -f 'testutil.c'; then $(CYGPATH_W) 'testutil.c'; else $(CYGPATH_W) '$(srcdir)/testutil.c'; fi`
1718
1719 lib585-testtrace.o: testtrace.c
1720 @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib585_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib585-testtrace.o -MD -MP -MF "$(DEPDIR)/lib585-testtrace.Tpo" -c -o lib585-testtrace.o `test -f 'testtrace.c' || echo '$(srcdir)/'`testtrace.c; \
1721 @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib585-testtrace.Tpo" "$(DEPDIR)/lib585-testtrace.Po"; else rm -f "$(DEPDIR)/lib585-testtrace.Tpo"; exit 1; fi
1722 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testtrace.c' object='lib585-testtrace.o' libtool=no @AMDEPBACKSLASH@
1723 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1724 @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib585_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib585-testtrace.o `test -f 'testtrace.c' || echo '$(srcdir)/'`testtrace.c
1725
1726 lib585-testtrace.obj: testtrace.c
1727 @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib585_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib585-testtrace.obj -MD -MP -MF "$(DEPDIR)/lib585-testtrace.Tpo" -c -o lib585-testtrace.obj `if test -f 'testtrace.c'; then $(CYGPATH_W) 'testtrace.c'; else $(CYGPATH_W) '$(srcdir)/testtrace.c'; fi`; \
1728 @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib585-testtrace.Tpo" "$(DEPDIR)/lib585-testtrace.Po"; else rm -f "$(DEPDIR)/lib585-testtrace.Tpo"; exit 1; fi
1729 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testtrace.c' object='lib585-testtrace.obj' libtool=no @AMDEPBACKSLASH@
1730 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1731 @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib585_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib585-testtrace.obj `if test -f 'testtrace.c'; then $(CYGPATH_W) 'testtrace.c'; else $(CYGPATH_W) '$(srcdir)/testtrace.c'; fi`
16661732
16671733 lib587-lib554.o: lib554.c
16681734 @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib587_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib587-lib554.o -MD -MP -MF "$(DEPDIR)/lib587-lib554.Tpo" -c -o lib587-lib554.o `test -f 'lib554.c' || echo '$(srcdir)/'`lib554.c; \
00 # files used only in some libcurl test programs
11 TESTUTIL = testutil.c testutil.h
2
3 # files used only in some libcurl test programs
4 TSTTRACE = testtrace.c testtrace.h
25
36 # files used only in some libcurl test programs
47 WARNLESS = $(top_srcdir)/lib/warnless.c $(top_srcdir)/lib/warnless.h
1417 lib579 lib529 lib530 lib532 lib533 lib536 lib537 lib540 lib541 lib542 \
1518 lib543 lib544 lib545 lib547 lib548 lib549 lib552 lib553 lib554 lib555 \
1619 lib556 lib539 lib557 lib560 lib562 lib564 lib565 lib566 lib567 lib568 \
17 lib569 lib570 lib571 lib572 lib573 lib582 lib583 lib585 lib587 lib590 \
18 lib591
20 lib569 lib570 lib571 lib572 lib573 lib582 lib583 lib585 lib586 lib587 \
21 lib590 lib591 lib597
1922
2023 chkhostname_SOURCES = chkhostname.c $(top_srcdir)/lib/curl_gethostname.c
2124 chkhostname_LDADD = @CURL_NETWORK_LIBS@
2225 chkhostname_DEPENDENCIES =
2326 chkhostname_CFLAGS = $(AM_CFLAGS)
2427
25 lib500_SOURCES = lib500.c $(SUPPORTFILES)
28 lib500_SOURCES = lib500.c $(SUPPORTFILES) $(TESTUTIL) $(TSTTRACE)
2629
2730 lib501_SOURCES = lib501.c $(SUPPORTFILES)
2831
154157
155158 lib572_SOURCES = lib572.c $(SUPPORTFILES)
156159
157 lib573_SOURCES = lib573.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
160 lib573_SOURCES = lib573.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS) $(TSTTRACE)
158161
159162 lib578_SOURCES = lib578.c $(SUPPORTFILES)
160163
164167
165168 lib583_SOURCES = lib583.c $(SUPPORTFILES)
166169
167 lib585_SOURCES = lib500.c $(SUPPORTFILES)
170 lib585_SOURCES = lib500.c $(SUPPORTFILES) $(TESTUTIL) $(TSTTRACE)
168171 lib585_CPPFLAGS = $(AM_CPPFLAGS) -DLIB585
172
173 lib586_SOURCES = lib586.c $(SUPPORTFILES)
169174
170175 lib587_SOURCES = lib554.c $(SUPPORTFILES)
171176 lib587_CPPFLAGS = $(AM_CPPFLAGS) -DLIB587
173178 lib590_SOURCES = lib590.c $(SUPPORTFILES)
174179
175180 lib591_SOURCES = lib591.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
181
182 lib597_SOURCES = lib597.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
3737 return -1;
3838 }
3939 #ifdef USE_WINSOCK
40 /*
40 /*
4141 * Winsock select() requires that at least one of the three fd_set
4242 * pointers is not NULL and points to a non-empty fdset. IOW Winsock
4343 * select() can not be used to sleep without a single fd_set.
44 * | (__| |_| | _ <| |___
55 * \___|\___/|_| \_\_____|
66 *
7 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
7 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
88 *
99 * This software is licensed as described in the file COPYING, which
1010 * you should have received as part of this distribution. The terms
2020 ***************************************************************************/
2121 #include "test.h"
2222
23 #include "testtrace.h"
2324 #include "memdebug.h"
2425
2526 #ifdef LIB585
7576 test_setopt(curl, CURLOPT_URL, URL);
7677 test_setopt(curl, CURLOPT_HEADER, 1L);
7778
79 libtest_debug_config.nohex = 1;
80 libtest_debug_config.tracetime = 1;
81 test_setopt(curl, CURLOPT_DEBUGDATA, &libtest_debug_config);
82 test_setopt(curl, CURLOPT_DEBUGFUNCTION, libtest_debug_cb);
83 test_setopt(curl, CURLOPT_VERBOSE, 1L);
84
85 if(libtest_arg3 && !strcmp(libtest_arg3, "activeftp"))
86 test_setopt(curl, CURLOPT_FTPPORT, "-");
87
7888 setupcallbacks(curl);
7989
8090 res = curl_easy_perform(curl);
8494 res = curl_easy_getinfo(curl, CURLINFO_PRIMARY_IP, &ipstr);
8595 moo = fopen(libtest_arg2, "wb");
8696 if(moo) {
97 double time_namelookup;
98 double time_connect;
99 double time_pretransfer;
100 double time_starttransfer;
101 double time_total;
87102 fprintf(moo, "IP: %s\n", ipstr);
103 curl_easy_getinfo(curl, CURLINFO_NAMELOOKUP_TIME, &time_namelookup);
104 curl_easy_getinfo(curl, CURLINFO_CONNECT_TIME, &time_connect);
105 curl_easy_getinfo(curl, CURLINFO_PRETRANSFER_TIME, &time_pretransfer);
106 curl_easy_getinfo(curl, CURLINFO_STARTTRANSFER_TIME,
107 &time_starttransfer);
108 curl_easy_getinfo(curl, CURLINFO_TOTAL_TIME, &time_total);
109
110 /* since the timing will always vary we only compare relative differences
111 between these 5 times */
112 if(time_namelookup >= time_connect) {
113 fprintf(moo, "namelookup vs connect: %f %f\n",
114 time_namelookup, time_connect);
115 }
116 if(time_connect >= time_pretransfer) {
117 fprintf(moo, "connect vs pretransfer: %f %f\n",
118 time_connect, time_pretransfer);
119 }
120 if(time_pretransfer >= time_starttransfer) {
121 fprintf(moo, "pretransfer vs starttransfer: %f %f\n",
122 time_pretransfer, time_starttransfer);
123 }
124 if(time_starttransfer >= time_total) {
125 fprintf(moo, "starttransfer vs total: %f %f\n",
126 time_starttransfer, time_total);
127 }
128
88129 fclose(moo);
89130 }
90131 }
44 * | (__| |_| | _ <| |___
55 * \___|\___/|_| \_\_____|
66 *
7 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
7 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
88 *
99 * This software is licensed as described in the file COPYING, which
1010 * you should have received as part of this distribution. The terms
2020 ***************************************************************************/
2121 #include "test.h"
2222
23 #include "testtrace.h"
2324 #include "testutil.h"
2425 #include "warnless.h"
2526 #include "memdebug.h"
3738 int res = 0;
3839 int running = 1;
3940 double connect_time = 0.0;
41 double dbl_epsilon;
42
43 dbl_epsilon = 1.0;
44 do {
45 dbl_epsilon /= 2.0;
46 } while ((double)(1.0 + (dbl_epsilon/2.0)) > (double)1.0);
4047
4148 start_test_timing();
4249
4653
4754 easy_setopt(c, CURLOPT_HEADER, 1L);
4855 easy_setopt(c, CURLOPT_URL, URL);
56
57 libtest_debug_config.nohex = 1;
58 libtest_debug_config.tracetime = 1;
59 easy_setopt(c, CURLOPT_DEBUGDATA, &libtest_debug_config);
60 easy_setopt(c, CURLOPT_DEBUGFUNCTION, libtest_debug_cb);
61 easy_setopt(c, CURLOPT_VERBOSE, 1L);
4962
5063 multi_init(m);
5164
8093 }
8194
8295 curl_easy_getinfo(c, CURLINFO_CONNECT_TIME, &connect_time);
83 if (connect_time <= 0.0) {
84 fprintf(stderr, "connect time is <=0.0\n");
96 if (connect_time < dbl_epsilon) {
97 fprintf(stderr, "connect time is < epsilon\n");
8598 res = TEST_ERR_MAJOR_BAD;
8699 }
87100
0 /***************************************************************************
1 * _ _ ____ _
2 * Project ___| | | | _ \| |
3 * / __| | | | |_) | |
4 * | (__| |_| | _ <| |___
5 * \___|\___/|_| \_\_____|
6 *
7 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
8 *
9 * This software is licensed as described in the file COPYING, which
10 * you should have received as part of this distribution. The terms
11 * are also available at http://curl.haxx.se/docs/copyright.html.
12 *
13 * You may opt to use, copy, modify, merge, publish, distribute and/or sell
14 * copies of the Software, and permit persons to whom the Software is
15 * furnished to do so, under the terms of the COPYING file.
16 *
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
19 *
20 ***************************************************************************/
21 #include "test.h"
22
23 #include <curl/mprintf.h>
24
25 #include "memdebug.h"
26
27 #define THREADS 2
28
29 /* struct containing data of a thread */
30 struct Tdata {
31 CURLSH *share;
32 char *url;
33 };
34
35 struct userdata {
36 char *text;
37 int counter;
38 };
39
40 /* lock callback */
41 static void my_lock(CURL *handle, curl_lock_data data, curl_lock_access laccess,
42 void *useptr )
43 {
44 const char *what;
45 struct userdata *user = (struct userdata *)useptr;
46
47 (void)handle;
48 (void)laccess;
49
50 switch ( data ) {
51 case CURL_LOCK_DATA_SHARE:
52 what = "share";
53 break;
54 case CURL_LOCK_DATA_DNS:
55 what = "dns";
56 break;
57 case CURL_LOCK_DATA_COOKIE:
58 what = "cookie";
59 break;
60 case CURL_LOCK_DATA_SSL_SESSION:
61 what = "ssl_session";
62 break;
63 default:
64 fprintf(stderr, "lock: no such data: %d\n", (int)data);
65 return;
66 }
67 printf("lock: %-6s [%s]: %d\n", what, user->text, user->counter);
68 user->counter++;
69 }
70
71 /* unlock callback */
72 static void my_unlock(CURL *handle, curl_lock_data data, void *useptr )
73 {
74 const char *what;
75 struct userdata *user = (struct userdata *)useptr;
76 (void)handle;
77 switch ( data ) {
78 case CURL_LOCK_DATA_SHARE:
79 what = "share";
80 break;
81 case CURL_LOCK_DATA_DNS:
82 what = "dns";
83 break;
84 case CURL_LOCK_DATA_COOKIE:
85 what = "cookie";
86 break;
87 case CURL_LOCK_DATA_SSL_SESSION:
88 what = "ssl_session";
89 break;
90 default:
91 fprintf(stderr, "unlock: no such data: %d\n", (int)data);
92 return;
93 }
94 printf("unlock: %-6s [%s]: %d\n", what, user->text, user->counter);
95 user->counter++;
96 }
97
98 /* the dummy thread function */
99 static void *fire(void *ptr)
100 {
101 CURLcode code;
102 struct Tdata *tdata = (struct Tdata*)ptr;
103 CURL *curl;
104 int i=0;
105
106 if ((curl = curl_easy_init()) == NULL) {
107 fprintf(stderr, "curl_easy_init() failed\n");
108 return NULL;
109 }
110
111 curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0);
112 curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
113 curl_easy_setopt(curl, CURLOPT_URL, tdata->url);
114 printf( "CURLOPT_SHARE\n" );
115 curl_easy_setopt(curl, CURLOPT_SHARE, tdata->share);
116
117 printf( "PERFORM\n" );
118 code = curl_easy_perform(curl);
119 if( code != CURLE_OK ) {
120 fprintf(stderr, "perform url '%s' repeat %d failed, curlcode %d\n",
121 tdata->url, i, (int)code);
122 }
123
124 printf( "CLEANUP\n" );
125 curl_easy_cleanup(curl);
126
127 return NULL;
128 }
129
130 /* test function */
131 int test(char *URL)
132 {
133 int res;
134 CURLSHcode scode = CURLSHE_OK;
135 char *url;
136 struct Tdata tdata;
137 CURL *curl;
138 CURLSH *share;
139 int i;
140 struct userdata user;
141
142 user.text = (char *)"Pigs in space";
143 user.counter = 0;
144
145 printf( "GLOBAL_INIT\n" );
146 if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) {
147 fprintf(stderr, "curl_global_init() failed\n");
148 return TEST_ERR_MAJOR_BAD;
149 }
150
151 /* prepare share */
152 printf( "SHARE_INIT\n" );
153 if ((share = curl_share_init()) == NULL) {
154 fprintf(stderr, "curl_share_init() failed\n");
155 curl_global_cleanup();
156 return TEST_ERR_MAJOR_BAD;
157 }
158
159 if ( CURLSHE_OK == scode ) {
160 printf( "CURLSHOPT_LOCKFUNC\n" );
161 scode = curl_share_setopt( share, CURLSHOPT_LOCKFUNC, my_lock);
162 }
163 if ( CURLSHE_OK == scode ) {
164 printf( "CURLSHOPT_UNLOCKFUNC\n" );
165 scode = curl_share_setopt( share, CURLSHOPT_UNLOCKFUNC, my_unlock);
166 }
167 if ( CURLSHE_OK == scode ) {
168 printf( "CURLSHOPT_USERDATA\n" );
169 scode = curl_share_setopt( share, CURLSHOPT_USERDATA, &user);
170 }
171 if ( CURLSHE_OK == scode ) {
172 printf( "CURL_LOCK_DATA_SSL_SESSION\n" );
173 scode = curl_share_setopt( share, CURLSHOPT_SHARE, CURL_LOCK_DATA_SSL_SESSION);
174 }
175
176 if ( CURLSHE_OK != scode ) {
177 fprintf(stderr, "curl_share_setopt() failed\n");
178 curl_share_cleanup(share);
179 curl_global_cleanup();
180 return TEST_ERR_MAJOR_BAD;
181 }
182
183
184 res = 0;
185
186 /* start treads */
187 for (i=1; i<=THREADS; i++ ) {
188
189 /* set thread data */
190 tdata.url = URL;
191 tdata.share = share;
192
193 /* simulate thread, direct call of "thread" function */
194 printf( "*** run %d\n",i );
195 fire( &tdata );
196 }
197
198
199 /* fetch a another one */
200 printf( "*** run %d\n", i );
201 if ((curl = curl_easy_init()) == NULL) {
202 fprintf(stderr, "curl_easy_init() failed\n");
203 curl_share_cleanup(share);
204 curl_global_cleanup();
205 return TEST_ERR_MAJOR_BAD;
206 }
207
208 url = URL;
209 test_setopt( curl, CURLOPT_URL, url );
210 printf( "CURLOPT_SHARE\n" );
211 test_setopt( curl, CURLOPT_SHARE, share );
212
213 printf( "PERFORM\n" );
214 curl_easy_perform( curl );
215
216 /* try to free share, expect to fail because share is in use*/
217 printf( "try SHARE_CLEANUP...\n" );
218 scode = curl_share_cleanup( share );
219 if ( scode==CURLSHE_OK )
220 {
221 fprintf(stderr, "curl_share_cleanup succeed but error expected\n");
222 share = NULL;
223 } else {
224 printf( "SHARE_CLEANUP failed, correct\n" );
225 }
226
227 test_cleanup:
228
229 /* clean up last handle */
230 printf( "CLEANUP\n" );
231 curl_easy_cleanup( curl );
232
233 /* free share */
234 printf( "SHARE_CLEANUP\n" );
235 scode = curl_share_cleanup( share );
236 if ( scode!=CURLSHE_OK )
237 fprintf(stderr, "curl_share_cleanup failed, code errno %d\n",
238 (int)scode);
239
240 printf( "GLOBAL_CLEANUP\n" );
241 curl_global_cleanup();
242
243 return res;
244 }
245
7676 easy_setopt(easy, CURLOPT_FTPPORT, "-");
7777
7878 /* server connection timeout */
79 easy_setopt(easy, CURLOPT_CONNECTTIMEOUT, strtol(libtest_arg2, NULL, 10));
79 easy_setopt(easy, CURLOPT_ACCEPTTIMEOUT_MS,
80 strtol(libtest_arg2, NULL, 10)*1000);
8081
8182 multi_init(multi);
8283
0 /***************************************************************************
1 * _ _ ____ _
2 * Project ___| | | | _ \| |
3 * / __| | | | |_) | |
4 * | (__| |_| | _ <| |___
5 * \___|\___/|_| \_\_____|
6 *
7 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
8 *
9 * This software is licensed as described in the file COPYING, which
10 * you should have received as part of this distribution. The terms
11 * are also available at http://curl.haxx.se/docs/copyright.html.
12 *
13 * You may opt to use, copy, modify, merge, publish, distribute and/or sell
14 * copies of the Software, and permit persons to whom the Software is
15 * furnished to do so, under the terms of the COPYING file.
16 *
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
19 *
20 ***************************************************************************/
21 #include "test.h"
22
23 #include "testutil.h"
24 #include "warnless.h"
25 #include "memdebug.h"
26
27 #define TEST_HANG_TIMEOUT 5 * 1000
28
29 /*
30 * Test case for below scenario:
31 * - Connect to an FTP server using CONNECT_ONLY option
32 * - transfer some files with re-using the connection (omitted in test case)
33 * - Disconnect from FTP server with sending QUIT command
34 *
35 * The test case originated for verifying CONNECT_ONLY option shall not
36 * block after protocol connect is done, but it returns the message
37 * with function curl_multi_info_read().
38 */
39
40 enum {
41 CONNECT_ONLY_PHASE = 0,
42 QUIT_PHASE,
43 LAST_PHASE
44 };
45
46 int test(char *URL)
47 {
48 CURL *easy = NULL;
49 CURLM *multi = NULL;
50 int res = 0;
51 int running;
52 int msgs_left;
53 int phase;
54 CURLMsg *msg;
55
56 start_test_timing();
57
58 res_global_init(CURL_GLOBAL_ALL);
59 if(res) {
60 return res;
61 }
62
63 easy_init(easy);
64
65 multi_init(multi);
66
67 for (phase = CONNECT_ONLY_PHASE; phase < LAST_PHASE; ++phase) {
68 /* go verbose */
69 easy_setopt(easy, CURLOPT_VERBOSE, 1L);
70
71 /* specify target */
72 easy_setopt(easy, CURLOPT_URL, URL);
73
74 /* enable 'CONNECT_ONLY' option when in connect phase */
75 if (phase == CONNECT_ONLY_PHASE)
76 easy_setopt(easy, CURLOPT_CONNECT_ONLY, 1L);
77
78 /* enable 'NOBODY' option to send 'QUIT' command in quit phase */
79 if (phase == QUIT_PHASE) {
80 easy_setopt(easy, CURLOPT_CONNECT_ONLY, 0L);
81 easy_setopt(easy, CURLOPT_NOBODY, 1L);
82 easy_setopt(easy, CURLOPT_FORBID_REUSE, 1L);
83 }
84
85 multi_add_handle(multi, easy);
86
87 for(;;) {
88 struct timeval interval;
89 fd_set fdread;
90 fd_set fdwrite;
91 fd_set fdexcep;
92 long timeout = -99;
93 int maxfd = -99;
94
95 multi_perform(multi, &running);
96
97 abort_on_test_timeout();
98
99 if(!running)
100 break; /* done */
101
102 FD_ZERO(&fdread);
103 FD_ZERO(&fdwrite);
104 FD_ZERO(&fdexcep);
105
106 multi_fdset(multi, &fdread, &fdwrite, &fdexcep, &maxfd);
107
108 /* At this point, maxfd is guaranteed to be greater or equal than -1. */
109
110 multi_timeout(multi, &timeout);
111
112 /* At this point, timeout is guaranteed to be greater or equal than -1. */
113
114 if(timeout != -1L) {
115 interval.tv_sec = timeout/1000;
116 interval.tv_usec = (timeout%1000)*1000;
117 }
118 else {
119 interval.tv_sec = TEST_HANG_TIMEOUT/1000+1;
120 interval.tv_usec = 0;
121 }
122
123 select_test(maxfd+1, &fdread, &fdwrite, &fdexcep, &interval);
124
125 abort_on_test_timeout();
126 }
127
128 msg = curl_multi_info_read(multi, &msgs_left);
129 if(msg)
130 res = msg->data.result;
131
132 multi_remove_handle(multi, easy);
133 }
134
135 test_cleanup:
136
137 /* undocumented cleanup sequence - type UA */
138
139 curl_multi_cleanup(multi);
140 curl_easy_cleanup(easy);
141 curl_global_cleanup();
142
143 return res;
144 }
241241
242242 /* ---------------------------------------------------------------- */
243243
244 #define exe_multi_remove_handle(A,B,Y,Z) do { \
245 CURLMcode ec; \
246 if((ec = curl_multi_remove_handle((A),(B))) != CURLM_OK) { \
247 fprintf(stderr, "%s:%d curl_multi_remove_handle() failed, " \
248 "with code %d (%s)\n", \
249 (Y), (Z), (int)ec, curl_multi_strerror(ec)); \
250 res = (int)ec; \
251 } \
252 } WHILE_FALSE
253
254 #define res_multi_remove_handle(A,B) \
255 exe_multi_remove_handle((A),(B),(__FILE__),(__LINE__))
256
257 #define chk_multi_remove_handle(A,B,Y,Z) do { \
258 exe_multi_remove_handle((A),(B),(Y),(Z)); \
259 if(res) \
260 goto test_cleanup; \
261 } WHILE_FALSE
262
263
264 #define multi_remove_handle(A,B) \
265 chk_multi_remove_handle((A),(B),(__FILE__),(__LINE__))
266
267 /* ---------------------------------------------------------------- */
268
244269 #define exe_multi_perform(A,B,Y,Z) do { \
245270 CURLMcode ec; \
246271 if((ec = curl_multi_perform((A),(B))) != CURLM_OK) { \
0 /***************************************************************************
1 * _ _ ____ _
2 * Project ___| | | | _ \| |
3 * / __| | | | |_) | |
4 * | (__| |_| | _ <| |___
5 * \___|\___/|_| \_\_____|
6 *
7 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
8 *
9 * This software is licensed as described in the file COPYING, which
10 * you should have received as part of this distribution. The terms
11 * are also available at http://curl.haxx.se/docs/copyright.html.
12 *
13 * You may opt to use, copy, modify, merge, publish, distribute and/or sell
14 * copies of the Software, and permit persons to whom the Software is
15 * furnished to do so, under the terms of the COPYING file.
16 *
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
19 *
20 ***************************************************************************/
21
22 #include "test.h"
23
24 #include "testutil.h"
25 #include "testtrace.h"
26 #include "memdebug.h"
27
28 struct libtest_trace_cfg libtest_debug_config;
29
30 static time_t epoch_offset; /* for test time tracing */
31 static int known_offset; /* for test time tracing */
32
33 static
34 void libtest_debug_dump(const char *timebuf, const char *text, FILE *stream,
35 const unsigned char *ptr, size_t size, int nohex)
36 {
37 size_t i;
38 size_t c;
39
40 unsigned int width = 0x10;
41
42 if(nohex)
43 /* without the hex output, we can fit more on screen */
44 width = 0x40;
45
46 fprintf(stream, "%s%s, %d bytes (0x%x)\n", timebuf, text,
47 (int)size, (int)size);
48
49 for(i = 0; i < size; i += width) {
50
51 fprintf(stream, "%04x: ", (int)i);
52
53 if(!nohex) {
54 /* hex not disabled, show it */
55 for(c = 0; c < width; c++)
56 if(i+c < size)
57 fprintf(stream, "%02x ", ptr[i+c]);
58 else
59 fputs(" ", stream);
60 }
61
62 for(c = 0; (c < width) && (i+c < size); c++) {
63 /* check for 0D0A; if found, skip past and start a new line of output */
64 if(nohex &&
65 (i+c+1 < size) && (ptr[i+c] == 0x0D) && (ptr[i+c+1] == 0x0A)) {
66 i += (c+2-width);
67 break;
68 }
69 fprintf(stream, "%c", ((ptr[i+c] >= 0x20) && (ptr[i+c] < 0x80)) ?
70 ptr[i+c] : '.');
71 /* check again for 0D0A, to avoid an extra \n if it's at width */
72 if(nohex &&
73 (i+c+2 < size) && (ptr[i+c+1] == 0x0D) && (ptr[i+c+2] == 0x0A)) {
74 i += (c+3-width);
75 break;
76 }
77 }
78 fputc('\n', stream); /* newline */
79 }
80 fflush(stream);
81 }
82
83 int libtest_debug_cb(CURL *handle, curl_infotype type,
84 unsigned char *data, size_t size,
85 void *userp)
86 {
87
88 struct libtest_trace_cfg *trace_cfg = userp;
89 const char *text;
90 struct timeval tv;
91 struct tm *now;
92 char timebuf[20];
93 time_t secs;
94
95 (void)handle;
96
97 timebuf[0] = '\0';
98
99 if(trace_cfg->tracetime) {
100 tv = tutil_tvnow();
101 if(!known_offset) {
102 epoch_offset = time(NULL) - tv.tv_sec;
103 known_offset = 1;
104 }
105 secs = epoch_offset + tv.tv_sec;
106 now = localtime(&secs); /* not thread safe but we don't care */
107 snprintf(timebuf, sizeof(timebuf), "%02d:%02d:%02d.%06ld ",
108 now->tm_hour, now->tm_min, now->tm_sec, (long)tv.tv_usec);
109 }
110
111 switch (type) {
112 case CURLINFO_TEXT:
113 fprintf(stderr, "%s== Info: %s", &timebuf[0], data);
114 default: /* in case a new one is introduced to shock us */
115 return 0;
116
117 case CURLINFO_HEADER_OUT:
118 text = "=> Send header";
119 break;
120 case CURLINFO_DATA_OUT:
121 text = "=> Send data";
122 break;
123 case CURLINFO_SSL_DATA_OUT:
124 text = "=> Send SSL data";
125 break;
126 case CURLINFO_HEADER_IN:
127 text = "<= Recv header";
128 break;
129 case CURLINFO_DATA_IN:
130 text = "<= Recv data";
131 break;
132 case CURLINFO_SSL_DATA_IN:
133 text = "<= Recv SSL data";
134 break;
135 }
136
137 libtest_debug_dump(timebuf, text, stderr, data, size, trace_cfg->nohex);
138 return 0;
139 }
140
0 #ifndef HEADER_LIBTEST_TESTTRACE_H
1 #define HEADER_LIBTEST_TESTTRACE_H
2 /***************************************************************************
3 * _ _ ____ _
4 * Project ___| | | | _ \| |
5 * / __| | | | |_) | |
6 * | (__| |_| | _ <| |___
7 * \___|\___/|_| \_\_____|
8 *
9 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
10 *
11 * This software is licensed as described in the file COPYING, which
12 * you should have received as part of this distribution. The terms
13 * are also available at http://curl.haxx.se/docs/copyright.html.
14 *
15 * You may opt to use, copy, modify, merge, publish, distribute and/or sell
16 * copies of the Software, and permit persons to whom the Software is
17 * furnished to do so, under the terms of the COPYING file.
18 *
19 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
20 * KIND, either express or implied.
21 *
22 ***************************************************************************/
23
24 struct libtest_trace_cfg {
25 int tracetime; /* 0 represents FALSE, anything else TRUE */
26 int nohex; /* 0 represents FALSE, anything else TRUE */
27 };
28
29 extern struct libtest_trace_cfg libtest_debug_config;
30
31 int libtest_debug_cb(CURL *handle, curl_infotype type,
32 unsigned char *data, size_t size,
33 void *userp);
34
35 #endif /* HEADER_LIBTEST_TESTTRACE_H */
36
122122 */
123123 double tutil_tvdiff_secs(struct timeval newer, struct timeval older)
124124 {
125 return (double)(newer.tv_sec-older.tv_sec)+
126 (double)(newer.tv_usec-older.tv_usec)/1000000.0;
125 if(newer.tv_sec != older.tv_sec)
126 return (double)(newer.tv_sec-older.tv_sec)+
127 (double)(newer.tv_usec-older.tv_usec)/1000000.0;
128 else
129 return (double)(newer.tv_usec-older.tv_usec)/1000000.0;
127130 }
128131
129132 /* return the number of seconds in the given input timeval struct */
55 # | (__| |_| | _ <| |___
66 # \___|\___/|_| \_\_____|
77 #
8 # Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
8 # Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
99 #
1010 # This software is licensed as described in the file COPYING, which
1111 # you should have received as part of this distribution. The terms
137137 my $GOPHER6PORT; # Gopher IPv6 server port
138138 my $HTTPTLSPORT; # HTTP TLS (non-stunnel) server port
139139 my $HTTPTLS6PORT; # HTTP TLS (non-stunnel) IPv6 server port
140 my $HTTPPROXYPORT; # HTTP proxy port, when using CONNECT
140141
141142 my $srcdir = $ENV{'srcdir'} || '.';
142143 my $CURL="../src/curl".exe_ext(); # what curl executable to run on the tests
148149 my $TESTDIR="$srcdir/data";
149150 my $LIBDIR="./libtest";
150151 my $UNITDIR="./unit";
152 # TODO: change this to use server_inputfilename()
151153 my $SERVERIN="$LOGDIR/server.input"; # what curl sent the server
152154 my $SERVER2IN="$LOGDIR/server2.input"; # what curl sent the second server
155 my $PROXYIN="$LOGDIR/proxy.input"; # what curl sent the proxy
153156 my $CURLLOG="$LOGDIR/curl.log"; # all command lines run
154157 my $FTPDCMD="$LOGDIR/ftpserver.cmd"; # copy ftp server instructions here
155158 my $SERVERLOGS_LOCK="$LOGDIR/serverlogs.lock"; # server logs advisor read lock
215218 my $has_polarssl;# built with polarssl
216219 my $has_axtls; # built with axTLS
217220
218 my $has_shared; # built shared
221 my $has_shared = "unknown"; # built shared
219222
220223 my $ssllib; # name of the lib we use (for human presentation)
221224 my $has_crypto; # set if libcurl is built with cryptographic support
229232 my @teststat; # teststat[testnum]=reason, reasons for skip
230233 my %disabled_keywords; # key words of tests to skip
231234 my %enabled_keywords; # key words of tests to run
232 my %disabled; # disabled test cases
235 my %disabled; # disabled test cases
233236
234237 my $sshdid; # for socks server, ssh daemon version id
235238 my $sshdvernum; # for socks server, ssh daemon version number
253256 my %oldenv;
254257
255258 #######################################################################
256 # variables the command line options may set
259 # variables that command line options may set
257260 #
258261
259262 my $short;
11531156 # start the http server
11541157 #
11551158 sub runhttpserver {
1156 my ($proto, $verbose, $ipv6, $port) = @_;
1159 my ($proto, $verbose, $alt, $port) = @_;
11571160 my $ip = $HOSTIP;
11581161 my $ipvnum = 4;
11591162 my $idnum = 1;
11631166 my $logfile;
11641167 my $flags = "";
11651168
1166 if($ipv6) {
1169 if($alt eq "ipv6") {
11671170 # if IPv6, use a different setup
11681171 $ipvnum = 6;
11691172 $ip = $HOST6IP;
11701173 }
1174 elsif($alt eq "proxy") {
1175 # basically the same, but another ID
1176 $idnum = 2;
1177 }
11711178
11721179 $server = servername_id($proto, $ipvnum, $idnum);
11731180
11901197
11911198 $flags .= "--fork " if($forkserver);
11921199 $flags .= "--gopher " if($proto eq "gopher");
1200 $flags .= "--connect $HOSTIP " if($alt eq "proxy");
11931201 $flags .= "--verbose " if($debugprotocol);
11941202 $flags .= "--pidfile \"$pidfile\" --logfile \"$logfile\" ";
11951203 $flags .= "--id $idnum " if($idnum > 1);
19731981 # be used to verify that a server present in %run hash is still functional
19741982 #
19751983 sub responsive_http_server {
1976 my ($proto, $verbose, $ipv6, $port) = @_;
1984 my ($proto, $verbose, $alt, $port) = @_;
19771985 my $ip = $HOSTIP;
19781986 my $ipvnum = 4;
19791987 my $idnum = 1;
19801988
1981 if($ipv6) {
1989 if($alt eq "ipv6") {
19821990 # if IPv6, use a different setup
19831991 $ipvnum = 6;
19841992 $ip = $HOST6IP;
1993 }
1994 elsif($alt eq "proxy") {
1995 $idnum = 2;
19851996 }
19861997
19871998 return &responsiveserver($proto, $ipvnum, $idnum, $ip, $port);
22642275 $has_polarssl=1;
22652276 $has_openssl=1;
22662277 $ssllib="polarssl";
2267 }
2278 }
22682279 elsif ($libcurl =~ /axtls/i) {
22692280 $has_axtls=1;
22702281 $ssllib="axTLS";
22782289 # IPv6 <server> name. This works even if IPv6 support isn't
22792290 # compiled in because the <features> test will fail.
22802291 push @protocols, map($_ . '-ipv6', @protocols);
2292
2293 # 'http-proxy' is used in test cases to do CONNECT through
2294 push @protocols, 'http-proxy';
22812295
22822296 # 'none' is used in test cases to mean no server
22832297 push @protocols, 'none';
25042518 $$thing =~ s/%HTTP6PORT/$HTTP6PORT/g;
25052519 $$thing =~ s/%HTTPSPORT/$HTTPSPORT/g;
25062520 $$thing =~ s/%HTTPPORT/$HTTPPORT/g;
2521 $$thing =~ s/%PROXYPORT/$HTTPPROXYPORT/g;
25072522
25082523 $$thing =~ s/%IMAP6PORT/$IMAP6PORT/g;
25092524 $$thing =~ s/%IMAPPORT/$IMAPPORT/g;
28672882 $teststat[$testnum]=$why; # store reason for this test case
28682883
28692884 if(!$short) {
2870 printf "test %03d SKIPPED: $why\n", $testnum;
2885 logmsg sprintf("test %03d SKIPPED: $why\n", $testnum);
28712886 }
28722887
28732888 timestampskippedevents($testnum);
28952910 # this is the valid protocol blurb curl should generate
28962911 my @protocol= fixarray ( getpart("verify", "protocol") );
28972912
2913 # this is the valid protocol blurb curl should generate to a proxy
2914 my @proxyprot = fixarray ( getpart("verify", "proxy") );
2915
28982916 # redirected stdout/stderr to these files
28992917 $STDOUT="$LOGDIR/stdout$testnum";
29002918 $STDERR="$LOGDIR/stderr$testnum";
29322950 chomp $tool;
29332951 }
29342952
2935 # remove server output logfiles
2953 # remove server output logfile
29362954 unlink($SERVERIN);
29372955 unlink($SERVER2IN);
2956 unlink($PROXYIN);
29382957
29392958 if(@ftpservercmd) {
29402959 # write the instructions to file
30243043 $inc = "--include ";
30253044 }
30263045
3027 $cmdargs ="$out $inc--verbose --trace-time $cmd";
3046 $cmdargs ="$out $inc--trace-ascii log/trace$testnum --trace-time $cmd";
30283047 }
30293048 else {
30303049 $cmdargs = " $cmd"; # $cmd is the command line for the test file
30383057 }
30393058
30403059 if(! -f $CMDLINE) {
3041 print "The tool set in the test case for this: '$tool' does not exist\n";
3060 logmsg "The tool set in the test case for this: '$tool' does not exist\n";
30423061 timestampskippedevents($testnum);
30433062 return -1;
30443063 }
34283447 $ok .= "-"; # protocol not checked
34293448 }
34303449
3450 if(@proxyprot) {
3451 # Verify the sent proxy request
3452 my @out = loadarray($PROXYIN);
3453
3454 # what to cut off from the live protocol sent by curl, we use the
3455 # same rules as for <protocol>
3456 my @strip = getpart("verify", "strip");
3457
3458 my @protstrip=@proxyprot;
3459
3460 # check if there's any attributes on the verify/protocol section
3461 my %hash = getpartattr("verify", "proxy");
3462
3463 if($hash{'nonewline'}) {
3464 # Yes, we must cut off the final newline from the final line
3465 # of the protocol data
3466 chomp($protstrip[$#protstrip]);
3467 }
3468
3469 for(@strip) {
3470 # strip off all lines that match the patterns from both arrays
3471 chomp $_;
3472 @out = striparray( $_, \@out);
3473 @protstrip= striparray( $_, \@protstrip);
3474 }
3475
3476 # what parts to cut off from the protocol
3477 my @strippart = getpart("verify", "strippart");
3478 my $strip;
3479 for $strip (@strippart) {
3480 chomp $strip;
3481 for(@out) {
3482 eval $strip;
3483 }
3484 }
3485
3486 $res = compare("proxy", \@out, \@protstrip);
3487 if($res) {
3488 # timestamp test result verification end
3489 $timevrfyend{$testnum} = Time::HiRes::time() if($timestats);
3490 return 1;
3491 }
3492
3493 $ok .= "P";
3494
3495 }
3496 else {
3497 $ok .= "-"; # protocol not checked
3498 }
3499
34313500 my @outfile=getpart("verify", "file");
34323501 if(@outfile) {
34333502 # we're supposed to verify a dynamically generated file!
34923561 }
34933562 else {
34943563 if(!$short) {
3495 printf("\n%s returned $cmdres, when expecting %s\n",
3496 (!$tool)?"curl":$tool, $errorcode);
3564 logmsg sprintf("\n%s returned $cmdres, when expecting %s\n",
3565 (!$tool)?"curl":$tool, $errorcode);
34973566 }
34983567 logmsg " exit FAILED\n";
34993568 # timestamp test result verification end
35843653 my $left=sprintf("remaining: %02d:%02d",
35853654 $estleft/60,
35863655 $estleft%60);
3587 printf "OK (%-3d out of %-3d, %s)\n", $count, $total, $left;
3656 logmsg sprintf("OK (%-3d out of %-3d, %s)\n", $count, $total, $left);
35883657
35893658 # the test succeeded, remove all log files
35903659 if(!$keepoutfiles) {
36793748 }
36803749 }
36813750 elsif($what eq "ftp2") {
3682 if($torture && $run{'ftp2'} &&
3751 if($torture && $run{'ftp2'} &&
36833752 !responsive_pingpong_server("ftp", "2", $verbose)) {
36843753 stopserver('ftp2');
36853754 }
37183787 if($pid <= 0) {
37193788 return "failed starting GOPHER server";
37203789 }
3721 printf ("* pid gopher => %d %d\n", $pid, $pid2) if($verbose);
3790 logmsg sprintf ("* pid gopher => %d %d\n", $pid, $pid2)
3791 if($verbose);
37223792 $run{'gopher'}="$pid $pid2";
37233793 }
37243794 }
37503820 if($pid <= 0) {
37513821 return "failed starting HTTP server";
37523822 }
3753 printf ("* pid http => %d %d\n", $pid, $pid2) if($verbose);
3823 logmsg sprintf ("* pid http => %d %d\n", $pid, $pid2)
3824 if($verbose);
37543825 $run{'http'}="$pid $pid2";
3826 }
3827 }
3828 elsif($what eq "http-proxy") {
3829 if($torture && $run{'http-proxy'} &&
3830 !responsive_http_server("http", $verbose, "proxy",
3831 $HTTPPROXYPORT)) {
3832 stopserver('http-proxy');
3833 }
3834 if(!$run{'http-proxy'}) {
3835 ($pid, $pid2) = runhttpserver("http", $verbose, "proxy",
3836 $HTTPPROXYPORT);
3837 if($pid <= 0) {
3838 return "failed starting HTTP-proxy server";
3839 }
3840 logmsg sprintf ("* pid http-proxy => %d %d\n", $pid, $pid2)
3841 if($verbose);
3842 $run{'http-proxy'}="$pid $pid2";
37553843 }
37563844 }
37573845 elsif($what eq "http-ipv6") {
37603848 stopserver('http-ipv6');
37613849 }
37623850 if(!$run{'http-ipv6'}) {
3763 ($pid, $pid2) = runhttpserver("http", $verbose, "IPv6",
3851 ($pid, $pid2) = runhttpserver("http", $verbose, "ipv6",
37643852 $HTTP6PORT);
37653853 if($pid <= 0) {
37663854 return "failed starting HTTP-IPv6 server";
40214109 return "curl lacks $tlsext support";
40224110 }
40234111 else {
4024 return "curl lacks $server support";
4112 return "curl lacks $server server support";
40254113 }
40264114 }
40274115 }
44114499 $GOPHER6PORT = $base++; # Gopher IPv6 server port
44124500 $HTTPTLSPORT = $base++; # HTTP TLS (non-stunnel) server port
44134501 $HTTPTLS6PORT = $base++; # HTTP TLS (non-stunnel) IPv6 server port
4502 $HTTPPROXYPORT = $base++; # HTTP proxy port, when using CONNECT
44144503
44154504 #######################################################################
44164505 # clear and create logging directory:
45704659 if(($log =~ /^netrc\d+/) && ($log !~ /^netrc$testnum/)) {
45714660 next; # skip netrcNnn of other tests
45724661 }
4662 if(($log =~ /^trace\d+/) && ($log !~ /^trace$testnum/)) {
4663 next; # skip traceNnn of other tests
4664 }
45734665 if(($log =~ /^valgrind\d+/) && ($log !~ /^valgrind$testnum(\..*|)$/)) {
45744666 next; # skip valgrindNnn of other tests
45754667 }
5151 $(top_srcdir)/m4/curl-system.m4 $(top_srcdir)/m4/libtool.m4 \
5252 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
5353 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
54 $(top_srcdir)/m4/xc-translit.m4 $(top_srcdir)/acinclude.m4 \
54 $(top_srcdir)/m4/xc-translit.m4 \
55 $(top_srcdir)/m4/zz50-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \
5556 $(top_srcdir)/configure.ac
5657 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
5758 $(ACLOCAL_M4)
122123 sws-memdebug.$(OBJEXT)
123124 am__objects_18 = sws-util.$(OBJEXT)
124125 am_sws_OBJECTS = $(am__objects_16) $(am__objects_2) $(am__objects_17) \
125 $(am__objects_18) sws-sws.$(OBJEXT)
126 $(am__objects_18) sws-sws.$(OBJEXT) sws-inet_pton.$(OBJEXT)
126127 sws_OBJECTS = $(am_sws_OBJECTS)
127128 sws_DEPENDENCIES =
128129 am__objects_19 = tftpd-mprintf.$(OBJEXT) tftpd-nonblock.$(OBJEXT) \
287288 USE_EMBEDDED_ARES_FALSE = @USE_EMBEDDED_ARES_FALSE@
288289 USE_EMBEDDED_ARES_TRUE = @USE_EMBEDDED_ARES_TRUE@
289290 USE_GNUTLS = @USE_GNUTLS@
291 USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
290292 USE_LIBRTMP = @USE_LIBRTMP@
291293 USE_LIBSSH2 = @USE_LIBSSH2@
292294 USE_MANUAL_FALSE = @USE_MANUAL_FALSE@
297299 USE_SSLEAY = @USE_SSLEAY@
298300 USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
299301 VERSION = @VERSION@
302 VERSIONED_FLAVOUR = @VERSIONED_FLAVOUR@
303 VERSIONED_SYMBOLS_FALSE = @VERSIONED_SYMBOLS_FALSE@
304 VERSIONED_SYMBOLS_TRUE = @VERSIONED_SYMBOLS_TRUE@
300305 VERSIONNUM = @VERSIONNUM@
301306 ac_ct_AR = @ac_ct_AR@
302307 ac_ct_CC = @ac_ct_CC@
448453 sockfilt_CFLAGS = $(AM_CFLAGS)
449454 sws_SOURCES = $(CURLX_SRCS) $(CURLX_HDRS) $(USEFUL) $(UTIL) \
450455 server_sockaddr.h \
451 sws.c
456 sws.c \
457 $(top_srcdir)/lib/inet_pton.c
452458
453459 sws_LDADD = @TEST_SERVER_LIBS@
454460 sws_CFLAGS = $(AM_CFLAGS)
592598 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sockfilt-warnless.Po@am__quote@
593599 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sws-base64.Po@am__quote@
594600 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sws-getpart.Po@am__quote@
601 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sws-inet_pton.Po@am__quote@
595602 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sws-memdebug.Po@am__quote@
596603 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sws-mprintf.Po@am__quote@
597604 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sws-nonblock.Po@am__quote@
15571564 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sws.c' object='sws-sws.obj' libtool=no @AMDEPBACKSLASH@
15581565 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
15591566 @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sws_CFLAGS) $(CFLAGS) -c -o sws-sws.obj `if test -f 'sws.c'; then $(CYGPATH_W) 'sws.c'; else $(CYGPATH_W) '$(srcdir)/sws.c'; fi`
1567
1568 sws-inet_pton.o: $(top_srcdir)/lib/inet_pton.c
1569 @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sws_CFLAGS) $(CFLAGS) -MT sws-inet_pton.o -MD -MP -MF "$(DEPDIR)/sws-inet_pton.Tpo" -c -o sws-inet_pton.o `test -f '$(top_srcdir)/lib/inet_pton.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/inet_pton.c; \
1570 @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/sws-inet_pton.Tpo" "$(DEPDIR)/sws-inet_pton.Po"; else rm -f "$(DEPDIR)/sws-inet_pton.Tpo"; exit 1; fi
1571 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(top_srcdir)/lib/inet_pton.c' object='sws-inet_pton.o' libtool=no @AMDEPBACKSLASH@
1572 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1573 @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sws_CFLAGS) $(CFLAGS) -c -o sws-inet_pton.o `test -f '$(top_srcdir)/lib/inet_pton.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/inet_pton.c
1574
1575 sws-inet_pton.obj: $(top_srcdir)/lib/inet_pton.c
1576 @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sws_CFLAGS) $(CFLAGS) -MT sws-inet_pton.obj -MD -MP -MF "$(DEPDIR)/sws-inet_pton.Tpo" -c -o sws-inet_pton.obj `if test -f '$(top_srcdir)/lib/inet_pton.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/inet_pton.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/inet_pton.c'; fi`; \
1577 @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/sws-inet_pton.Tpo" "$(DEPDIR)/sws-inet_pton.Po"; else rm -f "$(DEPDIR)/sws-inet_pton.Tpo"; exit 1; fi
1578 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(top_srcdir)/lib/inet_pton.c' object='sws-inet_pton.obj' libtool=no @AMDEPBACKSLASH@
1579 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1580 @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sws_CFLAGS) $(CFLAGS) -c -o sws-inet_pton.obj `if test -f '$(top_srcdir)/lib/inet_pton.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/inet_pton.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/inet_pton.c'; fi`
15601581
15611582 tftpd-mprintf.o: $(top_srcdir)/lib/mprintf.c
15621583 @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tftpd_CFLAGS) $(CFLAGS) -MT tftpd-mprintf.o -MD -MP -MF "$(DEPDIR)/tftpd-mprintf.Tpo" -c -o tftpd-mprintf.o `test -f '$(top_srcdir)/lib/mprintf.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/mprintf.c; \
5252
5353 sws_SOURCES = $(CURLX_SRCS) $(CURLX_HDRS) $(USEFUL) $(UTIL) \
5454 server_sockaddr.h \
55 sws.c
55 sws.c \
56 $(top_srcdir)/lib/inet_pton.c
5657 sws_LDADD = @TEST_SERVER_LIBS@
5758 sws_CFLAGS = $(AM_CFLAGS)
5859
44 * | (__| |_| | _ <| |___
55 * \___|\___/|_| \_\_____|
66 *
7 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
7 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
88 *
99 * This software is licensed as described in the file COPYING, which
1010 * you should have received as part of this distribution. The terms
5757 versions instead */
5858 #include "curlx.h" /* from the private lib dir */
5959 #include "getpart.h"
60 #include "inet_pton.h"
6061 #include "util.h"
6162 #include "server_sockaddr.h"
6263
7879 static bool use_gopher = FALSE;
7980 static const char *ipv_inuse = "IPv4";
8081 static int serverlogslocked = 0;
82 static bool is_proxy = FALSE;
8183
8284 #define REQBUFSIZ 150000
8385 #define REQBUFSIZ_TXT "149999"
117119 int prot_version; /* HTTP version * 10 */
118120 bool pipelining; /* true if request is pipelined */
119121 int callcount; /* times ProcessRequest() gets called */
122 unsigned short connect_port; /* the port number CONNECT used */
120123 };
121124
122125 static int ProcessRequest(struct httprequest *req);
134137
135138 #define REQUEST_DUMP "log/server.input"
136139 #define RESPONSE_DUMP "log/server.response"
140
141 /* when told to run as proxy, we store the logs in different files so that
142 they can co-exist with the same program running as a "server" */
143 #define REQUEST_PROXY_DUMP "log/proxy.input"
144 #define RESPONSE_PROXY_DUMP "log/proxy.response"
137145
138146 /* very-big-path support */
139147 #define MAXDOCNAMELEN 140000
475483 else {
476484 if(sscanf(req->reqbuf, "CONNECT %" MAXDOCNAMELEN_TXT "s HTTP/%d.%d",
477485 doc, &prot_major, &prot_minor) == 3) {
486 char *portp = NULL;
487
478488 sprintf(logbuf, "Received a CONNECT %s HTTP/%d.%d request",
479489 doc, prot_major, prot_minor);
480490 logmsg("%s", logbuf);
482492 if(req->prot_version == 10)
483493 req->open = FALSE; /* HTTP 1.0 closes connection by default */
484494
495 if(doc[0] == '[') {
496 char *p = &doc[1];
497 while(*p && (ISXDIGIT(*p) || (*p == ':') || (*p == '.')))
498 p++;
499 if(*p != ']')
500 logmsg("Invalid CONNECT IPv6 address format");
501 else if (*(p+1) != ':')
502 logmsg("Invalid CONNECT IPv6 port format");
503 else
504 portp = p+1;
505 }
506 else
507 portp = strchr(doc, ':');
508
509 if(portp && (*(portp+1) != '\0') && ISDIGIT(*(portp+1))) {
510 unsigned long ulnum = strtoul(portp+1, NULL, 10);
511 if(!ulnum || (ulnum > 65535UL))
512 logmsg("Invalid CONNECT port received");
513 else
514 req->connect_port = curlx_ultous(ulnum);
515 }
516
485517 if(!strncmp(doc, "bad", 3))
486518 /* if the host name starts with bad, we fake an error here */
487519 req->testno = DOCNUMBER_BADCONNECT;
488 else if(!strncmp(doc, "test", 4)) {
520 else if(!strncmp(doc, "test", 4))
489521 /* if the host name starts with test, the port number used in the
490522 CONNECT line will be used as test number! */
491 char *portp = strchr(doc, ':');
492 if(portp && (*(portp+1) != '\0') && ISDIGIT(*(portp+1)))
493 req->testno = strtol(portp+1, NULL, 10);
494 else
495 req->testno = DOCNUMBER_CONNECT;
496 }
523 req->testno = req->connect_port?req->connect_port:DOCNUMBER_CONNECT;
497524 else
498 req->testno = DOCNUMBER_CONNECT;
525 req->testno = req->connect_port?DOCNUMBER_CONNECT:DOCNUMBER_BADCONNECT;
499526 }
500527 else {
501528 logmsg("Did not find test number in PATH");
706733 size_t written;
707734 size_t writeleft;
708735 FILE *dump;
736 const char *dumpfile=is_proxy?REQUEST_PROXY_DUMP:REQUEST_DUMP;
709737
710738 if (reqbuf == NULL)
711739 return;
713741 return;
714742
715743 do {
716 dump = fopen(REQUEST_DUMP, "ab");
744 dump = fopen(dumpfile, "ab");
717745 } while ((dump == NULL) && ((error = ERRNO) == EINTR));
718746 if (dump == NULL) {
719747 logmsg("Error opening file %s error: %d %s",
720 REQUEST_DUMP, error, strerror(error));
721 logmsg("Failed to write request input to " REQUEST_DUMP);
748 dumpfile, error, strerror(error));
749 logmsg("Failed to write request input ");
722750 return;
723751 }
724752
733761 } while ((writeleft > 0) && ((error = ERRNO) == EINTR));
734762
735763 if(writeleft == 0)
736 logmsg("Wrote request (%zu bytes) input to " REQUEST_DUMP, totalsize);
764 logmsg("Wrote request (%zu bytes) input to %s", totalsize, dumpfile);
737765 else if(writeleft > 0) {
738766 logmsg("Error writing file %s error: %d %s",
739 REQUEST_DUMP, error, strerror(error));
767 dumpfile, error, strerror(error));
740768 logmsg("Wrote only (%zu bytes) of (%zu bytes) request input to %s",
741 totalsize-writeleft, totalsize, REQUEST_DUMP);
769 totalsize-writeleft, totalsize, dumpfile);
742770 }
743771
744772 storerequest_cleanup:
748776 } while(res && ((error = ERRNO) == EINTR));
749777 if(res)
750778 logmsg("Error closing file %s error: %d %s",
751 REQUEST_DUMP, error, strerror(error));
779 dumpfile, error, strerror(error));
752780 }
753781
754782 /* return 0 on success, non-zero on failure */
787815 req->prot_version = 0;
788816 req->pipelining = FALSE;
789817 req->callcount = 0;
818 req->connect_port = 0;
790819
791820 /*** end of httprequest init ***/
792821
877906 size_t responsesize;
878907 int error = 0;
879908 int res;
880
909 const char *responsedump = is_proxy?RESPONSE_PROXY_DUMP:RESPONSE_DUMP;
881910 static char weare[256];
882911
883912 char partbuf[80]="data";
10251054 else
10261055 prevbounce = FALSE;
10271056
1028 dump = fopen(RESPONSE_DUMP, "ab");
1057 dump = fopen(responsedump, "ab");
10291058 if(!dump) {
10301059 error = ERRNO;
10311060 logmsg("fopen() failed with error: %d %s", error, strerror(error));
1032 logmsg("Error opening file: %s", RESPONSE_DUMP);
1033 logmsg("couldn't create logfile: " RESPONSE_DUMP);
1061 logmsg("Error opening file: %s", responsedump);
10341062 if(ptr)
10351063 free(ptr);
10361064 if(cmd)
10541082 else {
10551083 logmsg("Sent off %zd bytes", written);
10561084 }
1057 if (req->writedelay) {
1058 logmsg("Pausing %d seconds", req->writedelay);
1059 sleep(req->writedelay);
1060 }
10611085 /* write to file as well */
10621086 fwrite(buffer, 1, (size_t)written, dump);
1063 if(got_exit_signal)
1064 break;
10651087
10661088 count -= written;
10671089 buffer += written;
1068 } while(count>0);
1090
1091 if(req->writedelay) {
1092 int quarters = req->writedelay * 4;
1093 logmsg("Pausing %d seconds", req->writedelay);
1094 while((quarters > 0) && !got_exit_signal) {
1095 quarters--;
1096 wait_ms(250);
1097 }
1098 }
1099 } while((count > 0) && !got_exit_signal);
10691100
10701101 do {
10711102 res = fclose(dump);
10721103 } while(res && ((error = ERRNO) == EINTR));
10731104 if(res)
10741105 logmsg("Error closing file %s error: %d %s",
1075 RESPONSE_DUMP, error, strerror(error));
1106 responsedump, error, strerror(error));
10761107
10771108 if(got_exit_signal) {
10781109 if(ptr)
10921123 return -1;
10931124 }
10941125
1095 logmsg("Response sent (%zu bytes) and written to " RESPONSE_DUMP,
1096 responsesize);
1126 logmsg("Response sent (%zu bytes) and written to %s",
1127 responsesize, responsedump);
10971128
10981129 if(ptr)
10991130 free(ptr);
11081139 if(!strcmp("wait", command)) {
11091140 logmsg("Told to sleep for %d seconds", num);
11101141 quarters = num * 4;
1111 while(quarters > 0) {
1142 while((quarters > 0) && !got_exit_signal) {
11121143 quarters--;
11131144 res = wait_ms(250);
1114 if(got_exit_signal)
1115 break;
11161145 if(res) {
11171146 /* should not happen */
11181147 error = SOCKERRNO;
11451174 return 0;
11461175 }
11471176
1177 static curl_socket_t connect_to(const char *ipaddr, unsigned short port)
1178 {
1179 srvr_sockaddr_union_t serveraddr;
1180 curl_socket_t serverfd;
1181 int error;
1182 int rc;
1183 const char *op_br = "";
1184 const char *cl_br = "";
1185 #ifdef TCP_NODELAY
1186 curl_socklen_t flag;
1187 #endif
1188
1189 #ifdef ENABLE_IPV6
1190 if(use_ipv6) {
1191 op_br = "[";
1192 cl_br = "]";
1193 }
1194 #endif
1195
1196 if(!ipaddr)
1197 return CURL_SOCKET_BAD;
1198
1199 logmsg("about to connect to %s%s%s:%hu",
1200 op_br, ipaddr, cl_br, port);
1201
1202 #ifdef ENABLE_IPV6
1203 if(!use_ipv6)
1204 #endif
1205 serverfd = socket(AF_INET, SOCK_STREAM, 0);
1206 #ifdef ENABLE_IPV6
1207 else
1208 serverfd = socket(AF_INET6, SOCK_STREAM, 0);
1209 #endif
1210 if(CURL_SOCKET_BAD == serverfd) {
1211 error = SOCKERRNO;
1212 logmsg("Error creating socket for server conection: (%d) %s",
1213 error, strerror(error));
1214 return CURL_SOCKET_BAD;
1215 }
1216
1217 #ifdef TCP_NODELAY
1218 /* Disable the Nagle algorithm */
1219 flag = 1;
1220 if(0 != setsockopt(serverfd, IPPROTO_TCP, TCP_NODELAY,
1221 (void *)&flag, sizeof(flag)))
1222 logmsg("====> TCP_NODELAY for server conection failed");
1223 else
1224 logmsg("TCP_NODELAY set for server conection");
1225 #endif
1226
1227 #ifdef ENABLE_IPV6
1228 if(!use_ipv6) {
1229 #endif
1230 memset(&serveraddr.sa4, 0, sizeof(serveraddr.sa4));
1231 serveraddr.sa4.sin_family = AF_INET;
1232 serveraddr.sa4.sin_port = htons(port);
1233 if(Curl_inet_pton(AF_INET, ipaddr, &serveraddr.sa4.sin_addr) < 1) {
1234 logmsg("Error inet_pton failed AF_INET conversion of '%s'", ipaddr);
1235 sclose(serverfd);
1236 return CURL_SOCKET_BAD;
1237 }
1238
1239 rc = connect(serverfd, &serveraddr.sa, sizeof(serveraddr.sa4));
1240 #ifdef ENABLE_IPV6
1241 }
1242 else {
1243 memset(&serveraddr.sa6, 0, sizeof(serveraddr.sa6));
1244 serveraddr.sa6.sin6_family = AF_INET6;
1245 serveraddr.sa6.sin6_port = htons(port);
1246 if(Curl_inet_pton(AF_INET6, ipaddr, &serveraddr.sa6.sin6_addr) < 1) {
1247 logmsg("Error inet_pton failed AF_INET6 conversion of '%s'", ipaddr);
1248 sclose(serverfd);
1249 return CURL_SOCKET_BAD;
1250 }
1251
1252 rc = connect(serverfd, &serveraddr.sa, sizeof(serveraddr.sa6));
1253 }
1254 #endif /* ENABLE_IPV6 */
1255
1256 if(got_exit_signal) {
1257 sclose(serverfd);
1258 return CURL_SOCKET_BAD;
1259 }
1260
1261 if(rc) {
1262 error = SOCKERRNO;
1263 logmsg("Error connecting to server port %hu: (%d) %s",
1264 port, error, strerror(error));
1265 sclose(serverfd);
1266 return CURL_SOCKET_BAD;
1267 }
1268
1269 logmsg("connected fine to %s%s%s:%hu, now tunnel",
1270 op_br, ipaddr, cl_br, port);
1271
1272 return serverfd;
1273 }
1274
1275 /*
1276 * A CONNECT has been received, a CONNECT response has been sent.
1277 *
1278 * This function needs to connect to the server, and then pass data between
1279 * the client and the server back and forth until the connection is closed by
1280 * either end.
1281 *
1282 * When doing FTP through a CONNECT proxy, we expect that the data connection
1283 * will be setup while the first connect is still being kept up. Therefor we
1284 * must accept a new connection and deal with it appropriately.
1285 */
1286
1287 #define data_or_ctrl(x) ((x)?"DATA":"CTRL")
1288
1289 #define CTRL 0
1290 #define DATA 1
1291
1292 static void http_connect(curl_socket_t *infdp,
1293 curl_socket_t rootfd,
1294 struct httprequest *req,
1295 const char *ipaddr)
1296 {
1297 curl_socket_t serverfd[2] = {CURL_SOCKET_BAD, CURL_SOCKET_BAD};
1298 curl_socket_t clientfd[2] = {CURL_SOCKET_BAD, CURL_SOCKET_BAD};
1299 ssize_t toc[2] = {0, 0}; /* number of bytes to client */
1300 ssize_t tos[2] = {0, 0}; /* number of bytes to server */
1301 char readclient[2][256];
1302 char readserver[2][256];
1303 bool poll_client_rd[2] = { TRUE, TRUE };
1304 bool poll_server_rd[2] = { TRUE, TRUE };
1305 bool poll_client_wr[2] = { TRUE, TRUE };
1306 bool poll_server_wr[2] = { TRUE, TRUE };
1307 #ifdef TCP_NODELAY
1308 curl_socklen_t flag;
1309 #endif
1310 bool primary = FALSE;
1311 bool secondary = FALSE;
1312 int max_tunnel_idx; /* CTRL or DATA */
1313 int loop;
1314 int i;
1315
1316 /* primary tunnel client endpoint already connected */
1317 clientfd[CTRL] = *infdp;
1318
1319 /* Sleep here to make sure the client reads CONNECT response's
1320 'end of headers' separate from the server data that follows.
1321 This is done to prevent triggering libcurl known bug #39. */
1322 for(loop = 2; (loop > 0) && !got_exit_signal; loop--)
1323 wait_ms(250);
1324 if(got_exit_signal)
1325 goto http_connect_cleanup;
1326
1327 serverfd[CTRL] = connect_to(ipaddr, req->connect_port);
1328 if(serverfd[CTRL] == CURL_SOCKET_BAD)
1329 goto http_connect_cleanup;
1330
1331 /* Primary tunnel socket endpoints are now connected. Tunnel data back and
1332 forth over the primary tunnel until client or server breaks the primary
1333 tunnel, simultaneously allowing establishment, operation and teardown of
1334 a secondary tunnel that may be used for passive FTP data connection. */
1335
1336 max_tunnel_idx = CTRL;
1337 primary = TRUE;
1338
1339 while(!got_exit_signal) {
1340
1341 fd_set input;
1342 fd_set output;
1343 struct timeval timeout = {0, 250000L}; /* 250 ms */
1344 ssize_t rc;
1345 curl_socket_t maxfd = (curl_socket_t)-1;
1346
1347 FD_ZERO(&input);
1348 FD_ZERO(&output);
1349
1350 if((clientfd[DATA] == CURL_SOCKET_BAD) &&
1351 (serverfd[DATA] == CURL_SOCKET_BAD) &&
1352 poll_client_rd[CTRL] && poll_client_wr[CTRL] &&
1353 poll_server_rd[CTRL] && poll_server_wr[CTRL]) {
1354 /* listener socket is monitored to allow client to establish
1355 secondary tunnel only when this tunnel is not established
1356 and primary one is fully operational */
1357 FD_SET(rootfd, &input);
1358 maxfd = rootfd;
1359 }
1360
1361 /* set tunnel sockets to wait for */
1362 for(i = 0; i <= max_tunnel_idx; i++) {
1363 /* client side socket monitoring */
1364 if(clientfd[i] != CURL_SOCKET_BAD) {
1365 if(poll_client_rd[i]) {
1366 /* unless told not to do so, monitor readability */
1367 FD_SET(clientfd[i], &input);
1368 if(clientfd[i] > maxfd)
1369 maxfd = clientfd[i];
1370 }
1371 if(poll_client_wr[i] && toc[i]) {
1372 /* unless told not to do so, monitor writeability
1373 if there is data ready to be sent to client */
1374 FD_SET(clientfd[i], &output);
1375 if(clientfd[i] > maxfd)
1376 maxfd = clientfd[i];
1377 }
1378 }
1379 /* server side socket monitoring */
1380 if(serverfd[i] != CURL_SOCKET_BAD) {
1381 if(poll_server_rd[i]) {
1382 /* unless told not to do so, monitor readability */
1383 FD_SET(serverfd[i], &input);
1384 if(serverfd[i] > maxfd)
1385 maxfd = serverfd[i];
1386 }
1387 if(poll_server_wr[i] && tos[i]) {
1388 /* unless told not to do so, monitor writeability
1389 if there is data ready to be sent to server */
1390 FD_SET(serverfd[i], &output);
1391 if(serverfd[i] > maxfd)
1392 maxfd = serverfd[i];
1393 }
1394 }
1395 }
1396 if(got_exit_signal)
1397 break;
1398
1399 rc = select((int)maxfd + 1, &input, &output, NULL, &timeout);
1400
1401 if(rc > 0) {
1402 /* socket action */
1403 bool tcp_fin_wr;
1404
1405 if(got_exit_signal)
1406 break;
1407
1408 tcp_fin_wr = FALSE;
1409
1410 /* ---------------------------------------------------------- */
1411
1412 /* passive mode FTP may establish a secondary tunnel */
1413 if((clientfd[DATA] == CURL_SOCKET_BAD) &&
1414 (serverfd[DATA] == CURL_SOCKET_BAD) && FD_ISSET(rootfd, &input)) {
1415 /* a new connection on listener socket (most likely from client) */
1416 curl_socket_t datafd = accept(rootfd, NULL, NULL);
1417 if(datafd != CURL_SOCKET_BAD) {
1418 struct httprequest req2;
1419 int err;
1420 logmsg("====> Client connect DATA");
1421 #ifdef TCP_NODELAY
1422 /* Disable the Nagle algorithm */
1423 flag = 1;
1424 if(0 != setsockopt(datafd, IPPROTO_TCP, TCP_NODELAY,
1425 (void *)&flag, sizeof(flag)))
1426 logmsg("====> TCP_NODELAY for client DATA conection failed");
1427 else
1428 logmsg("TCP_NODELAY set for client DATA conection");
1429 #endif
1430 req2.pipelining = FALSE;
1431 err = get_request(datafd, &req2);
1432 if(!err) {
1433 err = send_doc(datafd, &req2);
1434 if(!err && (req2.testno == DOCNUMBER_CONNECT)) {
1435 /* sleep to prevent triggering libcurl known bug #39. */
1436 for(loop = 2; (loop > 0) && !got_exit_signal; loop--)
1437 wait_ms(250);
1438 if(!got_exit_signal) {
1439 /* connect to the server */
1440 serverfd[DATA] = connect_to(ipaddr, req2.connect_port);
1441 if(serverfd[DATA] != CURL_SOCKET_BAD) {
1442 /* secondary tunnel established, now we have two connections */
1443 poll_client_rd[DATA] = TRUE;
1444 poll_client_wr[DATA] = TRUE;
1445 poll_server_rd[DATA] = TRUE;
1446 poll_server_wr[DATA] = TRUE;
1447 max_tunnel_idx = DATA;
1448 secondary = TRUE;
1449 toc[DATA] = 0;
1450 tos[DATA] = 0;
1451 clientfd[DATA] = datafd;
1452 datafd = CURL_SOCKET_BAD;
1453 }
1454 }
1455 }
1456 }
1457 if(datafd != CURL_SOCKET_BAD) {
1458 /* secondary tunnel not established */
1459 shutdown(datafd, SHUT_RDWR);
1460 sclose(datafd);
1461 }
1462 }
1463 if(got_exit_signal)
1464 break;
1465 }
1466
1467 /* ---------------------------------------------------------- */
1468
1469 /* react to tunnel endpoint readable/writeable notifications */
1470 for(i = 0; i <= max_tunnel_idx; i++) {
1471 size_t len;
1472 if(clientfd[i] != CURL_SOCKET_BAD) {
1473 len = sizeof(readclient[i]) - tos[i];
1474 if(len && FD_ISSET(clientfd[i], &input)) {
1475 /* read from client */
1476 rc = sread(clientfd[i], &readclient[i][tos[i]], len);
1477 if(rc <= 0) {
1478 logmsg("[%s] got %zd, STOP READING client", data_or_ctrl(i), rc);
1479 shutdown(clientfd[i], SHUT_RD);
1480 poll_client_rd[i] = FALSE;
1481 }
1482 else {
1483 logmsg("[%s] READ %zd bytes from client", data_or_ctrl(i), rc);
1484 logmsg("[%s] READ \"%s\"", data_or_ctrl(i),
1485 data_to_hex(&readclient[i][tos[i]], rc));
1486 tos[i] += rc;
1487 }
1488 }
1489 }
1490 if(serverfd[i] != CURL_SOCKET_BAD) {
1491 len = sizeof(readserver[i])-toc[i];
1492 if(len && FD_ISSET(serverfd[i], &input)) {
1493 /* read from server */
1494 rc = sread(serverfd[i], &readserver[i][toc[i]], len);
1495 if(rc <= 0) {
1496 logmsg("[%s] got %zd, STOP READING server", data_or_ctrl(i), rc);
1497 shutdown(serverfd[i], SHUT_RD);
1498 poll_server_rd[i] = FALSE;
1499 }
1500 else {
1501 logmsg("[%s] READ %zd bytes from server", data_or_ctrl(i), rc);
1502 logmsg("[%s] READ \"%s\"", data_or_ctrl(i),
1503 data_to_hex(&readserver[i][toc[i]], rc));
1504 toc[i] += rc;
1505 }
1506 }
1507 }
1508 if(clientfd[i] != CURL_SOCKET_BAD) {
1509 if(toc[i] && FD_ISSET(clientfd[i], &output)) {
1510 /* write to client */
1511 rc = swrite(clientfd[i], readserver[i], toc[i]);
1512 if(rc <= 0) {
1513 logmsg("[%s] got %zd, STOP WRITING client", data_or_ctrl(i), rc);
1514 shutdown(clientfd[i], SHUT_WR);
1515 poll_client_wr[i] = FALSE;
1516 tcp_fin_wr = TRUE;
1517 }
1518 else {
1519 logmsg("[%s] SENT %zd bytes to client", data_or_ctrl(i), rc);
1520 logmsg("[%s] SENT \"%s\"", data_or_ctrl(i),
1521 data_to_hex(readserver[i], rc));
1522 if(toc[i] - rc)
1523 memmove(&readserver[i][0], &readserver[i][rc], toc[i]-rc);
1524 toc[i] -= rc;
1525 }
1526 }
1527 }
1528 if(serverfd[i] != CURL_SOCKET_BAD) {
1529 if(tos[i] && FD_ISSET(serverfd[i], &output)) {
1530 /* write to server */
1531 rc = swrite(serverfd[i], readclient[i], tos[i]);
1532 if(rc <= 0) {
1533 logmsg("[%s] got %zd, STOP WRITING server", data_or_ctrl(i), rc);
1534 shutdown(serverfd[i], SHUT_WR);
1535 poll_server_wr[i] = FALSE;
1536 tcp_fin_wr = TRUE;
1537 }
1538 else {
1539 logmsg("[%s] SENT %zd bytes to server", data_or_ctrl(i), rc);
1540 logmsg("[%s] SENT \"%s\"", data_or_ctrl(i),
1541 data_to_hex(readclient[i], rc));
1542 if(tos[i] - rc)
1543 memmove(&readclient[i][0], &readclient[i][rc], tos[i]-rc);
1544 tos[i] -= rc;
1545 }
1546 }
1547 }
1548 }
1549 if(got_exit_signal)
1550 break;
1551
1552 /* ---------------------------------------------------------- */
1553
1554 /* endpoint read/write disabling, endpoint closing and tunnel teardown */
1555 for(i = 0; i <= max_tunnel_idx; i++) {
1556 for(loop = 2; loop > 0; loop--) {
1557 /* loop twice to satisfy condition interdependencies without
1558 having to await select timeout or another socket event */
1559 if(clientfd[i] != CURL_SOCKET_BAD) {
1560 if(poll_client_rd[i] && !poll_server_wr[i]) {
1561 logmsg("[%s] DISABLED READING client", data_or_ctrl(i));
1562 shutdown(clientfd[i], SHUT_RD);
1563 poll_client_rd[i] = FALSE;
1564 }
1565 if(poll_client_wr[i] && !poll_server_rd[i] && !toc[i]) {
1566 logmsg("[%s] DISABLED WRITING client", data_or_ctrl(i));
1567 shutdown(clientfd[i], SHUT_WR);
1568 poll_client_wr[i] = FALSE;
1569 tcp_fin_wr = TRUE;
1570 }
1571 }
1572 if(serverfd[i] != CURL_SOCKET_BAD) {
1573 if(poll_server_rd[i] && !poll_client_wr[i]) {
1574 logmsg("[%s] DISABLED READING server", data_or_ctrl(i));
1575 shutdown(serverfd[i], SHUT_RD);
1576 poll_server_rd[i] = FALSE;
1577 }
1578 if(poll_server_wr[i] && !poll_client_rd[i] && !tos[i]) {
1579 logmsg("[%s] DISABLED WRITING server", data_or_ctrl(i));
1580 shutdown(serverfd[i], SHUT_WR);
1581 poll_server_wr[i] = FALSE;
1582 tcp_fin_wr = TRUE;
1583 }
1584 }
1585 }
1586 }
1587
1588 if(tcp_fin_wr)
1589 /* allow kernel to place FIN bit packet on the wire */
1590 wait_ms(250);
1591
1592 /* socket clearing */
1593 for(i = 0; i <= max_tunnel_idx; i++) {
1594 for(loop = 2; loop > 0; loop--) {
1595 if(clientfd[i] != CURL_SOCKET_BAD) {
1596 if(!poll_client_wr[i] && !poll_client_rd[i]) {
1597 logmsg("[%s] CLOSING client socket", data_or_ctrl(i));
1598 sclose(clientfd[i]);
1599 clientfd[i] = CURL_SOCKET_BAD;
1600 if(serverfd[i] == CURL_SOCKET_BAD) {
1601 logmsg("[%s] ENDING", data_or_ctrl(i));
1602 if(i == DATA)
1603 secondary = FALSE;
1604 else
1605 primary = FALSE;
1606 }
1607 }
1608 }
1609 if(serverfd[i] != CURL_SOCKET_BAD) {
1610 if(!poll_server_wr[i] && !poll_server_rd[i]) {
1611 logmsg("[%s] CLOSING server socket", data_or_ctrl(i));
1612 sclose(serverfd[i]);
1613 serverfd[i] = CURL_SOCKET_BAD;
1614 if(clientfd[i] == CURL_SOCKET_BAD) {
1615 logmsg("[%s] ENDING", data_or_ctrl(i));
1616 if(i == DATA)
1617 secondary = FALSE;
1618 else
1619 primary = FALSE;
1620 }
1621 }
1622 }
1623 }
1624 }
1625
1626 /* ---------------------------------------------------------- */
1627
1628 max_tunnel_idx = secondary ? DATA : CTRL;
1629
1630 if(!primary)
1631 /* exit loop upon primary tunnel teardown */
1632 break;
1633
1634 } /* (rc > 0) */
1635
1636 }
1637
1638 http_connect_cleanup:
1639
1640 for(i = DATA; i >= CTRL; i--) {
1641 if(serverfd[i] != CURL_SOCKET_BAD) {
1642 logmsg("[%s] CLOSING server socket (cleanup)", data_or_ctrl(i));
1643 shutdown(serverfd[i], SHUT_RDWR);
1644 sclose(serverfd[i]);
1645 }
1646 if(clientfd[i] != CURL_SOCKET_BAD) {
1647 logmsg("[%s] CLOSING client socket (cleanup)", data_or_ctrl(i));
1648 shutdown(clientfd[i], SHUT_RDWR);
1649 sclose(clientfd[i]);
1650 }
1651 if((serverfd[i] != CURL_SOCKET_BAD) ||
1652 (clientfd[i] != CURL_SOCKET_BAD)) {
1653 logmsg("[%s] ABORTING", data_or_ctrl(i));
1654 }
1655 }
1656
1657 *infdp = CURL_SOCKET_BAD;
1658 }
11481659
11491660 int main(int argc, char *argv[])
11501661 {
11601671 int error;
11611672 int arg=1;
11621673 long pid;
1674 const char *hostport = "127.0.0.1";
11631675 #ifdef CURL_SWS_FORK_ENABLED
11641676 bool use_fork = FALSE;
11651677 #endif
12371749 arg++;
12381750 }
12391751 }
1752 else if(!strcmp("--connect", argv[arg])) {
1753 /* store the connect host, but also use this as a hint that we
1754 run as a proxy and do a few different internal choices */
1755 arg++;
1756 if(argc>arg) {
1757 hostport = argv[arg];
1758 arg++;
1759 is_proxy = TRUE;
1760 logmsg("Run as proxy, CONNECT to %s", hostport);
1761 }
1762 }
12401763 else {
12411764 puts("Usage: sws [option]\n"
12421765 " --version\n"
12461769 " --ipv6\n"
12471770 " --port [port]\n"
12481771 " --srcdir [path]\n"
1772 " --connect [ip4-addr]\n"
12491773 " --gopher\n"
12501774 " --fork");
12511775 return 0;
12781802 }
12791803
12801804 flag = 1;
1281 if (0 != setsockopt(sock, SOL_SOCKET, SO_REUSEADDR,
1282 (void *)&flag, sizeof(flag))) {
1805 if(0 != setsockopt(sock, SOL_SOCKET, SO_REUSEADDR,
1806 (void *)&flag, sizeof(flag))) {
12831807 error = SOCKERRNO;
12841808 logmsg("setsockopt(SO_REUSEADDR) failed with error: (%d) %s",
12851809 error, strerror(error));
13781902 * response in many small segments to torture the clients more.
13791903 */
13801904 flag = 1;
1381 if (setsockopt(msgsock, IPPROTO_TCP, TCP_NODELAY,
1382 (void *)&flag, sizeof(flag)) == -1) {
1905 if(0 != setsockopt(msgsock, IPPROTO_TCP, TCP_NODELAY,
1906 (void *)&flag, sizeof(flag)))
13831907 logmsg("====> TCP_NODELAY failed");
1384 }
1908 else
1909 logmsg("TCP_NODELAY set");
13851910 #endif
13861911
13871912 /* initialization of httprequest struct is done in get_request(), but due
14161941 if(got_exit_signal)
14171942 break;
14181943
1944 if(DOCNUMBER_CONNECT == req.testno) {
1945 /* a CONNECT request, setup and talk the tunnel */
1946 http_connect(&msgsock, sock, &req, hostport);
1947 break;
1948 }
1949
14191950 if((req.testno < 0) && (req.testno != DOCNUMBER_CONNECT)) {
14201951 logmsg("special request received, no persistency");
14211952 break;
14471978 a single byte of server-reply. */
14481979 wait_ms(50);
14491980
1450 sclose(msgsock);
1451 msgsock = CURL_SOCKET_BAD;
1981 if(msgsock != CURL_SOCKET_BAD) {
1982 sclose(msgsock);
1983 msgsock = CURL_SOCKET_BAD;
1984 }
14521985
14531986 if(serverlogslocked) {
14541987 serverlogslocked = 0;
44 * | (__| |_| | _ <| |___
55 * \___|\___/|_| \_\_____|
66 *
7 * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
7 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
88 *
99 * This software is licensed as described in the file COPYING, which
1010 * you should have received as part of this distribution. The terms
5959 #if defined(ENABLE_IPV6) && defined(__MINGW32__)
6060 const struct in6_addr in6addr_any = {{ IN6ADDR_ANY_INIT }};
6161 #endif
62
63 /* This function returns a pointer to STATIC memory. It converts the given
64 * binary lump to a hex formatted string usable for output in logs or
65 * whatever.
66 */
67 char *data_to_hex(char *data, size_t len)
68 {
69 static char buf[256*3];
70 size_t i;
71 char *optr = buf;
72 char *iptr = data;
73
74 if(len > 255)
75 len = 255;
76
77 for(i=0; i < len; i++) {
78 if((data[i] >= 0x20) && (data[i] < 0x7f))
79 *optr++ = *iptr++;
80 else {
81 sprintf(optr, "%%%02x", *iptr++);
82 optr+=3;
83 }
84 }
85 *optr=0; /* in case no sprintf() was used */
86
87 return buf;
88 }
6289
6390 void logmsg(const char *msg, ...)
6491 {
66 * | (__| |_| | _ <| |___
77 * \___|\___/|_| \_\_____|
88 *
9 * Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al.
9 * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
1010 *
1111 * This software is licensed as described in the file COPYING, which
1212 * you should have received as part of this distribution. The terms
2121 *
2222 ***************************************************************************/
2323
24 char *data_to_hex(char *data, size_t len);
2425 void logmsg(const char *msg, ...);
2526
2627 #define TEST_DATA_PATH "%s/data/test%ld"
109109 # *_LAST and *_LASTENTRY are just prefix for the placeholders used for the
110110 # last entry in many enum series.
111111 #
112
112
113113 if($e =~ /(OBSOLETE|^CURL_EXTERN|_LAST\z|_LASTENTRY\z)/) {
114114 $ignored++;
115115 next;
158158 scalar(@syms)- $ignored;
159159 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);
160160 printf "%d symbols in symbols-in-versions should match the ones in headers\n", scalar(keys %doc) - scalar(keys %rem);
161
162161 }
163162
164163 if($misses) {
7272 $timestamp $notes);
7373
7474 # version of this script
75 $version='2011-06-23';
75 $version='2011-12-27';
7676 $fixed=0;
7777
7878 # Determine if we're running from git or a canned copy of curl,
337337 logit "LDFLAGS = ".$ENV{LDFLAGS};
338338 logit "CC = ".$ENV{CC};
339339 logit "MAKEFLAGS = ".$ENV{MAKEFLAGS};
340 logit "ACLOCAL_FLAGS = ".$ENV{ACLOCAL_FLAGS};
340341 logit "PKG_CONFIG_PATH = ".$ENV{PKG_CONFIG_PATH};
341342 logit "target = ".$targetos;
342343 logit "version = $version"; # script version
430431 unlink "autom4te.cache";
431432
432433 # generate the build files
433 logit "invoke buildconf, but filter off aclocal underquoted definition warnings";
434 logit "invoke buildconf";
434435 open(F, "./buildconf 2>&1 |") or die;
435436 open(LOG, ">$buildlog") or die;
436437 while (<F>) {
437 next if /warning: underquoted definition of/;
438 print;
439 print LOG;
438 my $ll = $_;
439 # ignore messages pertaining to third party m4 files we don't care
440 next if ($ll =~ /aclocal\/gtk\.m4/);
441 next if ($ll =~ /aclocal\/gtkextra\.m4/);
442 print $ll;
443 print LOG $ll;
440444 }
441445 close(F);
442446 close(LOG);
5151 $(top_srcdir)/m4/curl-system.m4 $(top_srcdir)/m4/libtool.m4 \
5252 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
5353 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
54 $(top_srcdir)/m4/xc-translit.m4 $(top_srcdir)/acinclude.m4 \
54 $(top_srcdir)/m4/xc-translit.m4 \
55 $(top_srcdir)/m4/zz50-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \
5556 $(top_srcdir)/configure.ac
5657 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
5758 $(ACLOCAL_M4)
254255 USE_EMBEDDED_ARES_FALSE = @USE_EMBEDDED_ARES_FALSE@
255256 USE_EMBEDDED_ARES_TRUE = @USE_EMBEDDED_ARES_TRUE@
256257 USE_GNUTLS = @USE_GNUTLS@
258 USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
257259 USE_LIBRTMP = @USE_LIBRTMP@
258260 USE_LIBSSH2 = @USE_LIBSSH2@
259261 USE_MANUAL_FALSE = @USE_MANUAL_FALSE@
264266 USE_SSLEAY = @USE_SSLEAY@
265267 USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
266268 VERSION = @VERSION@
269 VERSIONED_FLAVOUR = @VERSIONED_FLAVOUR@
270 VERSIONED_SYMBOLS_FALSE = @VERSIONED_SYMBOLS_FALSE@
271 VERSIONED_SYMBOLS_TRUE = @VERSIONED_SYMBOLS_TRUE@
267272 VERSIONNUM = @VERSIONNUM@
268273 ac_ct_AR = @ac_ct_AR@
269274 ac_ct_CC = @ac_ct_CC@
6161
6262 fail_unless( size == 0 , "initial size should be zero" );
6363 fail_if( head == NULL , "head should not be initiated to NULL" );
64
64
6565 /* you end the test code like this: */
66
66
6767 UNITTEST_STOP
6868
6969 ----------------------- end -------------------------------
2323 !MESSAGE WITH_ZLIB=<dll or static> - Enable ZLib support, DLL or static
2424 !MESSAGE WITH_SSH2=<dll or static> - Enable LIbSSH2 support, DLL or static
2525 !MESSAGE USE_SSSPI=<yes or no> - Enable SSPI support, default to yes
26 !MESSAGE USE_IPV6=<yes or no> - Enable IPV6, default to yes
26 !MESSAGE ENABLE_IPV6=<yes or no> - Enable IPV6, default to yes
2727 !MESSAGE DEBUG=<yes or no> - Debug builds
28 !MESSAGE USE_IDN=<yes or no> - Wheter or not to use IDN Windows APIs. Requires Windows Vista or later.
28 !MESSAGE ENABLE_IDN=<yes or no> - Wheter or not to use IDN Windows APIs. Requires Windows Vista or later.
2929 !MESSAGE or to install http://www.microsoft.com/downloads/details.aspx?FamilyID=AD6158D7-DDBA-416A-9109-07607425A815
3030 !MESSAGE GEN_PDB=<yes or no> - Generate Program Database (debug symbols release build)
3131 !ERROR please choose a valid mode
4848 USE_SSPI=true
4949 !ENDIF
5050
51 !IFNDEF USE_IPV6
52 USE_IPV6=true
51 !IFNDEF ENABLE_IPV6
52 USE_IPV6 =true
53 !ELSEIF "$(ENABLE_IPV6)"=="yes"
54 USE_IPV6 =true
5355 !ENDIF
5456
55 !IFNDEF USE_IDN
57 !IFNDEF ENABLE_IDN
5658 USE_IDN=true
5759 !ENDIF
5860
44 # | (__| |_| | _ <| |___
55 # \___|\___/|_| \_\_____|
66 #
7 # Copyright (C) 1999 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
7 # Copyright (C) 1999 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
88 #
99 # This software is licensed as described in the file COPYING, which
1010 # you should have received as part of this distribution. The terms
9898 USE_SSL = true
9999 SSL=dll
100100 !ELSEIF "$(WITH_SSL)"=="static"
101 SSL_LIBS = libeay32.lib ssleay32.lib
101 SSL_LIBS = libeay32.lib ssleay32.lib gdi32.lib user32.lib advapi32.lib
102102 USE_SSL = true
103 SSL=dll
103 SSL=static
104104 !ENDIF
105105
106106 !IFDEF USE_SSL