From b5c6d190422e4ea982b437fb037d4f50a0f0594c Mon Sep 17 00:00:00 2001 From: "muhua.gmh" Date: Sat, 20 Feb 2016 19:57:47 +0800 Subject: [PATCH 001/125] Fixed multithread problem the boost::spirit grammar object is not thread safe without -DBOOST_SPIRIT_THREADSAFE see https://groups.google.com/forum/#!topic/cpp-netlib/yqa5Qtpc1j4 --- libs/network/src/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/libs/network/src/CMakeLists.txt b/libs/network/src/CMakeLists.txt index 398cc8e8d..7d92cb69c 100644 --- a/libs/network/src/CMakeLists.txt +++ b/libs/network/src/CMakeLists.txt @@ -12,6 +12,7 @@ file(GLOB_RECURSE CPP-NETLIB_HEADERS "${CPP-NETLIB_SOURCE_DIR}/boost/" "*.hpp") set(CPP-NETLIB_URI_SRCS uri/uri.cpp uri/schemes.cpp) +add_definitions("-DBOOST_SPIRIT_THREADSAFE") add_library(cppnetlib-uri ${CPP-NETLIB_URI_SRCS}) set_target_properties(cppnetlib-uri PROPERTIES VERSION ${CPPNETLIB_VERSION_STRING} From 8d53ad693d2c64613c273e19e04f770fb0cf2ba6 Mon Sep 17 00:00:00 2001 From: Glyn Matthews Date: Wed, 24 Feb 2016 23:26:07 +0100 Subject: [PATCH 002/125] Added a code of conduct. --- code_of_conduct.md | 74 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 code_of_conduct.md diff --git a/code_of_conduct.md b/code_of_conduct.md new file mode 100644 index 000000000..d05f4bc06 --- /dev/null +++ b/code_of_conduct.md @@ -0,0 +1,74 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, gender identity and expression, level of experience, +nationality, personal appearance, race, religion, or sexual identity and +orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or +advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at [INSERT EMAIL ADDRESS]. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at [http://contributor-covenant.org/version/1/4][version] + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/4/ From 1733e53180dee20598deb7432657ff75fae37657 Mon Sep 17 00:00:00 2001 From: Glyn Matthews Date: Thu, 25 Feb 2016 08:03:47 +0100 Subject: [PATCH 003/125] Added e-mail addresses in Enforcement paragraph. --- code_of_conduct.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/code_of_conduct.md b/code_of_conduct.md index d05f4bc06..4d7d588c8 100644 --- a/code_of_conduct.md +++ b/code_of_conduct.md @@ -54,12 +54,14 @@ further defined and clarified by project maintainers. ## Enforcement -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting the project team at [INSERT EMAIL ADDRESS]. All -complaints will be reviewed and investigated and will result in a response that -is deemed necessary and appropriate to the circumstances. The project team is -obligated to maintain confidentiality with regard to the reporter of an incident. -Further details of specific enforcement policies may be posted separately. +Instances of abusive, harassing, or otherwise unacceptable behavior +may be reported by contacting the project team at +glyn.matthews@gmail.com or dberris@google.com. All complaints will be +reviewed and investigated and will result in a response that is deemed +necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of +an incident. Further details of specific enforcement policies may be +posted separately. Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other From 20b4a5e1e5fd27415577e3cc6debbe2bb6128279 Mon Sep 17 00:00:00 2001 From: Chris Kaminski Date: Mon, 29 Feb 2016 10:50:51 -0500 Subject: [PATCH 004/125] * Added ssl_server example to CMakefiles * Updated ssl_server DH key to reflect current (2016) browser security requirements --- libs/network/example/CMakeLists.txt | 24 +++++++++++++++++++- libs/network/example/http/ssl/dh2048.pem | 8 +++++++ libs/network/example/http/ssl/dh512.pem | 12 ---------- libs/network/example/http/ssl/ssl_server.cpp | 4 ++-- 4 files changed, 33 insertions(+), 15 deletions(-) create mode 100644 libs/network/example/http/ssl/dh2048.pem delete mode 100644 libs/network/example/http/ssl/dh512.pem diff --git a/libs/network/example/CMakeLists.txt b/libs/network/example/CMakeLists.txt index f716369a6..99890d211 100644 --- a/libs/network/example/CMakeLists.txt +++ b/libs/network/example/CMakeLists.txt @@ -17,6 +17,10 @@ add_executable(hello_world_server http/hello_world_server.cpp) add_executable(hello_world_client http/hello_world_client.cpp) add_executable(hello_world_async_server_with_work_queue http/hello_world_async_server_with_work_queue.cpp) add_executable(trivial_google trivial_google.cpp) +if (OPENSSL_FOUND) + add_executable(ssl_server http/ssl/ssl_server.cpp) +endif (OPENSSL_FOUND) + if (UNIX) add_executable(fileserver http/fileserver.cpp) endif (UNIX) @@ -24,6 +28,7 @@ add_dependencies(http_client cppnetlib-uri cppnetlib-client-connections) add_dependencies(simple_wget cppnetlib-uri cppnetlib-client-connections) add_dependencies(atom_reader cppnetlib-uri cppnetlib-client-connections) add_dependencies(rss_reader cppnetlib-uri cppnetlib-client-connections) +add_dependencies(ssl_server cppnetlib-uri cppnetlib-client-connections) add_dependencies(trivial_google cppnetlib-uri cppnetlib-client-connections) target_link_libraries(http_client @@ -66,6 +71,15 @@ target_link_libraries(hello_world_async_server_with_work_queue cppnetlib-client-connections cppnetlib-server-parsers) +if (OPENSSL_FOUND) + target_link_libraries(ssl_server + ${CMAKE_THREAD_LIBS_INIT} + cppnetlib-server-parsers + cppnetlib-uri + cppnetlib-client-connections) +endif (OPENSSL_FOUND) + + if (OPENSSL_FOUND) target_link_libraries(http_client ${OPENSSL_LIBRARIES}) target_link_libraries(simple_wget ${OPENSSL_LIBRARIES}) @@ -74,6 +88,7 @@ if (OPENSSL_FOUND) target_link_libraries(hello_world_server ${OPENSSL_LIBRARIES}) target_link_libraries(hello_world_client ${OPENSSL_LIBRARIES}) target_link_libraries(hello_world_async_server_with_work_queue ${OPENSSL_LIBRARIES}) + target_link_libraries(ssl_server ${OPENSSL_LIBRARIES}) target_link_libraries(trivial_google ${OPENSSL_LIBRARIES}) endif (OPENSSL_FOUND) @@ -85,6 +100,7 @@ if (${CMAKE_CXX_COMPILER_ID} MATCHES GNU AND ${CMAKE_SYSTEM_NAME} MATCHES "Windo target_link_libraries(hello_world_server ws2_32 wsock32) target_link_libraries(hello_world_client ws2_32) target_link_libraries(hello_world_async_server_with_work_queue ws2_32 wsock32) + target_link_libraries(ssl_server ws2_32 wsock32) target_link_libraries(trivial_google ws2_32) endif() @@ -97,6 +113,9 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") target_link_libraries(hello_world_client rt) target_link_libraries(hello_world_async_server_with_work_queue rt) target_link_libraries(trivial_google rt) + if (OPENSSL_FOUND) + target_link_libraries(ssl_server rt) + endif (OPENSSL_FOUND) endif() if (UNIX) @@ -119,7 +138,10 @@ set_target_properties(trivial_google PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CPP-N set_target_properties(hello_world_server PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CPP-NETLIB_BINARY_DIR}/example) set_target_properties(hello_world_client PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CPP-NETLIB_BINARY_DIR}/example) set_target_properties(hello_world_async_server_with_work_queue PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CPP-NETLIB_BINARY_DIR}/example) - +if (OPENSSL_FOUND) + set_target_properties(ssl_server PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CPP-NETLIB_BINARY_DIR}/example) +endif (OPENSSL_FOUND) + if (UNIX) set_target_properties(fileserver PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CPP-NETLIB_BINARY_DIR}/example) endif (UNIX) diff --git a/libs/network/example/http/ssl/dh2048.pem b/libs/network/example/http/ssl/dh2048.pem new file mode 100644 index 000000000..0b6a02269 --- /dev/null +++ b/libs/network/example/http/ssl/dh2048.pem @@ -0,0 +1,8 @@ +-----BEGIN DH PARAMETERS----- +MIIBCAKCAQEA1wI+wQdLMRtQK+0EIXNg+g+J/EhIZedqdkSKKLIdclDAjUdbnDWJ +rMR76tKGItPb0LkWHfxJkrziyvZRO2KWTThQ1Tz05x+OgM2ckHT+QsTxNqOosvdT +pOtMt260WaXVYvHJ0CZgTo7+DUcXNYZW/xvSW206RW9oJIgqCFrhUrKGpVFuqLZZ +Nwjy62Ueg3TUwE5D5K0xgUjyCAuHZmeI2uQUbJS6u9GeraV5h0QtH3njDS6mD64v +cN5MqQXO1UTl4sQUhDPamyiJz57/o/jinHJUDLz1FGS8kOR8ecYAx8JryFgm4qPd ++MYaDDIJku8f19Rnjb1SI/Y28uHL9X2dswIBAg== +-----END DH PARAMETERS----- diff --git a/libs/network/example/http/ssl/dh512.pem b/libs/network/example/http/ssl/dh512.pem deleted file mode 100644 index c316cb99d..000000000 --- a/libs/network/example/http/ssl/dh512.pem +++ /dev/null @@ -1,12 +0,0 @@ -Diffie-Hellman-Parameters: (512 bit) - prime: - 00:f8:57:8f:79:09:08:95:c9:0a:74:2c:85:b5:75: - ff:07:67:c0:d2:94:4f:a2:45:77:7e:e1:f4:b6:86: - 60:9a:33:80:7b:31:75:f3:fc:8e:c3:0b:d0:8d:77: - a4:ed:3a:e8:e4:35:69:3e:ce:63:49:26:a4:64:38: - 55:41:51:de:13 - generator: 5 (0x5) ------BEGIN DH PARAMETERS----- -MEYCQQD4V495CQiVyQp0LIW1df8HZ8DSlE+iRXd+4fS2hmCaM4B7MXXz/I7DC9CN -d6TtOujkNWk+zmNJJqRkOFVBUd4TAgEF ------END DH PARAMETERS----- diff --git a/libs/network/example/http/ssl/ssl_server.cpp b/libs/network/example/http/ssl/ssl_server.cpp index bbbc98ce0..9e30eebd1 100644 --- a/libs/network/example/http/ssl/ssl_server.cpp +++ b/libs/network/example/http/ssl/ssl_server.cpp @@ -19,7 +19,7 @@ #include struct handler; -typedef boost::network::http::async_server server; +typedef boost::network::http::server server; std::string password_callback( std::size_t max_length, @@ -78,7 +78,7 @@ int main(void) try { ctx->set_password_callback(password_callback); ctx->use_certificate_chain_file("server.pem"); ctx->use_private_key_file("server.pem", asio::ssl::context::pem); - ctx->use_tmp_dh_file("dh512.pem"); + ctx->use_tmp_dh_file("dh2048.pem"); // setup the async server handler request_handler; From 716330497af334fdf1b2e985a31edac66e56e9a2 Mon Sep 17 00:00:00 2001 From: Chris Kaminski Date: Mon, 29 Feb 2016 10:50:51 -0500 Subject: [PATCH 005/125] * Added ssl_server example to CMakefiles * Updated ssl_server DH key to reflect current (2016) browser security requirements --- libs/network/example/CMakeLists.txt | 22 +++++++++++++++++++- libs/network/example/http/ssl/dh2048.pem | 8 +++++++ libs/network/example/http/ssl/dh512.pem | 12 ----------- libs/network/example/http/ssl/ssl_server.cpp | 4 ++-- 4 files changed, 31 insertions(+), 15 deletions(-) create mode 100644 libs/network/example/http/ssl/dh2048.pem delete mode 100644 libs/network/example/http/ssl/dh512.pem diff --git a/libs/network/example/CMakeLists.txt b/libs/network/example/CMakeLists.txt index f716369a6..fd6a873ec 100644 --- a/libs/network/example/CMakeLists.txt +++ b/libs/network/example/CMakeLists.txt @@ -17,6 +17,7 @@ add_executable(hello_world_server http/hello_world_server.cpp) add_executable(hello_world_client http/hello_world_client.cpp) add_executable(hello_world_async_server_with_work_queue http/hello_world_async_server_with_work_queue.cpp) add_executable(trivial_google trivial_google.cpp) + if (UNIX) add_executable(fileserver http/fileserver.cpp) endif (UNIX) @@ -66,6 +67,17 @@ target_link_libraries(hello_world_async_server_with_work_queue cppnetlib-client-connections cppnetlib-server-parsers) +if (OPENSSL_FOUND) + add_executable(ssl_server http/ssl/ssl_server.cpp) + add_dependencies(ssl_server cppnetlib-uri cppnetlib-client-connections) + target_link_libraries(ssl_server + ${CMAKE_THREAD_LIBS_INIT} + cppnetlib-server-parsers + cppnetlib-uri + cppnetlib-client-connections) +endif (OPENSSL_FOUND) + + if (OPENSSL_FOUND) target_link_libraries(http_client ${OPENSSL_LIBRARIES}) target_link_libraries(simple_wget ${OPENSSL_LIBRARIES}) @@ -74,6 +86,7 @@ if (OPENSSL_FOUND) target_link_libraries(hello_world_server ${OPENSSL_LIBRARIES}) target_link_libraries(hello_world_client ${OPENSSL_LIBRARIES}) target_link_libraries(hello_world_async_server_with_work_queue ${OPENSSL_LIBRARIES}) + target_link_libraries(ssl_server ${OPENSSL_LIBRARIES}) target_link_libraries(trivial_google ${OPENSSL_LIBRARIES}) endif (OPENSSL_FOUND) @@ -85,6 +98,7 @@ if (${CMAKE_CXX_COMPILER_ID} MATCHES GNU AND ${CMAKE_SYSTEM_NAME} MATCHES "Windo target_link_libraries(hello_world_server ws2_32 wsock32) target_link_libraries(hello_world_client ws2_32) target_link_libraries(hello_world_async_server_with_work_queue ws2_32 wsock32) + target_link_libraries(ssl_server ws2_32 wsock32) target_link_libraries(trivial_google ws2_32) endif() @@ -97,6 +111,9 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") target_link_libraries(hello_world_client rt) target_link_libraries(hello_world_async_server_with_work_queue rt) target_link_libraries(trivial_google rt) + if (OPENSSL_FOUND) + target_link_libraries(ssl_server rt) + endif (OPENSSL_FOUND) endif() if (UNIX) @@ -119,7 +136,10 @@ set_target_properties(trivial_google PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CPP-N set_target_properties(hello_world_server PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CPP-NETLIB_BINARY_DIR}/example) set_target_properties(hello_world_client PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CPP-NETLIB_BINARY_DIR}/example) set_target_properties(hello_world_async_server_with_work_queue PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CPP-NETLIB_BINARY_DIR}/example) - +if (OPENSSL_FOUND) + set_target_properties(ssl_server PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CPP-NETLIB_BINARY_DIR}/example) +endif (OPENSSL_FOUND) + if (UNIX) set_target_properties(fileserver PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CPP-NETLIB_BINARY_DIR}/example) endif (UNIX) diff --git a/libs/network/example/http/ssl/dh2048.pem b/libs/network/example/http/ssl/dh2048.pem new file mode 100644 index 000000000..0b6a02269 --- /dev/null +++ b/libs/network/example/http/ssl/dh2048.pem @@ -0,0 +1,8 @@ +-----BEGIN DH PARAMETERS----- +MIIBCAKCAQEA1wI+wQdLMRtQK+0EIXNg+g+J/EhIZedqdkSKKLIdclDAjUdbnDWJ +rMR76tKGItPb0LkWHfxJkrziyvZRO2KWTThQ1Tz05x+OgM2ckHT+QsTxNqOosvdT +pOtMt260WaXVYvHJ0CZgTo7+DUcXNYZW/xvSW206RW9oJIgqCFrhUrKGpVFuqLZZ +Nwjy62Ueg3TUwE5D5K0xgUjyCAuHZmeI2uQUbJS6u9GeraV5h0QtH3njDS6mD64v +cN5MqQXO1UTl4sQUhDPamyiJz57/o/jinHJUDLz1FGS8kOR8ecYAx8JryFgm4qPd ++MYaDDIJku8f19Rnjb1SI/Y28uHL9X2dswIBAg== +-----END DH PARAMETERS----- diff --git a/libs/network/example/http/ssl/dh512.pem b/libs/network/example/http/ssl/dh512.pem deleted file mode 100644 index c316cb99d..000000000 --- a/libs/network/example/http/ssl/dh512.pem +++ /dev/null @@ -1,12 +0,0 @@ -Diffie-Hellman-Parameters: (512 bit) - prime: - 00:f8:57:8f:79:09:08:95:c9:0a:74:2c:85:b5:75: - ff:07:67:c0:d2:94:4f:a2:45:77:7e:e1:f4:b6:86: - 60:9a:33:80:7b:31:75:f3:fc:8e:c3:0b:d0:8d:77: - a4:ed:3a:e8:e4:35:69:3e:ce:63:49:26:a4:64:38: - 55:41:51:de:13 - generator: 5 (0x5) ------BEGIN DH PARAMETERS----- -MEYCQQD4V495CQiVyQp0LIW1df8HZ8DSlE+iRXd+4fS2hmCaM4B7MXXz/I7DC9CN -d6TtOujkNWk+zmNJJqRkOFVBUd4TAgEF ------END DH PARAMETERS----- diff --git a/libs/network/example/http/ssl/ssl_server.cpp b/libs/network/example/http/ssl/ssl_server.cpp index bbbc98ce0..9e30eebd1 100644 --- a/libs/network/example/http/ssl/ssl_server.cpp +++ b/libs/network/example/http/ssl/ssl_server.cpp @@ -19,7 +19,7 @@ #include struct handler; -typedef boost::network::http::async_server server; +typedef boost::network::http::server server; std::string password_callback( std::size_t max_length, @@ -78,7 +78,7 @@ int main(void) try { ctx->set_password_callback(password_callback); ctx->use_certificate_chain_file("server.pem"); ctx->use_private_key_file("server.pem", asio::ssl::context::pem); - ctx->use_tmp_dh_file("dh512.pem"); + ctx->use_tmp_dh_file("dh2048.pem"); // setup the async server handler request_handler; From 9e1656501272621a1c59b54448b5e37f42d8dae7 Mon Sep 17 00:00:00 2001 From: Dean Berris Date: Mon, 7 Mar 2016 20:48:56 -0500 Subject: [PATCH 006/125] Update whats_new.rst from rc0 --- libs/network/doc/whats_new.rst | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libs/network/doc/whats_new.rst b/libs/network/doc/whats_new.rst index e7b8175e5..db0f5bba0 100644 --- a/libs/network/doc/whats_new.rst +++ b/libs/network/doc/whats_new.rst @@ -7,6 +7,14 @@ :mod:`cpp-netlib` 0.12 ---------------------- +* Added a code of conduct. +* Add TLS SNI hostname support in the HTTP Client options. +* Changes based on Coverity reports. +* Replace std::bind with lambdas. +* Use std::shared_ptr instead of boost::shared_ptr. +* Use standalone Asio instead of Boost.Asio. +* No Boost library (shared or static) dependencies. +* Use doxygen for documentation, integrated with Breathe to Sphinx. * Require C++11 for builds, removes support for non-C++11 compilers. * Update documentation for hello_world_server * Use googletest for tests From e58cdadc2ed509c300cdd5f66ae1d2594fb41a07 Mon Sep 17 00:00:00 2001 From: Dean Berris Date: Mon, 7 Mar 2016 20:59:25 -0500 Subject: [PATCH 007/125] Generate new documentation --- libs/network/doc/html/.buildinfo | 4 +- .../doc/html/.doctrees/contents.doctree | Bin 3791 -> 0 bytes .../doc/html/.doctrees/environment.pickle | Bin 79612 -> 0 bytes .../doc/html/.doctrees/examples.doctree | Bin 6990 -> 0 bytes .../examples/http/atom_reader.doctree | Bin 10118 -> 0 bytes .../examples/http/hello_world_client.doctree | Bin 11170 -> 0 bytes .../examples/http/hello_world_server.doctree | Bin 18574 -> 0 bytes .../examples/http/http_client.doctree | Bin 18372 -> 0 bytes .../examples/http/simple_wget.doctree | Bin 14966 -> 0 bytes .../examples/http/twitter_search.doctree | Bin 14747 -> 0 bytes .../html/.doctrees/getting_started.doctree | Bin 56216 -> 0 bytes .../doc/html/.doctrees/history.doctree | Bin 13079 -> 0 bytes .../doc/html/.doctrees/in_depth.doctree | Bin 5332 -> 0 bytes .../doc/html/.doctrees/in_depth/http.doctree | Bin 31204 -> 0 bytes .../in_depth/http_client_tags.doctree | Bin 9826 -> 0 bytes .../html/.doctrees/in_depth/message.doctree | Bin 52801 -> 0 bytes .../doc/html/.doctrees/in_depth/uri.doctree | Bin 33862 -> 0 bytes libs/network/doc/html/.doctrees/index.doctree | Bin 21893 -> 0 bytes .../doc/html/.doctrees/reference.doctree | Bin 4509 -> 0 bytes .../.doctrees/reference/http_client.doctree | Bin 106074 -> 0 bytes .../.doctrees/reference/http_request.doctree | Bin 84869 -> 0 bytes .../.doctrees/reference/http_response.doctree | Bin 126547 -> 0 bytes .../.doctrees/reference/http_server.doctree | Bin 109045 -> 0 bytes .../doc/html/.doctrees/references.doctree | Bin 9643 -> 0 bytes .../doc/html/.doctrees/techniques.doctree | Bin 3856 -> 0 bytes .../.doctrees/techniques/directives.doctree | Bin 17073 -> 0 bytes .../.doctrees/techniques/polymorphism.doctree | Bin 11112 -> 0 bytes .../techniques/tag_metafunctions.doctree | Bin 29085 -> 0 bytes .../doc/html/.doctrees/whats_new.doctree | Bin 61078 -> 0 bytes libs/network/doc/html/_images/boost.png | Bin 13364 -> 0 bytes .../examples/http/hello_world_server.txt | 54 +- .../_sources/examples/http/twitter_search.txt | 2 +- .../html/_sources/reference/http_client.txt | 18 + libs/network/doc/html/_sources/whats_new.txt | 21 + .../doc/html/_static/Button-Info-icon.png | Bin 3499 -> 0 bytes .../doc/html/_static/Button-Warning-icon.png | Bin 2911 -> 0 bytes libs/network/doc/html/_static/basic.css | 74 +- libs/network/doc/html/_static/boost.png | Bin 13364 -> 0 bytes libs/network/doc/html/_static/cpp-netlib.css | 721 -- libs/network/doc/html/_static/default.css | 256 - libs/network/doc/html/_static/dialog-note.png | Bin 1582 -> 1461 bytes .../doc/html/_static/dialog-seealso.png | Bin 1502 -> 1473 bytes libs/network/doc/html/_static/dialog-todo.png | Bin 1334 -> 1311 bytes .../doc/html/_static/dialog-warning.png | Bin 1391 -> 1365 bytes libs/network/doc/html/_static/doctools.js | 55 +- .../network/doc/html/_static/down-pressed.png | Bin 368 -> 347 bytes libs/network/doc/html/_static/down.png | Bin 363 -> 347 bytes libs/network/doc/html/_static/epub.css | 8 +- libs/network/doc/html/_static/file.png | Bin 392 -> 358 bytes libs/network/doc/html/_static/ftp_uri.png | Bin 25570 -> 0 bytes libs/network/doc/html/_static/http_uri.png | Bin 20719 -> 0 bytes .../network/doc/html/_static/jquery-1.11.1.js | 10308 ++++++++++++++++ libs/network/doc/html/_static/jquery.js | 6 +- libs/network/doc/html/_static/mailto_uri.png | Bin 10220 -> 0 bytes libs/network/doc/html/_static/middlebg.png | Bin 2797 -> 2763 bytes libs/network/doc/html/_static/minus.png | Bin 199 -> 173 bytes .../doc/html/_static/orange-background.jpg | Bin 283722 -> 0 bytes libs/network/doc/html/_static/plus.png | Bin 199 -> 173 bytes libs/network/doc/html/_static/pygments.css | 3 + libs/network/doc/html/_static/pyramid.css | 11 +- .../doc/html/_static/reset-fonts-grids.css | 8 - libs/network/doc/html/_static/searchtools.js | 49 +- libs/network/doc/html/_static/sidebar.js | 148 - .../doc/html/_static/underscore-1.3.1.js | 999 ++ libs/network/doc/html/_static/up-pressed.png | Bin 372 -> 345 bytes libs/network/doc/html/_static/up.png | Bin 363 -> 345 bytes libs/network/doc/html/_static/uri.svg | 650 - libs/network/doc/html/_static/websupport.js | 30 +- libs/network/doc/html/contents.html | 58 +- libs/network/doc/html/examples.html | 30 +- .../doc/html/examples/http/atom_reader.html | 52 +- .../examples/http/hello_world_client.html | 52 +- .../examples/http/hello_world_server.html | 117 +- .../doc/html/examples/http/http_client.html | 74 +- .../doc/html/examples/http/simple_wget.html | 72 +- .../html/examples/http/twitter_search.html | 64 +- libs/network/doc/html/genindex.html | 92 - libs/network/doc/html/getting_started.html | 146 +- libs/network/doc/html/history.html | 32 +- libs/network/doc/html/in_depth.html | 36 +- libs/network/doc/html/in_depth/http.html | 100 +- .../doc/html/in_depth/http_client_tags.html | 28 +- libs/network/doc/html/in_depth/message.html | 156 +- libs/network/doc/html/in_depth/uri.html | 118 +- libs/network/doc/html/index.html | 48 +- libs/network/doc/html/objects.inv | Bin 512 -> 507 bytes libs/network/doc/html/reference.html | 27 +- .../doc/html/reference/http_client.html | 343 +- .../doc/html/reference/http_request.html | 238 +- .../doc/html/reference/http_response.html | 358 +- .../doc/html/reference/http_server.html | 228 +- libs/network/doc/html/references.html | 28 +- libs/network/doc/html/search.html | 22 +- libs/network/doc/html/searchindex.js | 2 +- libs/network/doc/html/techniques.html | 26 +- .../doc/html/techniques/directives.html | 42 +- .../doc/html/techniques/polymorphism.html | 50 +- .../html/techniques/tag_metafunctions.html | 118 +- libs/network/doc/html/whats_new.html | 97 +- 99 files changed, 12980 insertions(+), 3299 deletions(-) delete mode 100644 libs/network/doc/html/.doctrees/contents.doctree delete mode 100644 libs/network/doc/html/.doctrees/environment.pickle delete mode 100644 libs/network/doc/html/.doctrees/examples.doctree delete mode 100644 libs/network/doc/html/.doctrees/examples/http/atom_reader.doctree delete mode 100644 libs/network/doc/html/.doctrees/examples/http/hello_world_client.doctree delete mode 100644 libs/network/doc/html/.doctrees/examples/http/hello_world_server.doctree delete mode 100644 libs/network/doc/html/.doctrees/examples/http/http_client.doctree delete mode 100644 libs/network/doc/html/.doctrees/examples/http/simple_wget.doctree delete mode 100644 libs/network/doc/html/.doctrees/examples/http/twitter_search.doctree delete mode 100644 libs/network/doc/html/.doctrees/getting_started.doctree delete mode 100644 libs/network/doc/html/.doctrees/history.doctree delete mode 100644 libs/network/doc/html/.doctrees/in_depth.doctree delete mode 100644 libs/network/doc/html/.doctrees/in_depth/http.doctree delete mode 100644 libs/network/doc/html/.doctrees/in_depth/http_client_tags.doctree delete mode 100644 libs/network/doc/html/.doctrees/in_depth/message.doctree delete mode 100644 libs/network/doc/html/.doctrees/in_depth/uri.doctree delete mode 100644 libs/network/doc/html/.doctrees/index.doctree delete mode 100644 libs/network/doc/html/.doctrees/reference.doctree delete mode 100644 libs/network/doc/html/.doctrees/reference/http_client.doctree delete mode 100644 libs/network/doc/html/.doctrees/reference/http_request.doctree delete mode 100644 libs/network/doc/html/.doctrees/reference/http_response.doctree delete mode 100644 libs/network/doc/html/.doctrees/reference/http_server.doctree delete mode 100644 libs/network/doc/html/.doctrees/references.doctree delete mode 100644 libs/network/doc/html/.doctrees/techniques.doctree delete mode 100644 libs/network/doc/html/.doctrees/techniques/directives.doctree delete mode 100644 libs/network/doc/html/.doctrees/techniques/polymorphism.doctree delete mode 100644 libs/network/doc/html/.doctrees/techniques/tag_metafunctions.doctree delete mode 100644 libs/network/doc/html/.doctrees/whats_new.doctree delete mode 100644 libs/network/doc/html/_images/boost.png delete mode 100644 libs/network/doc/html/_static/Button-Info-icon.png delete mode 100644 libs/network/doc/html/_static/Button-Warning-icon.png delete mode 100644 libs/network/doc/html/_static/boost.png delete mode 100644 libs/network/doc/html/_static/cpp-netlib.css delete mode 100644 libs/network/doc/html/_static/default.css delete mode 100644 libs/network/doc/html/_static/ftp_uri.png delete mode 100644 libs/network/doc/html/_static/http_uri.png create mode 100644 libs/network/doc/html/_static/jquery-1.11.1.js delete mode 100644 libs/network/doc/html/_static/mailto_uri.png delete mode 100644 libs/network/doc/html/_static/orange-background.jpg delete mode 100644 libs/network/doc/html/_static/reset-fonts-grids.css delete mode 100644 libs/network/doc/html/_static/sidebar.js create mode 100644 libs/network/doc/html/_static/underscore-1.3.1.js delete mode 100644 libs/network/doc/html/_static/uri.svg delete mode 100644 libs/network/doc/html/genindex.html diff --git a/libs/network/doc/html/.buildinfo b/libs/network/doc/html/.buildinfo index d90c273de..38959c6ef 100644 --- a/libs/network/doc/html/.buildinfo +++ b/libs/network/doc/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: ae0de19b7b7891744d7373f4a9b6c125 -tags: fbb0d17656682115ca4d033fb2f83ba1 +config: adbe6ea7ac2e69d5b593dfb1e312603d +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/libs/network/doc/html/.doctrees/contents.doctree b/libs/network/doc/html/.doctrees/contents.doctree deleted file mode 100644 index fb474d66ef357e675aba094b0d55482b3b6776a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3791 zcmbtXd3@YP6;2#`y}R)dr%6Le(wej>n+ESTP-qD>&?b}yg9@b6x)dR_((I0~R?^dq zvTH!J0cvcn0_DE%`@W&v_kG{@ec#9bd?RVs_9p#{Km5x|nVI+I`@Z+Rr<+F{H*^x^ z`LZ5_E|*pP*x`Yy(&huFXe6aAHC74i4p&PNmo%Ev*g|>JrcF*5C@hmyT9IrT#|}+`fIAR6=5e*nnc*x?#eKU9Zpkh z6D#2`M5O7{PT-D?TcvH-I+N1&n$YX3F>i6~aJWln&2JXdVuY27^L7lM5%VZc0?z>k zRoc051UGCj$z$1Yxg9i)6{yID6Gd|YSH9P5;7>O2yBo%f4dB-3V^WW$qO)%~MY~eE zQQN2EE^XA!ALIv)>i66w8?E-=}+ z*Ki50u*H5;oNtPKCS6<;S+0lZ5EmDkbazp*6LDaEROsV(oe@f; zcaM}V5jC+#ii0NIvvwMyp7KHLy#VN?DP5)k)gnIH7xBG;=8Q%Y36DX@KBvPv-TUZt z2gxCyK`J`VeTTzb%X^^h@{MO7fe`MO()|%s=s1@qO*?50Z*{^>6efXNr7Mu+l_?#~ zRJ<-P;GZv{V>-156sgfwY+8kmiaDR_#(m>y{7XyyqU8akct)sBpW7xe13>*m#7 zY^>681bt9S^ZlS#7GR7QE9k*G=0j?%93-74%E~2UeiNJY0>@8WE5bGr zlvOi0Wf=HN^srSn+V;aHJ$w~h>l|}*A+vFmcI-iXCrrAwW-N?>9xrftkJvI@XDn3k z+!eNxR=~S-{W2{W3)6UqLQ!7Owj`vlkkt*#^avx%f%oiAHc{Rbr_2LF`qcDXfY~cvbS-E5P@{ArcKdQA=0#BJfc+xB=nA+%&w5XZz zHT!JL=O?)jZ_B`>jyPoZEe=vfO##@fQs+n6s5Wpmdfd3`8VWYZI2_g@jMi>LN}@^; zbU`V_xh@b`o?a2tVnVA+iOUxb0=#2M^-_^b!~J;zhCxh>6VPdPlhukR!K>Xe{1 zPNvlD%Z_k&lwf6$0rfI8Y&PX2v9^D!aPTFARbB3cv8}zI9&51ecA~;o7^)ytJl6v~ z4hA)@!)o(;d`hV(iCX3nPk>p78J=~Dttz$y*$U$hYUd_{O%6`UeDda$PO&n6=AQV( zl%B-4$)!#+^sW9%Nl!NE7B;gXhivzs$5W=Y#7yxV{>iijm}EpW-!gXFWL!CT4Ndq6^pQ1)%$dDZQvq_iY*7LUSz66^r;s z;~a&k2)=>z0a+sJEp#*q}M}FXW{5DcD0jm7*ybB z*Ls7&CgPTZrI>e;*rzwL-9oA8aHFBZ5Yv^%RjVGx?S@btzd>(e6;SGMeKfs!1(Onw z)&>MgZ!y@Egds*~_#HiuNqQ@U2{&Gs&D+?RcFiSvJDc?Fpq*gI!g`m}JJ<;9_?@ic zq7Gq=orvD0Gt98HGS{GY1JViH0)tzS7twoAQ^NLDvEaS)V{EcWqL>WcXNbcF+r#5H zj4fO}bhY>9kHQXIAH2PvZPT}s*dh?n$1UjtY|Q1&q)i_**fx#^qIq3{HNpfHeQ1^K z4HFe5>WQHZ!OHlLx&0Sk;?gJC4DWd`9+YV!3v50GY)UY) zme;0F7hFMbCq3z*bI@mSvg3#LqQyJ5=UZsFF@|6W<+CenFK*HqIL8|6mW(u3pIc>H zcyN+FZxr{6Bu`x2qvO*TG<>}%gvdP1-*I63lD-Ik(3oHd&w6cf<1ekUt+`oRTD8orkQLVYl=xeN6Y}b1JI(B=(dWz^9{gvNj)0XQ=y9pQzOul8X z3W_&EFt117#yDP4cGK#5F1qh`=J9E;QA6}yR%R#Wt~hb@_;LCk8}Hlv_t}yEa}NIj zo7OV|CNo`1Kv>ZaS6HRZ1CHJSu6~4@W%^k|^v9?b*}*_zQG#Y7=_lyuS}B9_{wX`J zDDQ5!TaT8M2!pJ=U4F8Gm9jxU(@i2!cFz)CTln}>^mDZ1Flf^+*q)7G4%N^v#qDfL z+nu!r;;+~U2HjsHSxkF+L@jv!%_`fSS1I>-W)*;039CQN{}#1S(2^-#((g?AJv%#7 zy%*pkC;MvSf#%PpKdi8=`0zp{=Ffjb;Y?=u4E*y?M$%+Ehg(`Ufzh8a6=t6re@W@D znB_569}+VO6uSNsG4G^*OX=_M{fqQK^N+08WOK}LyGmH4Z^e@SY0|$~Ny`cy{og75 PN7PLEuh?Vb{QCa@HTHhI diff --git a/libs/network/doc/html/.doctrees/environment.pickle b/libs/network/doc/html/.doctrees/environment.pickle deleted file mode 100644 index d23c854d120ef33e7e62f96ee4c99c7cdd3f56de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 79612 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 U@Ob=*%DB)B&w#(Mj%Pr_->L=MzW@LL diff --git a/libs/network/doc/html/.doctrees/examples.doctree b/libs/network/doc/html/.doctrees/examples.doctree deleted file mode 100644 index a94c2d8fa377c81401d2fe480d163de53be59a8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6990 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 diff --git a/libs/network/doc/html/.doctrees/examples/http/http_client.doctree b/libs/network/doc/html/.doctrees/examples/http/http_client.doctree deleted file mode 100644 index 72b06c633df9892cec6ef32faa6a1f745f157114..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18372 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 diff --git a/libs/network/doc/html/.doctrees/examples/http/simple_wget.doctree b/libs/network/doc/html/.doctrees/examples/http/simple_wget.doctree deleted file mode 100644 index cbb58d18ab639df069d8518e8dfabdbcb3b398bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14966 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 Cn74xf diff --git a/libs/network/doc/html/.doctrees/examples/http/twitter_search.doctree b/libs/network/doc/html/.doctrees/examples/http/twitter_search.doctree deleted file mode 100644 index ec38d1500e9c9c4c8b8890923d574f007502b6f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14747 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 Nk$%O`tbuv+{{!^|qIUoQ diff --git a/libs/network/doc/html/.doctrees/getting_started.doctree b/libs/network/doc/html/.doctrees/getting_started.doctree deleted file mode 100644 index 00d721a961d9af1bb132e1e016c7814d86fbbbaf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56216 zcmeIb37i~7`92*nMMOkVR8+k0`}{x8Th%>1$A-;wVvP z-@5zCUHkgWebq|7=%-5Me#cMnb;v1I65cNJuJU#byxrQ;Q%kuar?P3-@x9#xZ(>_! z#)JtIhO5P5QXH@9_!Zxqv^g^ik-g=zUrF`nDo(bNA9B3On={j+Xn&JmafZApn=`W! zSM~Fy!DQd?aC^zA6!X2_)UM2-i0?0tl#1nCKT~tberJPIEDw{SVIv_wyCUo3lBSK&)Tw4N053IWsMUONle+ zZ1ncnoY^akN`_edN=_2dGig zWGJ>=g&f+))Z3uj*NCRE=>57fhahtuyGzOPz(Bq)pQB`pPR@6{{Y}l4g~?$l7o0wb z`vAk|fwHUzle_~rXLd7$cn8&$mJKU<@Ma}7k{K9Y%$KSgy+gV(lT22(+Uq4ZXQtw< z;!4hUiTTjY)$|-N*stU(P}6cL+wTnc-eG}vczWh=PJAaj$<*?EzwgZpyrbLP zN$D9>@%Bi?k8vlbXDLhDso?FZ;Pc%n>FFlYs&~6PH9cFEyFI4dDL0WmG{)=pTzgEl z+e7{7aHpmB2$|GQ#cnssd#pP>JvmhC1@4UWL=%6UJ2Sl-HTrmWRxD?^gv>^tPjF|a zXISA|WGA|F(lZUwkuIO)&P^v`ntZamM|zrpF?xK8yJvbY6A@wyg?p;ISFH#I@fNy! zr=deugWHV;w?`SR0-xsYlb!?hZLe3~)7^d36Ahj--2KwK<@*i3cAcaG(EMZp6684Q~F%kA*h^pZnt+{TcbS%Y7~?3mcyE!A9yQZO(i#Cm9sOm zC$v44N@gu7VS8Dao&@EF8hb0<@#!dsPD24o#+A7-+n-^rCa zmReixchoeo1E$vRfXN*}+wB0~I~s~kiC^(nUvrgrLEx?FO;4`m2H7yYwdqNwF5bFy zB3G$MzPDOIt4jyog>96P?_JcLp39ZJukL&04F7B~+w`6#2$Ju64GWN*wR~aVUCmmui05l98~KE$ zmK&7Zu$%B+1iG&Yycd)13qkkA}6os%LDHfWEhFO zrX|CAi{-xcS+5EQn($r;mc1(QUX3i;0<9R~J!(+iYgn__wy0TGSh3f+C+zW3gOUq}%KZy_YKFW=^|IGN*UxmAoqpB5 z#JTFJvY{g8{bW^&3u_AJD%0N6ifOY#VZ65u6-|zTD(?nV`F(-+epX{F89>MNFz5a- zx_28>x&D4L>=<@R?8|32f>jCcM)2kXfp-&;vWMGLckgE6u@-WAJhS&f%JM^P>B+#v zF^l$0!8?r@$w|q(Ws6G0db3-#4`1V}ruCPHa`{qbSCl=x$-B*{LwXwJxN*3M9&%-i z^%d}8)EYP}?{+n`4er#tBRyq!(?WHA-kn`&?VDJeDopx^yJ$6MQLjGIsHjDl3CR@` z-bcZTy8`cHV1;`#tM+j#IPVi}>D|dLZ>xKo_MwM2wF9$vw__Zb+RT;i2Z;ZZ5GRK! zwQ72wg5W+Kc%K1cZMJtAU7c)8_U=(lMZSHJZ!}%=J_{_L3%t)$QriPGVt3i-z7Tl# z5}X4ytE=fL;`rs_28@WlxMCL-?OOL;tnGcMB;B@F&_IW+)Z3O>02J0rnEqL+uRIhp z81cujnfTt9np!tFbU$j!fru%?djR$Na^QU>Sd1ockyx@!gtve6)#yE8Rz!?Qt-1e6)QJEc|}p{UGGbW2%jAy}5iM@P5eZKM5Hu z%k{aD&xMW4ZOG+|YBY0xau6e;Vc5gAv`#Y6T|+U3a;5%6PY>FCa^vL#v8jg?qEdsG z_w>w5mL=I+pV?+83?yoeM>F(ZejIZkZ*Q(xoX@N%I+sNDfjo?NTTf55gqL_ey!P}c zC3~c^cgDo`f8J z5_mr)o1YFM(ES7yp4RJUf%kKwI|y`bm;2PRUo_Vbn5bL7MAh~Kic!Vq{R*`II`DoI z>d?=O4#AKiD+gMw#OwVQxqcUTzbA>K0mW+bhrs(IK@YCgW)#(6b^bJJb^Z*R_7AJm z5`*^_Q1;ir`&(F_Kg8>Epw?$}<@5fI-2Vu?f0Edz0*=-1UxD{;W}z`3O@UD}nXt=* z38Pg`c0r=$d8;NMyCVIXt7JC>f$XlBj1&4-yoyJHgfX=hnP~7$QhbvQzRZ}j+uFl7 z$rQyf)nee>p|(TUc%>&?q0PC2-IYpU276TytvD9?3sj} zYT1u*NgX=wXDyf|c7LPmLoI+2FG$Fo&tG} zzIW=xcij-V)x@_PMT{#8Bq}ykmNrEaqr#4sqf+NFgN(6|qX7)%R)Q^avIBbI}1u4=s8{Al}~bpK5s3s znAoU7&cu7&z@k6~5cydQ8;2KiHe$iaMF;{}jNj0Rk%Y*~8(YSHx6u+=VzMpOY|BhG zCBvlGL_lkOjzXPlp=gMyWyV;ms6u;v9zm?V=0XL{-ZotUsu{j^zi&u~53(H4t?cyq zj29hG0)ec+D{9z@Adr>#4QoiULNndXs{JR`Ub+k!tCWn@hK$UAyx2$(w3IXk7ijrw zZ24!R+D(0L&YwB+b#Bb|#@X^QUXIVFaV|TV_ZP}qph77zW2bF;otDttrVk6-bej1j z^9)dMAuvI}7a<5FqvduMELp6s%6OE4dsZjE5^^!%z@1AJ$8!yi%xU0`?>fce5y?TU z-SrjAC5KO#?7}aW8Acz*rU(${N_vJJu$vO)Qj|d()6KHdQ#TG37y84wK1VJ?1g0V| z&~^mNOHCNKF>5fUy+yefrb1|s% z-Ey_qPqXio%GE&^)*o$YNSE@A;*>d6#--F$GP$mdxv=C=S#-2FTy!=jDqKYLv9^m9 z;&byAcpE#s;?f?Hl6`KjgtbEs-uhgpkE@xjy5d>0Dnmc!Ln$be2Q7}z(6YG`oqNSW; zyjCK#ZiD$kw=u*l)@{(iHwhk2B#HPIP9$8wQdN}_kv29qxXv=;MW;BMaLX_f!FLZq zAcEhp>99Vbf5GE~6rg;Csu(ERstHs{!vvV)CRJ*np&xZ1IU) zUthV3y&i1**p*UDZpan${qvJpYfOUZWUe@p+k_eI;r2>dm*G>%itjHwL zx%BhcY*OmmWc-a5Tq`W;f}mctU$POLp=sTuoN8*=;ar_u zPB{9+=iwoc=PP(;=KmO*?^VW9-(u5{5-5Y3__<;}dzV*eqUf-?rCQ1h0D%^8C4xY% zQt-~v!OG*{RLc|G!@{?{t9H&|rc zmsM|g*hb%|sf{{iWY7A(3F)XWH>bsomb@A9sPS761oBozqT~Jo3)LE@r-TH_+cXYn zZZ&leZP~NJ+{xQPJ*s*gfosk3^>{bZ zo14RX5DSjI7eOF5C<>z-EKrrB5UB)W)G@zLf!}X{Bgbq^5FE2z36>ib>;o3;0%WeO z4q!hIdZWh8a-M|Sz|dXD&c}?2daitFLwUVZH?Yd}mNz&F-HVVzHyUG&dY7h)z;ct8 z*T{zM6$`>H>dgvZW~xUgNInQKFy=!D0=Y%=bn5K(=y@PC*4cK^Zq=N(*_=~Q{jid@ zTSnNhTXs9aY_}}j?FoLMGuDBOwll_YWNNTn9xOUKni}q~yXUay$*h#QvF&l~&BmVFb=SFBo>|n22+2=zdX|5|+FEhLVm% zpK7SuO6l%aYMPbqgiz@|sQ|_}$H|pXAp!jVG=e}rqfnh{!sAfj0c&j)>mG&utcB&? z+*qZpZV^1xtJ}HwYtT?Hu3&`>h*+1Z@qU9bvm+Slx%YtL`Le|mYh7cNzkCIGX>h+v z9O24+L1P=)WaLKY{2()#mK3skjQS>DLsqc#Aq0VZorRk14Fy(3O*Ge(fgG=DpC4Ap zZy3nPJ{t{UE8^P8BMS3P3&X`UyLJ+-Mhs#PYdC)xtwqG=u5?A@QN^&WupA+@M83sv zas6_{w;6Ykt{R+d8-%6eF{A|Y9sJT!pK7USF_djdRo#GebP~U-=(iQ@h*cgZIj7f? z_&vt$qa>bEPvZBH637n}M`z}AOQJR95m{q3&7)KKgqE0wv#SnO?^QygB?Gy}@i$xq}pixh7%C8T* zbpaJ$UBOl%r>IlYVa8tU_wSGP_?rQFatIrVeaySTBlu1N3ogl#9LDDu@q;@1Nw`^3Q>Nlc|-&Tc)ou+ha>(i3e+?8i8s%Q#Hu=C66CL*rsx zZjtAb@na^*cqRkE^AU-jIFR3?+a_X-udoq}q!Ie1GPcR{L<9F<5sm}*U*jQ=-zfP1 z$pJ!s8gigc$4C3WRjxJ(Va4gR{J+!0*n-^e5dnMt2LyrqQB&&{&BuUW5o-_3S zP{y0lYKZkPL_xlXBM9UO{D$%+&7pj`$8WrDSB^9#JV#47%9NnH2FHuBp0{m^cb>(| zGoy`;z6FnuCb;Es(=k;rnY+S9VRGGZzYaMDm|C%VKI5hN46L*x0Sr$ez}^%5h74y# zLWbj!`?iin2-pP(0yz%9fQ|NTsejU~Tbv%^2;_K$JHf)u2M&%vtfZs<>S$UsdXM!) z#kj3t)k;pnySu2q$9gj34%8m&;;6@}RGos9Ku%R0otcG}ssN2hV2;@?)V z@{rR=&oT8hp3b;QO5>7V*H*qb&Qy@$Ay;C(JJju0~CxvAhbFVCr0NdT**(NzhGsH@?8@8en&SeIpV)Y2m zLju%hIf6jWS2UdkTMCIWTE;Hy3I*vjAQ|?nnuihn4o^;CDyWoHdb6oya(N|Ob>{&= zcFo}*H-#rr66nP%Xi_H_lM7NO9-BIr*}`}XNw`io+BPkn$w=6fwl+$FAyd3mMT5@bo%{E^dOS3&O!kr97PM&kIfta?#R`SPUWkoGav!N1QqY zDT|5~>`lOq1Wiq#)rpcT>dpnji_}^@Ki`A7IvcSR!z(>!&p6%OuGFN~@Zh=Gln_%r-9EEY6{1=7 z&I^^hO99xQUZone+GocK_Bf5Bt+;JOpwf z%SV4&$wPy?NZ(C=npU>W-CAHV@&5G1c(3nIlL1723B#tfvF9QdP4Q9$*lmN~(Atv( zw8Qw?7?&V0_>NkeTxK$7HFJ;2tTUN$D9c#ecg`tnuZ3ktSA`vRomB+3>)b~m>jSxm zSpnhumf_j@K5n1w)yo=qrVf)s=3KBnNZr9rG>r#?J8)dV*_d)GLq+LF39Wpi!+6n4 z7qn0rKm@onh#(Lbzaf`cozN$~40P>8rbqII=ziso|Fi0^@Pi)DzYdG6y}K06b8#sJY;THQaYpzOs(``nDL@_XVfDX4=GR#K@fu zZ@WsX@IqUK*1qj(q}p6@-}WMA8n17=hB$Z7x4oEosHrc(Lm-=3K75;!2i@GF@5Z;i zRG+sNSWMivy$tX5zKsl^Z+khzCg1i7#6ojli6D?y;WuoYBq7pVvw53~V%zP#$g2&u z*C@8v8f?0jw%u$sfpO;Ob(;D0HuEgDQZ*=1r^pTk<8JU;LR<4j4;;?`<8}<9T6#mh zA;X+1i2J-Z09`8^_eRE>)yjAY@+QQCiEl;_$XoCmGLdx&EgT-Px+iZ%2-vqF2;}Yf z1uQ!%NUP_=bqetg3o#cEmJhMMU<+2flNl^4$UH-6ln2~MA$D|b@WLDIX~r4yE+B2i zkn0(5Zk=c-N8XJj)bl+E0(mcfL!Pi+Ay3%1G5uM&!N9*y;oooIRk2NaJ#TJQs1H~u zwdAIJ+aGShmzxM|`NGBF7(94#^mcio*W$$aaWjy$;>QOWFM2Ul48ME`(cr}`2m-kk zzacMJkB}D_x9KwFZ3=a}fy!uXRQYh3@(zW$)55G~PD~PLkGk_+gY?+ALYFo_ ztfg)%*p8um1n=${^@H?}GHzcTOJ5KT(sd%?E~EtVF~t#^NKn$F{z%U#m1yXTj85an z75}z^?X1WrNY6?2G;U?w9HnthJ&kuGC6G@lj?TeqT=YxoKeqL({i^*YGW%Loy_~Rh;0SiOl2EMI;Eb>FEMTp zB{Ln78LrOWkHkP8P&A#HAy69K4x`JhW(!Tl8P@gE*d#_chqKlkRp`kk2djB(vZ<64 zcAg|@R2_Sm%jQs9e5Ka7B5tLrwYq3c^UF$3W7o7hTGRXrYs3kmuPXHq{uiky|7=f6 z=OVtQv^0^v;v#lT9@0c}3CUBjS-uWnn9_$41o92dX>KEVs+`~{`C^CIk7)jH+WdL~ z+Q_9zfYy~TZ@6>lQD(EQgcts`%n7IR%nic7#nM}>1$>+FX2*0(BIGdufL-4~5Xg7& z8+slxAoM&Zq7LKIQ+eE=|DK}%zCoWEH@ZkfaC6~w_zx8I6Be~oXETzG!djR}CX+3@ zHaj})F}iK}p^~z#U_~N7!n=EFy>0n1=FJ2HN_+-4me@LF_&Cl!T=motvF4Gsmy$D9!J48VcTA1ghv~i<`{K~&}hVh)Cni0 z7I5O%FYA`Sp9Lf*ALyv0E*+^44a1T6LwQ}?}8wZUGW>* zc9H-K8lRS4OcT#_gLnhpVWS|snId=BA}5+6GtUg}deKkP5+>UcT8n-PQd@|ADl?5& z^ac&Eu*#g_eW|A@gKlU z;}!pb#JPjwKZtoK{)6!l$RR8r;#cw@{-nMe@gJ(sTMH~EF8;&tUN3$!fZ{)#VUzfe zKrF<6Bm!J4g5Oa5B%wk4y1}cZo0X#snl?o<&!90IyjsFXA~M~xaLxT_&3=r@uJ_CJ zSWC>CL}k7v#Qco3BgQ>Z*W6QloUI+DKHE`}4$Z(d_ha!C$O3(@Uvpow5*PoB4 zKmu%uy5@eoW{8z&*W9BLPGE-mHFtyXL?nQ(Cn3Pq9g3#2U`rt}rd!Ic#VHDMssYIy zj9D6V)>`y$(3SF&iag7n)u2V>7XAt}e0Qq}u%dFmA#gHwrB>{^ZFeVe1dTsjH| zY|69FzX!Eb0lNJ4`F;T)~KvZc#pTcz1nn`}x(bY+Vb0q5~AP^dLADANw?fLhsZ zSFzU;$PTEvimiYcKyz>%8_wx<-{$nqI^-~XjxL$f&7o<=n^kE=A{Qb8HN6M{ZuY=$ zSW}W`+OuTd!7A?D%~LKm6}dz!@?2AqX9MB3h1qs_sgmDq$#2~*FGFgJc9~_S@wUqz z;@rV@nPVQd%U(R-N)wikcB$l{UH0p{X_t;ZZ!NHxc)J|Hdwshk1K2JH88)>`7qQUR zJOW(6f!|PDNkT)rRL9=ZM$3AGrl@F!3>xFuTf*0isHC~dHdkvA4I{OMh&*N*uZV;= zcThw=^H4+;JOol@`4Ewk2N7-1cO#+^ecoDNF>w)X#CyGn$N-9H6T>DEU5;3Y=y?cm z;RAj{5s`!j5j}@?Wla820)zGnMf(DSHZ%78kqE;TqAL~ARTfbagm7s4Tp^nB(pi{mkP^s?6-Q@g4Z2F5P6bz` z;}Ze+{0w?Em?`3cBArL7mbg<;=aE`c& zb!#v3YP=Yj*`C<4@19^i8V!}Os`Wy-(d;m;f}D0a}4`Vjc;sAMw2PMcOf0pF1<=C^=SN8piz7E{cv zTFh;x7(FUIZj?19aq{_gMSO=v+}bqViPRRR>BG!4Ueoju;@m;g^ik%a8sCKn?5<$> zFilDxB>8cDH>T+m`n~gY2;|fF4NVhCh@@=x zjqy8Q=mr^AC7&@l@6nu}H97TDU=c_p2y|w`S*Fh^_~#9H^DNUBG$E#}axY@sV|AA4 zi+r4>eG@ z9?I#bcnIWYEFYdh$%A-)uJ0-y`Gr1jEwGrlXZR)F>pcS*K;iw0VUuV0HDV#b-yjI& zxA+Y`14)P^XgmXV{i~@OrNPVZ46@%VvOgGPy6b;?xgv4Fc@!?jfD`rqqhk1z#c&(S zJt8@@9wV`2yz|noW-xI?lHIu2psf~9$pjtKeQ@9lMVhj5- zt5moQZ-p$QR6$~sqTMSl4=v$e01A0MD=RO51@Ta;zahZ#IxB6@uv4Vf!~~2|0@($>VBr6g+@buf(bXQpu3Fb7)~vXSHf%RdG~Y7X zVKtH6ksC@m5kVl66qWg8(+;D8R4ExdFEUvXPO%7EyO^m+wYlOhCc#YOburV3bL=ig zIXInp=wfEz0oxr|K3t5F2m3Tj-;IlztI0E@ltJg6(@E z2xKq(hPHqtG`N@wUCe)>^~&Cc$bFQ^eGQSB{}weh^`fNqQ=0a-G;txJwXLClIY6Nr zTaVFJO6WkOLqa^C((EziAf!T42P44N2t{SOb0i^>6!OD$>FI~0LLO=$qtg$jX~3Pc z+rWeVhbh?M28_eOm}}H8n932F7Nc8^M2x#sM}*Je;~_dCd`ajXkJ1br5w_teka_xU zzDgL42(gW_lOMB|qlsZ)5%KWDVD_6uIW^y+FWthw2+y`>zYm@&au0uEwoLiGY<{k8F;{!5ta|v zq~yW0ou%)pC33btZ!NHxxNBO3_j=bv1`zpThE1+%31T70r3eC9hTqUNk%Y+LnbFT- zw0Te2MC2TU@?1rEod#Dz~b6dwr^RDjKFvSf~NUooblXQ!VJ}X)j=gFq+v*U=h}Agu|^W zQ8HC6JkHjPiu=#4PI zSi~Te^Q|1G^4d#<8FFw{2PRwb`P{1XVQ7hp7%xr7i5ole8}j{Cd`MW`Y%00bQf}v8 zadEM|nNxB;zm=2K_4DwXYRTkzU>i2?nf?R5tD*D0?Ug(xlY6Vuk7FjN&JaJUgIoWr zeORLh>oIZ$)5AN1d=5@y+8GW`9aWgd7FHXa4rn_2HG`^Pu2ryKLF@mw6b$@h8;cKL z^U91S=B;=&jdDQ~MbBJ~i&L^57|{5O2m%>Wbe-cz2l^>OJ2_lZq-Beg7RR)Fx|?B* zZLF5b&YF2hhna$jnb2Mk!5gUb5d>1vtj5Z+h`5!#9q`XS!y;8vzYSWy5mUd+v$HOd z3dEe*My=N-TQBxJ=*nnALxo=(xw6X%wOvTJx7N4|~@y$3q~m zVEGthD0wh*uhe(tn!HM%w-#7Te2npGyw{I0$N;kSH4K}^7_UVvSo%5y*ms2AP|Zm~ zWDLz1gR7o9Wj{o&HMMwy*5Zw(7P{)WQ<7U#Q0{GilM?-AOEkY8QE|g=mEGS?bq)`V zzlDHye>;~*BVc(ep|hDWyj8>+|@geLkmq-TBtBE<)dCdWHC`qt6a+pEFP1 zMkI~vKG2@GGhTFWMXki^5DDdZ2Lfzt!f&WNtdp^kl37Qs(XEj7MuKOkdnoTRrC+b5 zzuT1lA1f`A89WjG^!}0eXvy!jC7*|Sa$ju3o@j6Ej*FqTf40^Gc6I;k4O-f^f|ZlJ z5AW_d_4{Yv&$vT%M)GZTqy~!FCB6|U*o~z)Iy1{b@hV7N$5E#H&oA6jDT>%6fg3P6 zfye1JoEXC^xaxc$eLLEa+w}tl89G7mgu6$b6C^`<^Lc zUpF3C{}I-k)JP*L(ybv#@azD-NJ-Im6Cfy^jdIabG+sDE+?fw$W~d1uI` zI{^wdHK3IbBN{dR2m*Xui0EuLh1Ar#DR*i5$4t83+H|oMZFrSP^N6!fx*tc@x;hx? zenK%eOZWPa?5zqQ8SV^hEK=@9B8dMafDSZiex7;g(!YR*K<;JvaOp}OT>2OF-MIAo^m%K6#l&6uHoVun zbTWX*zr?V~rQeTOaPEj-wB1(lo=}}01}JJg3VQhll2P?X5McKc(c0EP z>T0dwQBD7rN!Lr67H`58ssp(yuG-Zp8cVO=Y9fZW?ez3?RDJ0vmT>?8>*(@r;Hs;f zX&#Sh5zWoxhOj>0Q2@#82Y!u8gM1fIsMg~M0{Nb1>D+!6(85aE2J?N*_ye1{{_RQ2J=hAg1x^&5Xi6b8)^+nXlO8;cz`x@0`WH{+ix}7?@Tr&!=%?l zz}oy?q5fc@%zdG872-6;A2qd6TZ|-0{hyF-sjp>~KO+{@{{=xHe^nG_I)g<<)FWTG zEc!Qv{JVjSmPL)autD3e3jIUD{%OG`nvpGL62n8e$EHqA9p7rE5)+b~)8mq!I9P_O z;F6iX1a31ET)fQ_$w~8#_j8vl;bf++G_nigV_i`kJ247y>^Lns6+E=}6*(Q-j$NiD zT(XU=oPH|D+0!~8^MUeq%*XPU*%km*$s;zAX0rBbaLu>QArC=dXwl6}&gOPw5WzF- z9lrFLEi<(~S#+P)zm!dlqN~kH{#(=81)G5ViP$rPUuaoo5bA`%>;E5Yg+5ZG@#(-_ zm5L^+SG=FvwworJ3!z$)D7ym!nl}*vcC0A4`GjsuaFoxwTaz?dGflCXTAQS)NVU1* zCMm&8<26ash;!^FNjWi{dDw_&-~qc*SUyaWl80tHOW%!2nyt^+m4YyClIGyO-XxI$ zWb<5xO(tm%#DcYZBEYT`{DvlpBt(tc49m}^NqU-%PWCnh?xO|nYYNOf6PP2h$NCEU zX({{LQr3X}x|ZCsxz|B7we`AGZRnx8*CqoGV0qi^X52)990)K7u|9twF<>!Bny{ZNyxJ(QI!d#(*=*c`Jw_8uS2<6!HPUYIll-HR4j~>6tYa|iaty#xllce& zX;<9Fhmy#sxy5{FN+CN8WaL9l?V#x9Pj?p`tB?x}WXs(}$7x!uE^<6#+!J(n(FuH< zrDOTq!%pLgnt{8EPQnvz7t!~I^CsBCV?U!Srw|90g&B0Y7hony?>0GAv&G7_`-`G- z7BWM_d6O90(~u0NosJ-oGZa~8!InkBYTA6Jf}CYQG6U#J;KLu7Ti}|j`LYEk7FOo_ zr0kamD#;7;J{BL7OR#_0t{vjch}jI=1hlqN?a!AJ%a< zolnvEg=BlXCUB!v_@$IyC&{mf^rP#sWcBLyu4U^wmoHBF#S)gY+u{Y|yGX?{Zuiqw z@m#W09qKiQXzGdKM_20V!xhw+&~-P{*(!u)q2C!Q*CGXw%#&z3|07b8#i%nhc?kl1 zmq!`U`M<;f=n0#sHO$MD4d+-kG#$e^R}&gF$Y7x9JrC)y8u+!xaF*i{+&v!wb_U@$ zba^Z&Zd`dM{B|3PbQ)AE6;+o(rFX(_H(P!6R%zzdHuGGR+1&o8K}% za`nwu)*=NJUWXu%w4yQIghj_Id@d{e%rtem&=h)+7E11e%b91efQX5)A>zea*d?~G z#4|rcj5z{~6vNNL!!~Y;4HdULPDIC$BgGm_L)Wn>ot;NUJ_F;#n(d9oiO*GDH7ZqY zoOr3GbDY?%yuHlwmfv7+IjU-&wjJw8;Hh{Efm6Qm@nTk~X`+6`$Jy?CG;w?5#T+2e zE_xB*3LFLB{&mdk4@Eh7#k`S33 zGhXCM%b3TDPoX8^n}RD^aMcv7D=p7d309!mrw&(IHfU)hwzO5KPpy5o7(B8$*8o}= zfLfw${h{vH29FzA*mehxcT+l>00!y&2S}33ff^!y9s*nzL~`uNk=&^DwF6DR!lXY# zBgaNN@B+o&YzIC=7F?-`+aEbz1sK%jg$M$yE0$3Al03~RoU9$%rr zuQb5THx;}}6Jm9dS0lzv>B#Xle4MHy$IpeG``2m)jvQZyCv5o8_mK769opniF5YpiTLdW_0?qXL-C!Dhl&-h?PH>&*yo2aTq8s@1dUZ$%V}B5l^}zfD2k zZb4g{{p)JE;%5IH%rsuJ|4!l@yV?INHRoN-L$iN99s+qc%ZJ%l@?iGgqwmTvd9OZi zEwGrl*}nnr^=6+8AoBMyY%=@rM=Th6BLXbz<2Tekk`QSh%zmg)H!0-JG02!)^^VmK zYFbRL@*%{yXRA)#!p8$tr|u1P>Q>D_ow^NAf!wa|ou*^Fl8b+KnCi5 zyE$}SAlzDRzV6LdQN#y9!_RZzm^TItB%_lTZlx+4D;Tizm{aW*uqxIvnp%>cE{fG% z$K#(+f|~1oU&!9A3LyHO-0@Q^cLNO=^+^O+YFC`*lR4wZ2}zQv)+m2kF@MHlw!^9h zE^%0Ok3uw7*r1}Ke-`O+Sw~Ek&mjd>_&kC@zMyE#u!==T%8tBT9d02Ixz`~0q9VA@ zAQ%m}RykhNuuZdk$!2M7hVDnI%@sF84=~es&Cr*LbL?j5J~Hqt%tJHuRXpG#7?uw+ zq~wABU(&_j)r#1`zqf44cf*HxLWSJc0nr?)VMO5J`w6V|t(T zgFL$Or~-e>0IMJ5(G{am9AetL7QU@uk6EzqAhYjOl5Mzen3pE3UbF0+<(cg2MeEK> z9`U@UxS++w3(0v2uKQ)fuL!r*#)ipbQwtWPj!mvvc0qdinq^A?imzl8tNl(kJeH63 zOB9ZxRbD0keK< z7Oh#njM>40nuUlqNPLIY-)`sg{?J@}7oZT(|MQHJ$5BzJ(f1Gp@_jPMc894kYWBm0 z>>nt|69y#nI8}arCn(oc;|rq(m6o>UW*Yn;$wN5UrPYb3Hp> z;k0i|i8i9e(eVCI8PI5WYf}$DLb`4e{IT-u$^R*SQAe!RR=4~Ut$h=-Ry;@}_)|?Z z=LJGllAj?G`uKAMf&4-tI`u?B2mz^(v({byQsI7O;dnW9OJ$_seyu=_v>0q8=Ql`4 zlc!f|QfK)s5<%AQ5a2s1ipe-l5)heYWamQPD5@`iFi8HWNd9DyY%fEts&t-z)@*;V z*;+f#zarJzyYVKtb(_lxF9-8)6}$-4O&b5x=1!BMFg&jPpDVLV6l@M<$uFCTm$! zOj((yiL_qWQx$c>qHZnhX-I7$?CH!jUSZE5&K(r?Oy;4mXW=1`*(@KzR`MY1Ir?sd zJy)N%7FbMN*n8l;Uf5&+g}o=krk>JXh=s8CMi9t8_zi_k5*mcfi46*S430teHF)<^ zy!#uxdMnu&5!8f8ejK1^4zy@mZ&o`Cjxq+FTxxUxa~W z?1Jl_p1QuI>9MfGfLl3=xRIJ0Dm_i)uXvcP^(0L+UmtE@x15YLD8eZS z0y$LyJ2U(oaswdb$(maSzfi$Xv*0v@O>(1Jo~{6mR2fVp>j;klXIZMa>G&DpOnZg!pVM|P5I=B2Z5!YD8j>1w!zs#aoo< z3VjvBCf~6dv5@!$2ymqZena0u5+aG$M%gI#n8C6iJKwVV<9~N2AgsSa9xF>?kw1n zNwivKHEMkd(r-ZY`tju@Sba?N(aP#pVmx5)ad7}!o~wPhAVHFOv(0G(?#nG#F*wWN z`h&q_8&Y(iQV!Q0V9;2=y%&i>8QYO`*q8VFs=f~+K2M?aTL!u0fHRUT59{V<=E42B zxD!zKGNr@;RrRdWLCk;>+svxRLIDjjpX_9naX}PBl1G5=mS`0^3$}(7LQN#=6{KiD zG7m$mcx9sbd?+;wyoO#4;6e@FOw8fDxipGiFz2r)h(>WkIX>Wk+ZZW;M4rdr@C8%u zTZelDbO+F?Xv%%~%!Eydc8etkaXSVt$Z(S9<}2q_dtnr*(zrTc&`EGt7L)8GIIq>W zr!xm}IdQc&g&l6Oi#g+u1`WM&tP!YWhqTVkl6^dsY)JtmbHlTSDN+W>koz!#Ks=?t z^I1ecq(ps$DdnMF(OUSn7AZ(!$Am5wWM%)LN)+iy;tXJEx}dS@sbaUXnu6&!HZYUu z@xC1_ZUi~O{EY|#*~BvKY#J+Ke9OB~wc0Y~R&DZS3i)ya8MR5n2h+{tFB^7x8ZOr=`B3K}N8}aA(UqPtP%c+6q3vX0Yfq^`a9}N%i9@sw^*e>Xz3csc;=G+R5o49WJh0UdOm| zFbkb49D9EF6CQK=JwGiT zAHp=V`8a4MIJMp_Zz2>wN}tn3XahCk^tSu>)@8T6naM>>=4}gpwbveL>z21L=^hrS z2dz!@#2IupcFS9tcB5v)(*)zayX9?oX>-3&n1YnTT>LnCT-IbYHy+^j1m=C6=H;*k zdFyX-?w0Eav0h8&SPyqf7o#3ax4eU?ZJM7G6nedVx4e_F7ht9&r_&Z%B(@ZM zdbYo5sJC3qhNAW5dZc#CyYZWzldD$BVTuv@do=aEOx?2~s{yz{0p3S|seO6VL-OVQ z8haytY2(t<`>G=7CUFtWkq;ocD?K+-xGWUON6*NYn>5?a_-*{2z2RF3nUD_x1`g#z z2m-kUzosdmIo_%-7k8&8>W8jY>|zIUlg!O#IPGvrH%18Q-AT)eUDCVbt6ffd_vKyZ ztdiT1S8ukz9S`cU?!ZGJcPdVfrcuC$^`+6AuPl%jHt~-zG?!+b2h_razoc0NOde)c zv)!uZVH_@V%?J(30f%t$SxP<%1Zd`WA;9NW@EbOB5@VYAW)0Fa>)9e7Hvnv(95JCK ze*!UG=_&dCtd=NS@xEf$G`^))le8~)Beq*UiQn{$P>4pnpF$iy!NQc;yaf(dvQ@IC zGQNC9v)#kQDOiN%;LVrM;%x?i;*wkeRF!|urth>8s__Qzv7;W58dX6v*?JkbMMOo8aty> zW{Dw*UnatdNS96W6+X`>=1PNAC^9nkJMvY=?dp`|K|V~SO@s`FhUIH`C;cj;tZJz| zggD4$I%?{Jk2=thuPb1}%@xsd*cXzA2{ti3!_rs8EFc*24Z^wQuJnPBcv-UGQ@J0) z$eLFd0~UN_MIHfIdNwQIBO{LD;>y52N50AEiT(VDdm>lTc$e;d{ZZ<5c8Z zh~JVv2m>PA88{mLZxhiZlGay|$M`bChq~Z&N_Hb1i+l%h5bCV{>dgNzknKXazpYxh24u{5K_>RT>8LDUn|lgvkIqTEk{Y3Y zXF~^o{SNszq2PxxYp^lPFIX4xzakUR^MO;su`bz#j|bL^p`k7B3Xp=fv6(dG*&6S6 zW9D7+{jxhBW`ZGc{h5f!E$IV{{lG`F)V@JR6*t>wt;r;Spfy_IYAf?)G9tUvdux-! z@{@y^x^fAIfNIb$Q;@njJxy{WQPfmKp{>tQRz}VtLEP2e^j?j93FDonG1G+fZux#+ zrsFw~8Tf5;&opI|_&J@k~6PT=+2`k2SZtpIZ0=p@E^u7pA{V#>cgJP;Uv>9P&+eGBjXv&9AKxeS zbXR!wQoZ-;)!W;aRBK)}3~a~GyIxKBIsR-2H^`}zHXl_>B6aeFIqF&s5wx4aS4$%` zI8n?E3=A~9z@D=L+jG^>ba4nRGj<@uiW;8R{a$5OR51jTMy7R3#q<0iZ~3;TM(2ww zFr!Hx4>F|f2OhOmZo0S(&At~>Rn$G25o+0daS%;G>6LnvW zMQYp}Z(8JwazpsOHG@T0l+;Rdyc!aLnsN+Mt(rD-HBt2_Mtt?Ox!MW?ukLw)>jk3h z2NnhDlszYz!%VYX^VO-5S~DSs%v^@xwQ|@TO2|D;j+nU&v8T&XGpEs=(xk4FIderq z=u}GR8FHDqEKBBkx!fF#iQEvHBUNcTH6X6eEU70f6p_z-_1v5~3lcIS^+ZUBtX4we zMsvU%0xv+dI$JI=hm!Vl7J?zsq|mji5PMFYTf72XE||U`zfcpFTiBH-f?udMn^Ud` z9J^A$f4_kDmPdyRP?bVLP@eoiJ?W04YEz^pD&}xt%`pGeW^*{fR-I?&tRNt}5(bdY zmPk!bm?O2Y$>V%ARWgUGj^+D!&zH=Rid8*KEZaiKJekF?wWQ9MXISQ7JbqhAT_AH- zXfAbZSE%iKmH=3SvAR$$kzm|K6AMX(+BhKgV({&fNL@N1H)=K9w?GYd$g`y(&ykzt zW^+)_QI|@xhoc~c0e4#HoCI!5>E!No)W36fP&=Z zE(t4ESXl@GVzg$+YRa6t8aVHa)Go&P)RP7V4oG3_Xn3_9hq~f9WV9^bsC%JX6E&mK zHg-Xf#$LNBE#Vkf3nJS$Y}eSfb?e3X+-}znY|C-lh8-AH&-JkhG0m$RmXYitBM^~r&!{>!lq+u-yMvrw3=^c+5QgU(`@37WY(Uf+qlOJ47`7D{0q_<8 zhGl@prAFZ8uG4m-Y_y~xVbsK&aJ(klAOq-H+J*p0U>MkL7!zjUv(c~v0L}3m^f+ke zGh!RG^mS}==&dYU$=UD@ltn%A&wx3~mTn{Bn9l@$AD8D@ziO~(PtlT%Lz3vP+j zGgz;unWSeXj8~-zb1Ab)-75EMchPK50kSHK%yv3k-oWq=K^*L3y5uPfLa9Wm3c%(7 zxOfXT47TTRva+h_4TO2OW8VM%K2QSq)+05;y6}Gkr9_3jr#96=qRFc6Ov@ z8Rg~RVs?**t3}o|&yxEhJmH#VxFALD1Y$ zD8znAd-*(EN+I!)J^n^{u?}~%He~f^Ld+Z|WR_40{H93xseah0K1{GaJW5NX0ze5P zHODM?EE8kiO6FiIQb%|?Z>q$y$qvh;=2JW66Gu()80i)_;Ui&999raI*|N?zvm2h( zk1fvzTe=X{b3jWJspqB~X{8*wnmO__8(Z}}z`re0N152;12X2K2rH5!o7*Gx{1o@Z z8_V-p&0f%B%herntp#7KUMPnwwouDbtNx-1$)0{bQpXraHYj_$LFC^mfE|& zqz7!`-8;ZunwX>vgqMKlq(!#rEAZ8QnN#PG$1e>efsgErO ze^?VNR2RCA*ipl1vd!0#uCD>*Tp>6z0HBI6k}z({f_D*l^{Na%w99;TKYom*%zX{` z@&Aar*FsjWi`45`R!r%gU0K}~sW-5!h7naA6mj?z^Bu7YB*!t8WjF{(b!=3v;)G#W zoDKt-)rgD9B3t;AIe}*Ll{IBp#( zPeO;Fb5%PLKOzW>!;?|v*iI{rM#gKo97v^GL#x6Y`>DdJR2AOD(bG4yrk^m}Q*VaC zyd_d^Wz9IjXoGa`f{kTob$6uR#uSc0dOZr0xU9S6=GbMuJ#|@ZMZ1~>w{;d861UZA zwetE5o5#^TJ}dGOxS-zA&t1JUv8Y{W>Rn*^yCZcEP|`u(-KoneV3EhD!|FW%_TEUn zkLi0H^J6Z-8KwT{-blSaMXbjkeV}J|s1M51wLkih9MS&hv~-_*IQB>PMd~Ar6La#$ zZj$7qSn%GgKl)e?*u)=ofPFmSUIxM^K=3Cc^(g?C4DG(Ijk`ZmpHBI30B4+TzJhHU ztU#Z$B)kG_#18eD3}V_Ee6}BA>ryH|$JSsiXzRa@`aH1wLZrUP=sfZ;ta(3lluuL- zMCwaCxc`ajK^~c~O`oB@y!Z?yZ#pI)#d+zWpL$-B2c#))o|f@3XdTC)Uy*#=c{oyE zWtKn4vB}pG-l(rn$Xn$@*@Mn6^&WH{UTZm=CaHv^;=BV zZ%>#*aijX3BK+jQd5d=R_C4!U75Mg|#0#%iM!eFDrS<)1$zGo1HX-<+nLz34NhsrzCLc`rWqreGvSuTekl zp8LHlGybm6+&vqZ8GjFEJPz#s0c8JUq<)aD_Wd5Re;BEMVzT#wY{zRMP+`g{7P46U z4zk?8cAW7n zN6P}PV^NCBkO-Gu4p?!ZnW zkSl`SI`p|JV6Bh`^qQRT_H&j)!m70mYtFJA-UtYP+07t}ji){<1xRG2>TkrkGUPlt zD@q8hXJjzd68w`Y30skR=<1BRwme#)_=uL(nHaXT<^-+}8VHzqT2m0Kn}y^F4rVH} zNpRNE=a9c48o1EVY1M#`lM8$f(mDNU1t7!sbkMK41CkR{r>Oz1od45jjjq-*3F+Z5 zXS-GK!3PdHFWP7z>Ic_-uO9GOE*>a+11P{$!1Tsh_u3?f`aOH0gGG`=#c2@-9-Lsb zWNaLD_$-iyC2SJuB&`jL^Wa8eQfY}EaAk2N_6iFpt1fghI`242OYsxYpdPug??^2B z<2V4IAw8InXRL*N!vGpVFHcFf5=R0w$}<)vR3BY1Ksg5Z)AFai@qmFHO3Qc-LIPTj zmx#uAeYtT~;|6@j^|$66t003H5`mwM z--Ea`76$xLyOSRB4P@2lkoAEZAiil&0z<*B*IU|E*RGca5nMSB!$)1wnhg5NsP}FZ~b?Xjjd%W`xU^PLn+chfMwq7%j-PE^=mP zX!b33W}8!Iwq6goviNN{vlErSv;joIgq(?=h@PM+-grV&4FAa62k`}xV04zI+eql< z8+gCuj6@RF2`-V4dT#5olAq+=O0kbG+Q~1K(kAYOT)G>ugEZnFkryboM-3jeZHJ z7Bb|p2g$iMzPCv2mbP+UJ;yUMfjSId8|Mj_ufT(`KunC3I>*NQ_a4|cX9-WY40Y4FK)g$BhcHu~Hh6@QKhbd;!1rY}DG=4dC-g0OaJ9Ir`myc|r*=Z$ja27QO|81CiGT&HfJ zM%MzUt_eu}{dLBrTsydc3mzBcb5{XgB9&n`rAHbri)2JA|{Qm1J~j5)*faC$AD7}g=;>p&nvv@L-%;jl?D%Ua6VKk#AwZo`RIV(AOS_4mJ z4ae?aqN|6G*tNKDl{|c-c6BU^tWQlnRq@oZ6pt7~LR&;W_pG#$)Z!yTIZ2vPpr?i0 zIpT`|#dkA4&EYeX-LDg>@{n}S-E27_s)wnCevgje8Bv?ZnyXWOmbs=AR37%}S?B?t zr(ivgYAE96QaBVL;R2nWjlOAfIn}F}fP&tT9C{Ag%=L+V3OqRWye)#dzGjp`!zob2 zBSyius?epQ&&BsVYJx?RDUFMie0rXSJo7oUWtWbn6%*h75{F8Q>uLsZF=@ z`&fGAj)^rv&*!!!!lf7R%V-UWGhF#Mnsf)g8GkLKvOZSP3(qIn)RXpSZL#pSScjK|5#rp*nIxJPC1$T;Bl^Ogkk|3WHcM} zYCU!hiw*S=TKMI(29;iePE;p~=G3`cx7X;k{J9E65~%LR<_i6Ui?3tQgXRzlM(Zd% zeZ2;$We(+@vwa(-=5&{CT~l>D>u?zvUE3+6s1r4AC_tt+pmW|l6Qnje)}X6KWxvUc zeIo`PGfx)o9KA^ciwSS~BCLVRhC^@G%_~uQ=|PYAz)LPtzw{Q}zM8p*bFQv0PPp<` z4KpbW$0eP6nC{kt$9X$s6!~qsb;SaS(c95%4u(N}>JoYfzvtqr6TOMv8AGz&tdQwl znJMq)_Z4Mij5)UsJ=YApN6#CDk!b=0`v|>}43naZ4Eqg}H@m>X`_wm3H zbN|#;`*-f%P51KWa8im-@8_>8ex{0Z`T)aNfiji=cVE1rA(?(jFW>*X!)~(C^21@?RDn$9ePxqnin2E~VX4m+91a0P7nbTdf9Z1jB#s`Uw0tWj9 z`Y4Zr3vmPMNSQM#`m%vO#?4C|&z+%<^XrCQ_LqD2@Fy^2R`0EGHsR$i&p*kNm)JG> z6u*pPGiCMWel#94*T;54IPo^OzbGwiTpu36{?^`BGF7kJWuF5{;!;yt1V z@SKqAW;tMyYf)=-+AK$T@^oA^te@pjRc@H&&`O>mjnG`(^Cus1RPZJAM)V+$;baY> z%rE0zU!KM1ndI*tP{fadeU$2(qp2hE=^+d)(O2-)rK$M)0(ux95q%ZUu#*1?N)RXw diff --git a/libs/network/doc/html/.doctrees/in_depth.doctree b/libs/network/doc/html/.doctrees/in_depth.doctree deleted file mode 100644 index 21e7e21c55078e94f595752883e1c04bab1b4156..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5332 zcmbtYXJ8z~6_#a5cRH&Z8ynmBaDlV%=}1Bn5Q!54AsB@-0S{5iWxaPhce8kJci+se zC53E)li*mXq!&_2FNBcZdm)AN-h1zb^zzLX=~V0=;fGGUZ{NIm<$G`5o9nt8me&Xa z+ffs)XK_`~uWjxI1zNM`D0N4)w#52fv(1A!pDXH#sJAq|qpPdSbc?oIwzwaNqT_jo zi)K&^1TQvxzwGkBvFp@Voz8>Pc8!>ga>qk9s=~So>;QXun%-2DkEovw`KDCdXmh2^ z7B(u>XdN4Bgi=BoLwTWWa2lwxg2fx2H1%p4tgbkEt^3Z`j$KN9Thp2&zNW|Wch}$9Sa)J`Wl^5TJ9_C*5dHg z26$>?M5n@2(ws?k-84N2+b1T9MrQvc>w}Rnhc=6D)|c{~wp^;@z6@Qvfp8RP%k(}- zsW8Q*s#x4~D;K8$Qk6x`EAY0e!0R)fJX}EtE7_hCQU$d2`lGZhqSNav7nm*W8QRYJ z678wT3T6;UyB-E``xz1KD6zHLb31D+UpE_vrH;`qyjY>H*DBgwW4VT7Duw4WYpge+ zo`omy+7^`reAnaHE~h<+MLxq6jf-xvz82P(o2+<42ed$E!;^a>Dwo72)+OL3ahll1 zHuG5@90sIw_^-h&qdsTEc1%Q65jn9@iR~G3YhqVT?5xpUOJY=v zadB3S?gl)F91q2wsU889*r}_^hau-ibayePr6d0LSQ&pia1f(=Lh17&Iv+|;??JRK zJV9nmwmoa|&|=gM(IiaVt4)OVy+{g&(*;`hdo9r&Ixpy|6}k5cMGo>=z;NI6rjzVW z_W=s-8_|VY&66_T4_cjvASqwi?(BqVSxIT|xog>O%a}zR3Um>yzBr=$YjLC4ccpcg zXgR5M1D%WM0ouq*ODqRTx~@#Gg#dVm_Q#|dQ@V87JhBO&;~b-@=>k|5eMb+Bzgk|~ zwB6}$eDmk%as(RTX6rOiW_`zQ*ui{?0-&=GWI&OYRiy(g@6S!fc&00=tRF8>B}6P9 zRMmc8t9^dua>zP%z@_OF=qmW(U_=al5SM7Xu1p?40zjj%z*EW>Fmn=9kin9T7^Y<c0jNh)>1v`QBl;H%p}KZ# zW3{a4(;2KiXqDi?p43L-a9%T_mNq;iLiC}qE;MjOM7I94I&iPioC$D64AsLcp(-w$ z7t2Ap3M8GALQ+)40dYlDBtYxaX0(L{lpB!;{lqoeZa)JQ3hT6RI-w+&LP=-|Y9*8c zcq5GH2t>wEa$_io1VLawA8z}rwbrh>516nNfA9c)9qLisYEAT zwHJ0>mQ?f+(T}(=??lVrP?lYmTZtF6BdKPwmc0|v~ zbiSceXPsdylANB4CC`iK`Fi(NIT9^bDQ-w(<5b|6mPl+jVp+7QK3^iw)Xt!wD@eY|BD7`I>pycYqb*BVT#0Ge@tTXFV;)tJCY|lajG` zZskxNrHx+e^)-4!sX9FZmuCH4B?I-%$LNjKIFbvWLTS@2$LLMf7_JLs5d=QndW_!8 zSzoHpTjtq7s$tW1u+v*>^tO_?S==IS3xSHHhT zA7G~}W7o}~q7T;SL#!Xid~$lwhimkaxTPD&CWp8S{U`>71q~NxjE~jm<14DooWfC- z@f7G22>5LgeKH9+V*4qLC)VrmBixx)BtuuQwJ9OE`>{En0(%yK2 zzJTodVnkocKze(UkoEW<8&XS5q%VW4gX4P=Ee(C8iW$gCN2#yEhQZE=DEeBBzRm_S zmnUKPMnvCaBR1MYsr&RqNk!kP(YIM1?L&aJQPFog`qn0DdVqeiaJA`#7(3~^9(^yO z@0ZwE1_(nBAKGX|KY$wRA=;Cc9wo63Q-IEhA6D6bY&O7(*)fz3{fKSR_@1m(0?)%x zYxAHv;mKA-1Z}56KW6>FL4#}2^poS5I=R0%Rw(*u74AW@`38!J?n)H>3}{AjcWCo- z)~hpej())g9n)=v7+Aq?ar!0eMt1*-^;_tKFpRc+`nA?D_N@^^hJG{E%?4lvhF~`t zV}FaOR+vtZGW>3;mkp*$q(j#4tKxzx+sdW%qyf{txDQWW1)3`dar*-s(N-xeLH~wc z4D<3IS+B+GVT=A$Wg{H*NXK;!2`)Gf=+EOt7@SDvUofS@8;yYOfJz80ikdO2 z)13Z_kPKU4+cy>xOVQupD|Fbl+w@Ylzk_W^_w#yifGlpd=^s_LLHk{o8XYtv>mBKz zXvMi--hIxw7X6Ej@>v_BKXN-%sc-%b-}E&+w`sTNKWVH0xFfc*15eU_A-Umr=3#?l zE^rKtE)o|CT*_3NEp|2l@pU9bOg? znFpEmhC#D@p6u7pg;W$ACku%r+wF{@T-UK=KtB%~maWV>yq&mC4#w;Hk>)-$uxI6v zX6r(7m~~^uwlDzJ!eT~)sDs*CpTm!tYMmtN1vG5xmh&Rtf>^;*a< z?o|Q|wK@$Enn0cc>T%ZJ;x48xgj#L@0RV^*xEP0xF?B$-aSvorh&v%APX!I_0u|clBj6 z3q`+Bk4lxWx9S(&FvG9oZZ*mTd-Pl$%v8ai-S+&dGww!{H8%`qsbF?@ZsCj>Ge&$r zjCv!FT&Eb!xjMH1XCnnR(RA9ush8G{T9hk`|EvBSwQa>rwsOt2Wj@1=qz z5T2Zg(63X$4Z7?Z_8bsnhS@d>Zh`q`g1v#dj|%qf_5kl?J$_%Rg8kz6nf4q*Z~rt6 za%)ttmI|3iR)@VUMt{=sMND4aT-%U!hi8Rdu6EX`~PThkf`x;nTK0Sii5t zy4NDFkFD8DVH7;(s>_1|RdCRVJvVa3xG;i)?YW^AI5@=4I8j8Uk$ME<9I67V+n!gf z*BCAg4jZ!P7Aj5{;`g#4d)|ms*hXyH!-woWOT{oaVkkJ$-kW)?N)^*ljy+owSw0kW zd-I&SJ*!fxx3Os zSiytU3*-X&F;@yd? zQfSr4-(D)ZMM29ny_xf1dAAytMk+4A$*+%Ty6{|U+%0%cwG@t9PPHho<0Edd=m54i zvlYxyhierlaxHOLtLWlM5;QD-)EXWhal%p|uZ0;NW(s4a?QYc?aV!4BK+}@;{D!u{ z8C-IMQyFzUE}}ELVb$ArA43FBM2T-!!C72@yOG=|ppEsBv}0CEkxNb`6KsK7o~?p& zSgR!{jdXc)L7v-QkRZx2U@OW{8m5Gg1U3wHo(j$fNeSj>qiP_s%r!iN94dXkFiSgA zZ~;)Cq=E}$Y0>~%8MmW8`H_lW*p>+{f>uK+crw$OgjNz#YfiznqzSbyv6?BS9cW3D zM)i_R#=^fw{aC9j$W~`;rKv0DxIx_wqm8Ip6_?go$*Qs@lTk_~s>dRuzm_q`vt@_7 z*(_DJ>W6`|)1Fsxs$+FDxWPznPl#PuvBI9eW4tmDvg|>@o>wDRYGP32h>W;e$&R7SV8@V<3m$+4Uz zHpXis0i$J@M2sBPK+BD>OQ7q3QE$^dJqg*{+G~2x;3ctJRpOAnn-p6x4lk^#z-M>k zkiDD8jZ!HgMsjGbsQ}%;uG}FKnjgpuIh;^?@qrWv>JSm(F`&_zLJ+}Nbro!nt87ie zwx^@@`M`aI{5+Td;~grPWIZ22J_)N{tb$9J+d*R0&ee=<`jn0~Rj}#)pwJ0Fcq$aT zR0WsC7QHxW(dBH>=~d(4auB*g1y5s{9|T@P<11Bg6=Uxw8c!J&SlOp{RQ4HAmdBP; zpaxe%yqzj|W~}FxNj)>HXCvSQ&jReTRd5Xp)0(BFMceLiD{-v~u49-B&`PXFFy>%a z@yAL9YZMU~!8GKc$*IzLHsMhWI#S2DD9$xeG!x4$4R#y{{gE;TbO^j5I@TeiM0lX+HebG`Jf~?@_@USeHkLN5X3N zs^Go{w%QvzTJ23!TkU=*@MaafCAQkVNvj>kR@+tF3Em14Z&ShBS+Z$iXpQ2=;Tz{cr(TKj+)`i? zhx-YL_!ABlV=}F-47kPsBQYnVd-d;XFX5iSopD%yH;46ED7LL=OoR8JWZtWS_py27 zL>T`aCd|HH1s~w7PT}W+?W};zq4h&kg`W?D+ecLJQIM2y`u?OV6{P~kvr~^;Nd_N- z6dzZ?Cs?t67t@4IKdFLGHEr7JRUFnn-O;9>F*Z%&1fPXApHso-W1D_5X;bMvHajs7 zK$_^jDiJ8Jf|sl4Uu5a=5!_-3rxmy??9+u|*W z$`pJHXx~=BcUY2+PzkBOtAg(_EH{?J!_At=5`Vv=#6N(<^MDb<2R{VcAF1HSv9#Y! zO1o5~ovLOBKLOrPRq!(wp)*)Q-k+=B7Yy9FVf z&!#7$P4GJa|6T=uU>Q<*T1pPvJR|o<75s^T?gD}4{M$pHk!uZw>txnW&(-NDYYj*e zPv&7zTfrD2>56OP5?g7d2w9h?^emny({_LE_MDwwV~)-%cvDTsT^C2#zre`5ozB5u zQLKMc!QW#a_#=G449@M-nPdpUO5-qztR{tNm z7*QW-wq(xHnYle@&X`e`;cTjI4h)zn@->+-qB;i5Z2L7b@rt@*C0n1hoV88>%#smm zPy)-kM5^L;zl5pR#{6oJ)vYH{7~9|t43L@VJ<9x8*{H=_lbioiNM?)-Ed8s;(zG>a zMhl}N`fXUgg>#f@)`{>HUaRgle0tV27{xRIGbI-$g9V2?7NIMX-3>Hm(gEJz)~d#c zUz}_(PH+|(3oenhcCEGS!e#t`to$-GV9Bcyx3^9uq_;3f#lX6MJ%ro>+EExLxcs8( za;>t;s5OZi!m*C#ihE2W+}#{knR&oKmHDqf{nwx1Pc$FyfJl_VL(u~9Ch6>#Is7!* z6j~_xi*$bOr)XI=Vl@P@9+Q6)?s9UiqAwLTMB@?Fsmd?hl=xH{D`D2I(WY>f(rfEZ zH6ycwXASZkpPoDGKK7VndU~z%UCRMYrxIdm29Y3&$!*$VIYn%%2rvk!?!p~uOcPTA5T z+em01flOGF_C<=>Orp15&{CxEeiGUbKfL*}rDS$&?fr!Sc9qZp_@(GE@}AgRVu&2b zxLNFK(ad>!2^}P`3Fc;pNrU*ojFi}9VrU(LWaxS*9*Qg>(pA@!L20n*E)-1=h%ME9MYT7=FT_XUcWz}7uxE!XhyN;5}| zc@C*TPRr~EDnvYLPa|SB0}G;XesU8~jj4-}=PqK?Ni8^BRBAWf+_+qh5P<&N6CZA! z=}1t9^^d|s(Q;wa_3*RtvSltjJ-+w)@vZ$^-iwm|H zt51>q4LUzJh$qjy4i95%2c~fwp|cSbG4or&Ry)&y;LZo8gjW?y*c23DBTI9GANG6{ zd56h3b`(jxA8|crdkG_F6aUlESZ|w=WzSLG9EEO48pIlRCN17UIED_GTXUY6J%b0Cpge^b++1X60*H`c2Of$h zg^Fk^V}=8A2Sb*Yqa1nN@y(+p3i((ET?`x;;SwS66#N~LGY?Fi6kb`nr{X!qobcwj z#kdstZDtz7uKQYsE<+v!yc`cjR|p{%5LBNgFRhz)?O6rC5)RI+qXbwdZWgX&xHNeN z!xq>KU4>lGe>xtDp2489atiua%S(#>JRnY#ijg;X81rDUz=Jnq8;Z0ON%fJkq5Dj{ zDSDQWGIBp#UOLiU)k3$d$)&}|>aJaMe@>4l?7m` zFXkuquhC2JL(xkGysOd3-^|(BG86XpFS8e7$R*?4TLdyqn2+0l>a7ge>?*truW;g* zbdahJ>e5{kIs{N&3;F3kc4zmM?6iKp?i^u;<^tHMQ_C4Mp3^>UeYo*ee!u!y-lKS1=ZQFC%8l%raF>?-LqnmOX>BnBV&uzJD6@KL9`!+z0Vc z^dTYHRW?jn)>Og8Cit+xe?-G;zx=4Yq~*z$V-tJ~`C@{P3+^X0Zti+C1G2M0Z`I*( z30p$%6iw~s;W3I#-x}*+LQBv7Vmu?~vm9&dDO-5@SZtT!oj7JZ!v_n($!Y-yuBv`L z?31%6JdMoLY#H71VBmrQ84s>{>60vNw#<5_?EWbcJguj(`==Sc|Iw<{XCNI4`?Gi` z`kd&|RW_P(siX=UwY01&Xk2qXFPLA@n7Y`%C@*PqWXo~Q`4Z>HZu4cq|4I`7s~zx} z6?^j6_{lZr>-eGQ8v@>`=G2SLn)6LY%$AvDssz6!G}0pX49;hM-)8tuH77~`I{<_+ zzl(>W?+MASvSG@yri>Yz;QIpq0}ZcD_(OR~%abj~CioHZ#RNYV+@EON+^vb4gAHsY zoCM?r3|?k&MsT==XCAN&U%**eBsx*1gjIbxo5SOO21`ycn@u>5WpCKRo0p{q^;(;v zc-ch`G^VRjrllTXGMW!7C+pEqS@vw1wN917&qR&1)}|DG&hY)ahl;;|tZ;;1;-TnQ zqE%Pf=*=aTa)kC;^=rZWjmFe2@mqOG8>d;Te#iN-OZ{H(|B%H0V+VX@#a{j=esZn) zGkz%gi-33K4uwled$i4UYuE_6-OabPNPlJ2Y?+y+O7w3+B`tK%;9}5BzO(3uekoTB2+@HUlqviy3AK?re>lI~h!* zP2w7qtTK9Ue@nd?nZ!JvZn7pySpH?f=SK!mZQn6R}t~T3Sx!o){ zn3|ii+MCLbsXJ~DolLR`mCdXjn$TUg=lVw_~IWa{&f|FHs~d5{AB zHy;m084*dJO#P3E1XHqynwiW6BG^JBSQqMS!aI1`V0f4Zv5N#CZD~!3Yvf|&qed@6t!Xp~$dyH)&s1!$=ON{O$X zo5kNx06L4mKl0P!Gd3N742b_2JQN)$RJ8caI4QmyX=+p>I!NOkEO>`#Jbmn`0n@6; zp#o_cNY+-WA`5?*Bz6{l8S)`K;>?WIko9n(bcCiPre@knS#JR3qp*(Ck&qJ#93=`Y z*9znwrNTB!4^wAw;^tU1)ywS`WqPzSx;;KxUfRp^K9nHWr4^hXH$*E1e^nB{w*x-2 zV*EaSa(jFXekfWk;GNs!WIyy+M$ML)X)4q{R;Z+f?it*VIrcMr=k_?s;c);(86Ss- zqT_{VSJ|*-d11|@L1QzVAn=dZ@Y;+6@{*P)TaL}J2Ki!!wSs%1#@#)-f$LcIY?-xA zmBUG*Mp|oA4o_hC-K3|x9f0xwH1{e%^4jzim6@p!5!;u&xv>MX~cL7 zAl90>gPg&o2~I7nSGb?*Sk*dixREvQljXjwt#V&hJ`;Lqbg?>J$L>Myw)&Rm;|7TB zP6d~E^jbE$(^$jytIMMdmd!EN#k~`}ONmc&=?&>PKZd=4ty1%nyTf;Rp=jBdsiJ+7 zSSM{vQ?wUKW`FLwN1y5FBFF}R8p1=-lSR<3N28!HJNse#l2P+I4ax%m)pb~Oaf~k9 zNo{cud!8A#6lnx7gL@d#m`R@BAVvjbad)i9Wb9eILq|4RB}v(H0FQ0iDAViHn7)Qg-{wZ6Oty8ErOvf~jMMd2t|SNYkdERh;i0IEzj}b0EwhqR z*MT(*&X2U)(>5(hMI;&5lKfjZH%fjNeXpuW=4;7xh^xshz@h=B9s5J`d`Ch?;V z_{@q+t`$`%r7A@uRsUC%Bi z=Sf-`5RT2fEhsg$NLMoBY?(z)8SpBRAuX~o;L{nt|KA|rGr$N%a5Wx^c8W+{Wg|4( zDpdr{-VT1@YCc}FqGt*mC(Mat)tR0ZW45hv;VvaN%Fwd`0B5`g4@KAFFM>txSOkaO zUMrsrD+Bs4&jSQ18?Carrl?5QffR>HUVb;LnGi~t(sPigCwZS0Jr60~9NB}tsj)4fY&5wMnTno|zyEtp%1P<@?!$5{@(Y-*h&-*> zjj&BG1Pb5nxSDRlFQW;)2*33%+{DG5^kRX)wTk-It}`3jNtJmCae*ZNirMK9`T)6{5z8FVx@W z1u3jrJ;c)a1_76Itbo&2yEgKh;mRKl0x zq3Gp8yX#@1jo8EGXC~Ed6ArI19C#vp7X`uf<&^@SwuYw5!TwdqpGL619bi!M)p#hn zLul$5D;5f2rZM5R24Xz~2cXwzMz0k{cWOqthe)*5jCTp?*BR1$;}SNhPU&@Qzt;;~ zXZziaeAsUvkeP}I-Gh7>?hSY-x>ty4!?74i!|_cs59H=_pQiLiq4XwAN$#h4AgqS! z@uu+m1^vwi{aP?>RxMGWWmEVrFEcdpBe}tQEvkR0D{ek9bWMbamDXzfr+0{3_@~$8 z8fT;90~@mC`z<2rG`4&%kE{1vfq@cv^r=Q~gJkf9x8s4$8KRi>1uhh6t0iQ=Q}W-X z^K;)q5$SO-Uq9#}{8e#BBnF-)cFWyOvQ}Ea%rf6U#Tm`icn7vQ95y^Gdk&hZ`Wzca zZLEjyZ6N2(djUr1SlHDr) zrv&KJ21wrt5epC(HOv1Qf#@v%XOR#2`ErO>bov}}pup$xQ1k^MqZMG*Nd@=_(6qgj zzNpE5NyvU#la*6M(Joz9%o*=bJAz0z{I2>nWwoJIqB zTpV404Ga|W|0%1`Z=e+X^S5{?`kmNB`zN~s{1efdCs=+j`G3&)xy^8lt&=tESg6SS zK*8Y+3b>b~ZEupkU2*E0LU6iUPF(R|h5iWAi6WBCx_=UO=~~w_xIQkCKQmJQBO%UT zKpAHFD;|peCUSI@wTxx9g|-ae?(ug4`G*FP>!7FS$fnA~$LYJ5i36vn1eW!zX&i{h z9TL3J)}`)cr!;n{EL&+UD^&c@1!Tg0(ntKK2sI5C-w+%0U%-Gt`BLlum=-hxXSHDa zJ@8O86My45S2lIiCHIv4Svo&=2fL)4@6*kwj!@{nCC1u($ARpx;VWx=T=9lZq=|OS?BU!8-F&OdgiHHPsNP}7Pw$;#^*~Dcxr&Zh{5w@ zydQ{f%#mHGapAJ#V+n*x+e>oasoYlQwsq`gixTaQJ{XtF905q2o|}sV*k~Reisnmh z%jr2bj_GJ+1ZIJO>2xq=q2#AU$d;K9_p=u9bBeRhi;)gN_QFHa68wz|i`gdIw;NGF zkIKTJF0DdVRM=aqkbBgMi#A&qZro2X>c-lhMQW1X|p=wK9CH4ab9CA0&m-dIas3!;DflDp$H?AjKe9fSC zpyVH<^KxOqUX;FL^|l(r=Vt@utAxgZ(M4_^ZVXfqcX&yjMYkLgTn9DDvt<4%pw3hUdR zWYO3BY>RaVi*D&a(=(Wh3-%BJ&{IcKDNlz20H(C?z;-Qx?vjb7si09^*rp~HE)$%? z4UX>bYX^>v13O^Uc7#Brh18@t8Xk#!I3JJNTG8n!M=Rc*D@c9<*Kcv*M))W3@aE zijKK!+3U=y%Vro@H!#4^jZ2vF2B$GB6WqLflLjB$SR4C%3>V|a02rO6LE_kvM_f15 z5!7`QLRXcC0NpXVg;NU+sC@5;i~FOxd)9FBVTp9yb-<}BR+OS1b8nr#mCdh5avfW= zYMuUy2j9wOE@dkr(R`ExsR9o=l{FcKYw&RGT)`kWbJCsT6Qm5L(c%onf$8zUfD8Y( z(87H0zp2n@05(UASc8Y6wNhj{MsP)vW|M1{{-)aE)-UDJi2&iyv`*0QwYb?8TvA=Z zN~&xCp_7naz6oOrC;sdmmM3MsP=5?=(6VQ7eX?h5+I-qs^aSRJub)}5Kdfi^JUBiX zKd`F~e|4h{o*U$)EgX7#aqDp^BlhR|5Y{%-Yq%(tH&nSh_!sJiUf7kz3pl$>sF-gN zF6*V!fC_t@j)$U+!bIDHWzaG63^9viFD}$E?_G`Z`Z6@y1c=Qx_EBN#TE06*XGluc zsYm{(??+WXa`U**kRlpH&fp&QTwVjgm-OgNykiF*{&stF%Djr~&GpuL^Sq0Eh-7O^Cg#02;2LlP;p`t;#?pAPhx=i zC!) zJ~y~1DQrk1f?8nIMX?-O!XnZXxtz0v&x`P)29DhG-h+@v1#OHo=Y?*>_w0q_;Wcsi z8hu9`ldKjq=gD5Y43&`YQyG61ZDUwF8{0F_UsHsZ+d`@!2hOlJ`1w@iFF1k*_5$K8 z8jT}wv%Qc;3qZh^EbCOED$?u&rC-$77x_3--&=B{QQ3>-MdOt|@)=@2>{f8)qm4DZ zUyYApx_k!EY|L=2HAo5Jly@wdHzfvJ)R8TL%K zN_GA*A6;lH65)DV+Ad@k>cYuOV4w-4p+FWwMSQHYsw>G30mN2CTobRsCK+tDy~qfr zzd%VBGn}`2vwaX8-lsea1cgfsxZ?l?Ap<{RgR>6ys9+CCVnjyJ+U(|_{vF*kY^fOgt@y4CIUY$2uC z2rb7ebd4l0LHxxmT0Z_bO-R>DdX}w+ueZwgI*nDX6PgQjT+MSOq2~zjVy*`X4}Pws z?v*Mrx*o~)?0Pi1>IAxhe`gFSu07AwluFfPA=8Zsl;`vBz4Ex3itp2apNj!sAb9f; zU2xUYXlVz%kioc`IU{+woPusb%HTYEajS#Uix_a8eeSCD=bo}@6TO&U=fe&|x*4fg+w;d<#8dtX9NmJ1&Guq(&t_rVDya*@akNhP zppKR*q?aLWr@fH9un~J+jx_sF6MJ|YXl)WxeN~A)MR$82fWtnzjiJzj;H$km@*Xa; zuJDD{^a@U%Rq?B1^h*ADP-`KiYVxZ9QkELFm?L<;Y5Ch3d1k3dujU_%QKgdJa|aT4 z+6U_BflnAoSVIX#9y;{$HCuWOKu{M=(MlZ)>9t54vX@GQ!}o~zGB8{==T_MXigYJ( zueKN9i@=SfyO4yMzDP{jXcJz?wCf}GzUfv_xBRbXB-vvX(%ty2=pOv-Mq_`1H1ybm zc9geNx&Y;C&<~IfRGBx5)$MG{SB`aq{sy6OFaBaH%+cH(yHDt$Yb3p}bl0nH&ySm+ cklqN;A$k-3%2r?QiQJDDMQ_I6`bh8p0IJ8jApigX diff --git a/libs/network/doc/html/.doctrees/in_depth/http_client_tags.doctree b/libs/network/doc/html/.doctrees/in_depth/http_client_tags.doctree deleted file mode 100644 index b15c2e453377b8d1d63ef2ed4a29670e87db5c4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9826 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 diff --git a/libs/network/doc/html/.doctrees/in_depth/message.doctree b/libs/network/doc/html/.doctrees/in_depth/message.doctree deleted file mode 100644 index cb062fba4e70656eb4672a6f80b9337d17fc48c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52801 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 diff --git a/libs/network/doc/html/.doctrees/index.doctree b/libs/network/doc/html/.doctrees/index.doctree deleted file mode 100644 index 7a6a470af906e77f8a2afc87d24b4c78bfe72448..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21893 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 diff --git a/libs/network/doc/html/.doctrees/reference.doctree b/libs/network/doc/html/.doctrees/reference.doctree deleted file mode 100644 index b17e43bb68c11a234bec1237292a9097c8666b2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4509 zcmd5=XLuY}6}4qaTP(?v9NTdmhaSrhUW54qRmrH zpx{1j6$5NIJ9x%Qvmp<{$a9)NyGYyW`(UQZBoAfP=9X8zD8pY?n?W$;apgLVD*j{@ zpJ)B>XcZZ%_Ajl3Qqh?=oS^M7-J!v9%4%yUXa^fk{ihNuT1tgZBT~Tmjxp^lvvnG( zvkaDRSk0rbCFyK@v7=^F7Yc zoy36HXhe;bF-zXm87$JBf#sf@vhThB(_0XBl+YvX~H)T%2pr-9P}5svsw z!@`lJK5sJ7rVnIE`6VTIY5$c6OTAE!vOAsvdgP@BwikF-U z#bKRTjpF^w;==lkx3l=@Qe^93Ob^iD-`<=9)Ca&E86Xqgie=kr;SacHJ6_xDf+Izm z0edcs>2e*w1khcTF{)`h8RtX)}VIatzNqrMIXkn!ZftQC6nz=fm~XBFzI zdJzW}*^vBZ`yI>i>I3*Cn4?3GIE2pDYXWxzaM4i7X8(QIU)?8`MD2!^ENb zaN^?>ER)I8a+GL&tGGZtTRcaDxNu)((LH)wVt<-ua+bEqw$gFe+YXs%qVZvtSNBgte^6-otW zTA1kClk|vMee>$yLrxJ#7rpKz#kKmDQyq|j?@3PApQJ~g@`|+D(eaaXg0tZ)kVh@B zku0>9;zt{2BS%Xh4<%>yOqhM57)#sb)qBp#{d8bh{Tg_b8%_+MpL=dK?>H%;WGgOC)jPI4MtU(G>+A%6hcJZPPt8T4wFms}|nY)P+KGPtxtA3Yi+;A+bStBdqnpI#T!>&tAi#|Tpo zeL8AMZ-5&cVcHLE%;vg?W1!b+dSi`^gsmoyVn~ldm)^v-X)#S#tIGGWEI3@XDt_38 z#5!)3-pmRhLX&IL^p<&y_dHk}=On$g#>OOs3N`v2Jr78F8|aL}u*93UvmveKIeG^h zbuF(QVKcyao6|el04l?~Si!b1#44*3(7UyV3ASd!8G6sm02@IR*fzX$UwALp2VuD? zJMg}lAvT&hkqx)+uZat4>`WeperO_eKk0z!SAj{!MczKZ#&uK@uLxY|B1-xo8?t#L zYSV{mY@DN(>AcQCCbg7pAsG!@+nmylW%M6;`PP9H@|HrP=o zF#F1q^f6$C{^ocsKRfnu92?WURJUx{;#P+~QDd7l?z-COq?u40{8gMji9X1Ksa@xt zZ_}sP1n)Z7u^{e9X4rfh*bFy)ujRDqGg+=cxMPlVlpoS(VY%u0)=`tAE4wC!h7g+@ zi1N94wjGgl`t@cp>!u7eR-a#B>$rD}zEI2J3M7wg#L;o-iyFRe;DcnzXz5w5q%WbW zXiTsFcbRy{`HE4ZQ7m zOH)MO?4A4;+hE#`v>Jdh!{pl-9w6QTmpNVf4oY)DSq*d6u~ELiJCkQ)%Q-~fV|jLH zYX6}F2M^NsS+2Ly{($ZKf0w- zksU0{CPi4BCH)k=NmHe-@1L<9nZ9RdXDh*+626z{+vdlrI4P_2bKP4o$#+fRw1ta5 zMZZ8v_PsX!lAXC6O>?=3ekE>YW4hj%izxn@4PXWP4V=Z~p_isC(Z5|_+fteGba#-z zSqb#Z{g3FPm*Q%FERa9ZhrOU%3s`?}r@# diff --git a/libs/network/doc/html/.doctrees/reference/http_client.doctree b/libs/network/doc/html/.doctrees/reference/http_client.doctree deleted file mode 100644 index 5002cccb1a0eabe4e632ac7810f2be12c279abb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 106074 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°Kke;_lZ?oIh^cN?N(03b^z`P9EVMQ>Mm6m39(GGV7PLiHiBHu|*frmpQ`OT(<*rUP28H6X- z#6&)s(o^CBPh$Wt6L*}54l!C_Xx6a?@bf*TXF4{rW~R+dV7c_{fcVMJp|;Fxhmb4% z0;>PgE&U3j(_x;_jY?~3O(6K?Q~EW)o^wmT5e;i{!fli7>(8ajXgo^K!!$3rrQZso zOoQ7cE&BehzQkZ{k^1+>yQ{8I`U9l+qg(ouC+rLK?vC*uyV8sB#MabgijJ|}vXOaF z>Cd41l3V(V2sv70Z2(jOsRi3`Hu7b+^jA;Bn%T&|)hJu~d&l~E9)3!79{wMkmi%XK zeNIcB=DF@GdRp>TxAd9_DO33EdJ6vle+vI~i1M;&%s4;!Mh!bNKk1Wv6P604^DkKA zEw}VG80CcKtJQwy9k=wZ@Sg$x2P0yZ!MvHrPA)@~ZpH7?w=635_7<1Piik|TVdX%2 zcU0vp`u9wwrSzU9G5hI%he>>fF@hR{$q5L(VwkH{K<$iE)T&5awHp44z9P{()HgVX zVy3`4ITaIAs{>);DQXR3kJZ?zb72-wQ?B>4w3rowmKK?zZ)xd9t;m?QfoZWM{)NL~ zouI67WWh!H@6Nrt^Oeqlp8ihLiV%Bpa;i>svL7GxjEPK<8+Yhfr$%};4)UV%sqrGW z%U+G}fcYEh{M5lH;OV{P z;$*l!VpUl%!lV-&yfz}%O%G?b%%qf68FE+x%&Hc(5vW!RDJL~RZA?z}OC}e3*4#vp zT34_nn}R5eu^AFqZB7y5juy`m3(y{p@%cER5*jMC3rw<|S%^qZqc{7@V&*lczMHgH zHs<>K_p2)Hc&@mGkaOsPj_r4jIGYpUVi$Wx*%Cl7%JRsfwgN76-x`Ulw!vS|5k$|> zrT~+g*_cWq8!f=L#G9b;Qte3RV=18`K7qQyIS0hzldY)*Z%vtjj;=z1;Jh5e1f;3= zn8sM9r%2OiIFG|%3B#z~!6~S;OE7-Q6#M#%sJ@j(J;#LxHl6IoBJ&cFAcIBd#o3s| z`t((LEgX`wrHG;ilb8~zPI@5X60CGmd+3y60T5W|RB1J+$8xf6lrQA+Xp2BZOPMct z6`-qY#@xB{7j({f>$r2X1 z76xrmvC$O=MMgVz|9@+WnglbT)!7+|t0vPX@&D&GLEkHN6=5_6#%c;J z(`YQSIlLvRb&=MfiEu%e(*(uqc0oQm2-(6D) z8Wi>ch4;~%sbTGkU*7eZyf0f*lc#>6!K2i=`dx z9x4y?_ZP8pCZT>*;UtUwvVF&D#~rT)-M{M21g1)D<@!T=*e%MSzoTZZYBOtl&49ImsVJ1if8DVNAJzg;XCW zk&}EP5b0z-1l2M6L!?uX&&ql#aZl5@40^)KQJpUE2}d~D-Psw$3$kf$yH3#s<9sStZ{_Q~2JHd?a7;z`Bn@(*F^J4j zcXf^2AnGC@LJTphE@{WBA{Ucnm>4MRO9Wo3$ffw=u)cSsHXczGyp!VzJ`S3V_a zYpMa#j#O6lY2d(rK7+(npT%FV3W*4I6>>~Hxq^^a`jC+8b9@NuWYmXTpGQ9H$yLO? zTH~h9hnycM&q0Zac6QzT0%Z-V*4*|LvG+C1Y~?G$Xf}u4^THdb^EGVa@C!$`De7J_JN`=r+Hy|5w-iX9iH<6YO?nDUR z3qW9h5O}{eSlz6--9m0()!bGHsDE{Ect7&%xGlz(&i7;#u6mfHjNCuwLnPfTYv?+)PcjP07l;vL(A;*DQ2(s}w}w&s9db~Ie~-jfe;|#xV_1kN zsD7-09cxfU^+&#QjG})c+KU=Zd;g#L5R@a~c#6J+d@A}E;=ZhLQ>#PK1z5jTf0g`% zBb06R{zkYUS)<nY{bYV#`LU(@hfo7edeWLwqd z4dhdsH;MZ%jhk8v+RVz9Gb+!CDfO0sB^+U3EA=+PgVc>u?+9>f9jSNm8oIrQ#8v+$ zfw*Jnix2_bWV79B@OU)_2TM#zvR0{8_#)`Y6**QIQ>!8q&bS&9SFMh}z9X-}hoH>W z8aGz*9aFu=5r4dmzh(r!uo72|NxtV_YvI9FYZJv(&vp1v&tF&x{<@M%MOqI(u;@x~ zy_rGp6u{DUPhMebKv``dun9-F*u}CTae^$G+ins18ws%9)KEunW8|T1HbLU5O-Uv0 z7$zc4plm!XHzWM!8eaQdoDV?}5{{>30{PT(3*v66aXC=z>caYHZ&#PvN?;O>P`9<) zny^9AM!RhUSc35+ez`dIr8aH(mD&q`DgYzIf0m5UagRx~f zoL0pIGya&-o{Yo>dV9lxhNPSbG;Fu9`|l@s+^{I*Wx($i6Gt?Pl1?zAfK65)CyoBWMjxL0o2c z_Gq}_DN8Qe&Ep&7< z=(SJ#5OtbH)irNlKGe(WwNLv=zE^WwiNC*%KRp6pSc$$fB$f7QCVseT7QuB#pTS{+ zthe)~N6i+?fF?iA_=3b5|z1Jn*e4vcj$5?38U8ga+45K$tkVH@EO z)$rOv?R*FdfJt?{7a8VADjLqk4_D12c)Yf4I!s^^j!?ICJDjjV(nh!W0xWIQ0{n1Q z2Vvt5Nx{*M2*ph}B87-`q@-5cBquFlkfV@bS{i@7wn@nQeiqs`9Zj5Ld>n9J$cLch zRihk>d>W;bxLq1I)de3ORolc;#okoC$1{eLDm+qF)>BKE?via>axlfOgwjNbz_y*! zWFM5)*twgTdX{_T$fh!20o(T=aaET5;+$1qIs9M&F}rE77Ln^>!?mu#$}uBo8%;s{ zD3AP_2Ft+rU1dnsPo-cOF)}lPN>kSH2!V&tmqa9D^pm5D? z_Xy<^1X%AbwLkLStl_m~PT@n4dBX8DI~DoV>@?z@ zu5nWd)XAumhMlr>@F4oRW$ zI5!kG;fP#fsPiOk)%SnM`IkDe)F%J|qn(e$RTto|*O&=I-v>h*vriJ|LLUe6T*QZ< zE>*)_jC>mI65?K}aZ`;j+QjJ)Nj{ClRi7bZd?bh{TT#n27M~^h6$V{~tfq zgputHw-7BTWpmrNgvD0{SkLcf$nq9MVxD}}{qIPMmxgd_BA74IQ*khoFtUICVdRUly zXv5do`l{VW_Wr1cgjd25DQ)xqh&+QL8uLCZz^yAso*#oYEd3KCu6l%0#2q7~m?PkR z^@Ec~iTRku)Q+a3@WzYyTsN^6t+C9+|)Um(I6~i6@ehO!5;rRT zQGlh={s})^^&(;84oRWX{5cdi;fNe!p_e4BskDE=8yMwfB(C}^{(6;G7z|x$|3;j@ z`#9kL4?YBCuNvl`$fsdmA?~XhH#OT-T0I{kS7R(v#Xd}<sh;6PU_Z z0E9Zu1GzEWL4uaPr%}Bo3=)orX4~|2G78FNZ2E=(x2`}T-ULC|^j}C^^%hyj9V3}2 z9&oh!>iIS?-_e-b<=*8(P=jjqd{6Q{m;E>K$Ka|UU79GFRrpYkFRa8fRz*HbW;Oi4 zysXAeZHSUd_by8hmOH(wl+7x&hCnAA;bWV5EU|)2n%jOT9L5PwYZS%t$c4?;MB=I# z>BJqwMnnqO%+qu&!mq92wWZeKLr{o><7v7s@~P>1#9d$G*3KbpATXG{m4tVK>BB7> z5;jQM=(mvoOV!*MKU}p5VKGN5uTcP-@;Qi`a6}3*&t{TZa|oN`83u_Xaa96;y^1O1 zhpw1g5NAst2i&*fLp^uTC|e_+M%jkANsXJDkK!NIxLNy(oE*t78jSVBS9oBqwuddN zZG|1?b|tawJArJ2QX2biC%~;MO{DEX9`@b=3Feb2NZc`Uicta%Sgo}9g&X5!ZA0xu zIC(L)!nIu0;9=6Z6Y=D#N%)JxOdTVwo`302GTn`n!rq=_>@Ae&rN_GcXR=%tv=fdM z^Hf&#I7~0@2r1)~%aSaE8UM^;i`p5CVC6$Gn`v8lGWpkA`B87@&J@9GUHS4gf)7mI zgv3?5P^!3NgceiLRsf5~9L!~}0%TYYICT8NXzR;71`y`v1EE}48SkR|n8q3Et zS2R_(VwoLQ`^3zT#^7>H1FpBsPK+h>zsB16&_HH&RNBxjqt%v{zVwo8r=A4R2hLhr zaICV}(ozN8uVG@9e8>o-VM0@-ufM5paEgp{Ce*`vtus!&vY>0WloI97$rFR*K@I8c$Pzp7*T$KZC8@)_+hxW_%mYX&wP z@1w%~Zx^oG9VLOPxd#$g?J0$7PM1nGWWB_+05_NKMUcI#AhnyzTbN-rHfkTd=~$Z= zews^N)ik`~=JI{AwyoTN^yoU{DBXQLMq!M=w6A^`GV7q=GK@QR&sX1tyWC*G& zQE+p)IdoD^E={Yv+|Wy&#u9;DoH2|_F}TJ}x(IWvv*~G%HZCc^PW5a7CwkCGD4cfm zG5j9H-#3blrEmb@(!*eZ_*IzYhOVP!U`nH~w#4f<-U&gCIk#%WJ9 zF#3jHO%XG9SajffkYrEBpugIa)s`yv(;rM@*O%(^p4%KkfY#J`W^C~RDGk*Ix!_fY zB5_qag^YjDgoM4trOiC$9Ev*Eh${O}ESHiRHji1svd}anv^@;@s9{&E#m0SKZVxcn6~`MB=JrNkAJ-*x5!qV7ZJIRy9?p=GjG_Y0WdW;^^0! zt(#mjhKpPXUeh#)-FlcAZMQ7)VK-TN^BWbl2rpr{#YkM0BL!_ZVQ3pp&R2#tKq{{( zIHa&dQ{cgbFlb*X^pRfp+DptngLy6Zj4XT&iC?AZ4n}Z(OxM!lHQJurG)&;t9ZlZl z-}&yw#khlPpt})g@0+U8pkNvo@P2gS4i2k7^`pFks4?0o?~h)~Tm&|X=tE-z)enK; zJ|!fsQlh&FhNMs#1vnY>`G`=;1gTgc)o8?7B;zo+@Bp)eE?nIjyj1eNlO)SX@ib1NLcpO)O`R`z2}d~E!}$w{A7t0u_BT=flLFj2Jnahs z2fZ&s;;M^DG42?KA|}1OX1BcOpqCKkQjL;|qd=`TJHpO5vW+`HdWsHuf4on0KB^QDVqD!#@uqZ;3&ZP*(#De)$C?uDS+)z4|Cpgw@9{ z67owvBt*NG4?(qz1t8jW$Y*{0GI776aZ@i2T_6AFTvIG(w=37v4neauxBWwk^9E+N zrVd(xMp8F|C<^-~B(A!d9O5gK1KeK9*oHB;&?P3mhT^>s~Zc(ht2zd_`?4RV;0 z_b@M7$$OC>RPvj62PN-Af}H{+pp_JMwvw{p2^Z^f?{j?;DjKI& zz3&q90fTuMxUKMJTO8qgWDsqm2ayjOwS)f(?KIT)K^TVq0TP_fq7>TDqPT5n^t;@# z{1733q#^yCJlgBcP9Fcjo7aUuOq?GZoLMwtSg0f?riKhM51KuF)-X}#Psk-`$>z4# zyx#5+0q}aeM=9B3MzS48ESdT#P~a(|S)h}9oW#NeK!tun;H8uM8Gg9xNy5e*QiB^j z6^e`HZ9xP2(~`EPCP2>N?WdjrG|Ki_B(C~7{(60zF!#&WiZy>h$Y1)9kmy%@2x?;# zheW?dKKr)ki2ECj%SI#^Yt|H=dR`E56igCph3*9s2=Z%gdtKE3tpMwWZD``Z10Xd2 zJrbM@BT1YL6KrgUKmz5dfAwsp=c<1s%AYh!>as|O=*L3Kkghrp_qc%?5ciUar%}dv7dlrYpH2!Cd)_j2aQ?y-2a^jrXSK`+pVy z&-Y)Vs(&%6M*DtHRrNAZU`R1l!1w=3VqpTH^!_IB;`@Kc4{YTiY}_F=c-lWhaTAV+ zDTV)vq|v@#E2VlB(C~oQkhtn~{Plcan1}iP8-#q*hlE7`;zLjyqc|jb3;Fc@w~70X z#!VIAG(q=Vx!$1O6-g3~=wMf-_b5?Nf#$Y1#h(8b;MV_!v}15!5@oXr5?8H?zbG5W zs34|{uAQq9Wp#~`+9Gl+SmO*xSau zJe{BceLYF_P1j*PWt6;Xec-`2H$dX54e{4&H$;rEc4H$#ZtO!swoUjD)XSIvvTcfd zwi}xfcXN%K`g26P@jvUGVmiCIiqjB5yEV7HEd`ojroPuVtaV*3E2%9&6~(;NDjf&_TSg z^PLu0!w(5}(4=-Gshu>b;n8Z9Y#{PPgB+&hB<4jcxij*EN>0W*C^-d*s~Sl_D=F-3 zC5IUjHfcJ$kj_+1XZRtZRff9~b2o#z(uRc1WDsqm-H{I)t@t6~9v}=u?}-G5SSf`z zv?y*H+8Yw?O~@7v=?@9D#iE9U`w(ZE!Fgt+9g76NnCZl^9K_MQ%2}Tc;4XYz!I0z$ za@hmr-z%>Hc$rm8i(EdB$y=PC#!PKj7jC!$G0>5~n)@VX@{6tbxRuGQIh!ccvG|l; zWr~oI*dAZUlLOVqO|d=*+EmO`vXv=di;o>gPRi~}&4Z=e+`h^xUO&8_KzRLdE6ugP zG1uf#noCUwBI>9ZJiexm&wrZB-}|gVYa1aC^&ufwJ0I%hqW+L;4)WOn&n50W zjhng=X8mwEmgsKxpodYDpyJK#V^)#kIGnkysrXQOs`-FI0W3g*gUUpS4~+uP5<{9U z?g%0tX%O||omssYs!obO$t@`LAGpxeMS-J`4}aPg@()WWGbRH1 zjs$YDZN#()YN19tmPnl%$p)xZwTobB3(T|{qD(hm2g{Pt0xfhL=EZptGcR1^{Xy%K5lU2ma`EJ*re^P z9VdT?8p7m3{6H?caIcq%UdZJZ_L}wCp;kz00Bcqm@W}}C>7EvZ3L~GBj}5bs%lkPa zruR-_sRrG!xqZAJGn_0CUd(U`UEx&Y3VYDgJp*-G3+I8caGfit(?9~1NL(urJ)BPB zp%S6FK0^>BdN>n5Ty++K;||H8R-GM+oNz>LY3Re!>ww;H>RiD6L zFOCpl{Mu&45$6-~0v{3*ev%JC^^7GT;f2U&9B~nGFV?sz7q#xA>NDg%h?QP_q%`fw z=n|Gquqd0`S7&5&DRYO5j4lHdTeSAoA?)er&wssVC#WOS8Ax|&E|&`34_8VF0(YY6s53(N{8 zzQotj%3O+lG1zl;R;rV>~8o5I8vcZkU7dQIa7(zsF67&Z5lB(C}S4K~( z*3G|7ir+C5!)Cg^%e-g&B0p@9!<76n^P-jf3G#zVK7w~p@=+wNdW;0LlEThbvVJ5+T z(1sSpZ9{v*j$aV+mm1O^c4&u)8g~4OIKMVHFO4$R)U#@xGOH$&dkYZBOBBkznP$q3 znbl2~JeBWF`e6oc*y(`aq@PS4)=m0>5N8BsM2dV&@M)mhReDSg7J;g~rTK_x{W%&V zSm4d=Yx~jqZv?`N)}N;ZUoaMId0!S(zXch1xs*yEV*ec(gi3`l;`f3e5&IwT!&QGI zaNHp|`0$@XkrR%{E>XyflD4K~s4?=0-7b9fXHbB%zJ$b8f5BfbG!cP(XSJgCmkIe- z9}-gjjSoQ;jWrJH@Lz`Dr~>1+h!j*;Qx}(f8~Jd_ZK3b5ZG?IU zz|ikqB(8dolyy@n0{Y$ua&}<+Z;do&4MAE3f8nw=K&`5)5^OaK%nFQG=j&)?)<8bE zdx7y-JVM-YNbspz;%ae)i7l=K#^DW~T2s@Ak;Yn@1_R@8_*!MwCe}IzD-am3%h%D$ ztcQF{nf37qWi~*9g?Hj=WrT^XjBH6CWdp4?(!@6=@l7=G)N&B=)sN~2HzkM73R#R9z8TVmpm+C`wL@MaeqmEW!3eDT!JoM2D^w1Vy&5WFNv|{8lauI`nSJ>> zTABTjZ*~5yc!aq7Bf+;hiK{z*VPcCrL?kmq)0jybvowvNBN$m$PX&H5bvPmu}ECiNdj6)VP`8@KT~GMM5;^ENs~^urV}z# zX5-YVmmy}4!5r00*+}CoX$Z4q5N)GH$cK$aF;g}&?rJdz!_YY-uF6viZD>*4HncZW z<`8m;hV*C3bh8pQLg*zAksrKmYYeVd2H&G>HwZ1w_kfFct+37)!g*Xe*Nv;`xMdCy>2j=Gl#fU1>9<7#g^YY78_W9$QwsQA zz;yEycO3N&m?PKbt0r2sUX7`5gTb1AT7QJQ52tp3n!z4Ee6MY(T|SW8<919`fP^ES6o~iBWDqJ9 zB8ZA0NW4FQAK2AGV0_S3UZdVE<8u%hA9R&`pdTmch-ddgL|22LfC_dz5?7sozg|=# z0{IopitOn>OsJ8q^YKs(_9mk)_A_$gP zbNi-@<4ZQ&@F4X)45?7s1Qo8#R5&YT({Oy5{4UfaN=IR1X@sp%@ zp{6)u>{>HiL>dWw~k#EdUPeNUWT$tfKGc%15vA)R ztE=!H3SEuFRbL+h`x(1ZN@{34Z^(Fk3V0eX*uQlGaWOAKhQuj%l zFEb8*|o1nk(Tx9eY`S#c#vZ%fR}YtKM>v zv9AQXwV`yZI;;JDLuqrtGD2xY$@Og;PLqr*l#c1{fuVGAxkKp~qx_ms8smfI3Z-L1 zgwnUsL4!5CxqUl7l)hacyiocMdi9;gt4BPEK8#nZyFd^%O6p7?sQwyRh02FM`Rjrp zLG?HA!&P?^IPQ=f`m%dMk?|!JK?C}|l8$&1eMlwLH$e+6-+f4MX$t;&EuVIqG1cr>)4mXbds z@{&e$PX&{4BkP>XOUo28wu!`SlHQ0*3XIBA%psbrt?eE`IV*Qv!+;Q><_V4Mj!*9qS+D6YKA2u4roao57s~12RhW;%QSN)DsXhVzQ zwxMStnl?)c?gRu2$15S0~FgG|QTi`THVY>ltIo zWSn7AH!>g3jA*N^iF{ZMrZ6M(7+#?K*Fxf|wTZ3EUl`ful4f*;4?fg7n*F+Dzn*5# zk@*T|<(n~TWWGLS*ucne3Dk`knGXze$ympK{Eo2=DRi*Zo7;EvM{64igg08-n3`^4 zG~HpOnyO8K0W*rB0>iP*NGntTL`0hlf(*yv_<`?Q5jgIU9ELYrgd!mN%HEhW{P zEJF7*+2x_O0x9rLZAtJ2x?;#hd|pQpX06ViMxZw zP4&T$b>pp-=?rQ|5hUS=3U-{n69o#&Pj`Uy4FcWzUyybp7^7$=A#v5tlrioY6~vM# z9Trgi1%Q)@GDV{daou#kx4a6?A_f%tV z*^@hbQ&?kfwJUJpnNo0preZfz4HX5>*(?asRP2r)uG)jZafjqkGxrQdPBV zQ8ew~H;J;=#gg zZg2AY;Kc&r^}#t>D{rhNpHLV{A8f3p9N@u)#pHqhcL^zmih-u4R}iHC?ZXdO6$l)6 zNDdBK3`I^jBCNDj{gSq(c7n9Sh3ay~10}0UK!NKiB(5ssuh;jA1itH80egjz13o0g zTFQr@PDXu*wG8>}dygaTpvL_W-Yq7&+r8)U)Fh~Qb9*Cu&l8wC+zlEh0tyA-BEe2B zq6~k7h8WWHZzmD)WP_+jlcvEN?ryPDh!hk*;Rtncr&A>z>Gt~501Q1&N8+k8@Yi!B z5zu!ekh8bfpQ(|~BGTC!$p%0jvQ#~XVCPz3*7o}I_&QpdPaq%My@P`1;}POsfCQJ? z5LY+3!o(I=X8*$P3R4$q8W)kq#hS*@H)vSOTtci%4OU=#{bhU|t<2@fx0Lx59-+*q zk+|wJ#MR0O6I+?>pp0HG@5wGo5Aa&{Q6(o42COC>4G%PhgM-rbmBt~|F z##Mxl*8XbbLwkujhPYeo3xI-Au0i6eFOsA-iil(z#p_hRM96D3q~ED(U7|YG>xlDZ zgL6mp*5#U^u{6Ck1GW#-<(>7X9@v$H9%SSUd(HX856{(NUtysJy|B4`4?keIULd@H z;Rbrbjm8sphi{HFV5so~brUF{*%QYKgbp{8cBnvTtZxwn2_3$QANY(8f#VLzp^v^T z6glCD*wWVDE~!2`HnPycl3LvXWK^{~k+|wE{Po&?k;SiSRuJ(uLVn$cgn-}RLr^S|#NjlQ7=s^HOkMARK)erF3 zs~RGpUo}9^4vT)Mkscz_k2I1E0GnH?K1{G5TVPgL^b@|0R^}1pgS!_NJ&H$&`xp{e z{gk-6(-bDQxI=_Rk82uFkjBq6jiJLLOPME$^_0O1ghfyDb+j_iAm38vSv*3SpCfVA zFNmv^5hk`WBMpmwsR{my1b?jwjv_3w)O?O4eq%_CEG&AS(9znzfP82_Ojz_=K*1=# zL*lC6lcY9^h-4dOIWHFbgQovS(*KjDzx)@AStfgt6#r}}hRt!k#Jp$&{RR0jP|ZZ% z%XkNK{1pkV$sqx44q<1TWB7@@ziU$eAgO<9QX`tkvy^;=$gdjYFeP7OUbK?0BR{C* z8+ZpL-$a5>_>h2BQrOu_)=%Wworii$(|Mb8-qCbICh}~Y+NSDVV!mfEM>~->;;ljd zCWB}jjX}Et8;x!vZv@=cDj*C)uZqM~tKqNL+Kb}0p}jH3>V#ZFL;7P5?GRC8j^bDWixqt@~8|ckUG%Pg?}byScr^57pNc2rpER(SU0i1MdBP45-!y75KQ6Ng!Nb zhx9{*LJ+a8AV|2r9)7rLeFDcFl0!7SK`3&<5z!?E*-+BflngUQ9Io3%uQmb!c%sN2H*-xcUa~#Ur_!^Rn#Ry~aahXi zPOLo)77{f1yp~axt@h;WXl3?7zNO6Gc!V-7NU+*YT&;{Sv6YdH2cx_ZLrv4f_a*WD zH1XxURZOcN)d{we!~TZD6Qi4WvsyyE4$`SVYp(Y7PLq5X`^Nf-x&O@@#-_8-gZ|#! zKHcx_X9$GX+s~w@%rc%bk9B8x`pjrgQL{lDt&jL*AP6{sY(r&5n|YuhNDy!kez@vj z0>>SaL&ZKM6glCDM$+WAN!pq^6e_Jqh18*-ix#3CiL2(|uh%+@n0^ak#RhW;InRfL z?1%9osJO8aWIr7Fj1A@!cY((J=;kr|7Lotv&0|uecC^#M0t%LAbNjxGc8*}~@(S(WHi*N{gWjwv;@T$fp_PFeOiCUbK>DAU~+& znRo{!&q9LF^^ky8QrOu_)=#Bb``eQ098Kq3(m7Al37JZ>acb531ToJyn4_9X8`<4o z`jp)TWDsqmPa+>S8pTxF$hfNuK^TU<2#KpMrWD%HqPT5nZz}B)LSCvN{i!tV5K*Iu z%ZPKi!TH<>M-lZG&D7oj;axlyxsSN^vV`i&`A7GTd4uQC+&lIu7GKaso7)fc#{-`h z2yZ;_8J78HO_`5$_Aj)|)fJ$EYAJ3M2>h=k{ZOG0K739PB=G+{ez@u?0>>SaL-2fc zD00FP(Ixu$f}|sz{R@#?T>}EBTwg?j%WUx1i%3Kszj9d-{&WD7MU*OOOy{GjlI|_b=XdMx6~W$_<+@kIzoJjd%nspiWC;Wdths#_ zL-?DR+nVY?9JEr(N8Jn#aJpNNxazB97hieoP%Xvr%uwJ~GQG_(mB2On%CXxC6||Ek zC$;YmQ5!>p8uPKiZ;W2$Tw!FC!xNDT$tg0B-p<}QrZk6f^CMdgU#R3$loRM z0~$HvV6#=m-y`^g20ZFu^Y@t_t=12a549v-M9W#da_onA4}~5=;;J8!h*n70+6v7E z<_fvLQ$4I%{+KL(qFL4)Y&N%1@lK;rUk_UA8IO?3qlQV{!RE)95pA`fA|F;;1G@9l zQS~@pz+6utan;X=t<5EjY;#HEy24vO^`vJ16xlzm*{`%K$FvVd#hA}fhG&foZuFI7 zHCsfziRcmEI2IXf%4XAQi22clW4+z!%#tDQ?zL`(`2Ta^*w5*n!TR0YewZIa|3V0cS2o{1_vk}U|s__X>p=%H1T3KNK?pChMG@z5dvMi3;LejYzu^#Xz84#^=< z{cR|6!Vx8;KmVPit*KUMG5j?8kUFT}gA`i5KOn)U!tmFNt3@)u)wAO2KN0dp9}?pJ znGZo-jaeY>OUP$j{TJfCtZ`F&hg~=JQKL{;g3G+4rRl_H2g77uw1#OUUgov~p zuS*)31$_hWpv0RY}G zZ!kwS3p%pfzVujVO)`kKQ4IO8(I{p?N5);P1;Q}&+DKfr4yDjxv?y*HTKeD>ao5NJ<+~M6iuG zW+blKo!Hu3!pJt4G@~p00x-3QX1^!d@1@zVw7bT%4@M2i_ofUjMuvkUhc7+Z z-fSh?*T zzm2PdC`V|N)Si)RmO+z8?_aaNnG|M>$^7VeF1<9%S!u6$BToIs{4XYXLuJghd=O9l z%65S=cKDiF(hEb%ZrUSh*!mJa%CD-j>%p(8N3k?MW=doK5m(jd(ojc(7-W-j4%Fad z$R<=ac>6*@kQ#g}e&Dlc1dcl-2gSNVkrR$+AT>BGX=`fQ2y1YZ0;(Hy;Mo}@uIj;G zuVRZ>VHG<|$VEORWL?aMprXbmkTr*VR_r`+9gUlMZP<$aKkCbH7qOz4Ubl<17EdAAmc+;_-{z%}Ia(_0HUzE?Ni|{s`+jXJ37(a3w zqz7`%?Z@~X;w7ZA7ua2jU#_~0&v6b9XZGgt#lR`^JxZ4gfrKM+89}CrAfFU_8jPTWa9}$ypm9#(@^gDg z5r#onda9(<=Vlgl>9C}O5$ zFr4DMWN{Hj5E?3(E%fvk^My*eF(xsJ2yEg2FGjhB%<9Bz?_%5jMalJs5?{iDtF9$N zJT+lN(y8kJ4$h*P;aoO``7#MbasG-RNCa{{ez@ue0>>SaLm}T7ikxsnMzQKmlD4Mg zH2ly8R5t?>C4LJMY$d^8uQ3+Je)X{i54RHXHXjnw+|GxfDn@Haa|iMnW86vHyEJZU zM@Toa(oV$x1LfM2fq9-rgf7e1dKI>mO2CGzjpwLM;BBkA2e4m(>Sf;tC z^7?^bv<^l3hk$_D9zuc*9V8fc3_p>NW}^cN-8c1rhhF*@dd%{7k?yyC;JJUVD* z6y&R|*awz94lStA;Br33QZ8pYrU3c3ut;X*<@cj zql&Vz5?jrR)o;#1vcB|^Y|@Kx%+3Hvo=unYS+q{Y*zLd=+A^`Uf)2&LetfsKyEluSHidsWu=;7172np*uMAD|DYM_~|DqQ{Wnz8G33{*iS| z4S|bE(_w}skJCm^7#qn_!$@k7bQnJ)PS7tkap^aoL_XTOBuEZdCDl`aMS(qy#8uCb zuns&$Jiq4zwJSi)d=d47Sbf#AT9KbqkzZ&eoOIY0aJ^)u7ijxA*$3*>41~m6!7@ z2ixa?4NrOj3HI2K8TQ-=No=h_!v52dmJ*8oj!?hXP^s;)R|S3H06H}3&b-st$rEBp z{6kmQo6qEH^Y8)no|YCMNnf!e(IyhQg})nw&cx&iZj3L7s|F3le)+z8Q8i4QoK)$; z;_T!kqK%>g2@()Fnws!I^kgopkVzQtaKa3^PrC7NK}({4B%w}21#yd}1Ynzzd?Qoi z%^xgRvV8_fdc8&;F25+*u&tKEekcA4my%wi)tR-=r6uFV6a(VriI= zt5o`1nwm2G{Znx7EaIWY#psC#x*O3qH%*v0xke#T%KK+~K!e3|;>3MwyxJLO#vp$X zFLKtz(>YEIe|b$qX6K!qweaAqEl^DhbBzmg+V}N9vfz9DAAt_9|HubF@4qqDR;*O*pDIw)A5Z zfJP$STP)b&ZN7k3A>AV|gTU)47Ivy&08yw&;9JOMdt&GZOi-MzhO{~oZd5OWZ%u8< zF{1q|#i{QDPV;NS-vqJsKQ8az!4^jS2NG=cqLgvRC?S@t={#N`)TQZITn@(KN6>jLS%Z(F4 z+Be{lCYt45-5#@z^}Mc@-)!lAS~NFy0YcnDM^j$kT(7)VxoW_uX81KJkI^>6XZnu! zI?&;GAC+dc^Zn11rg{UGN8Ni933ez-DVhdN>RGixdyDyR>-lLQV;I;3b~fQzwte?PwK9nzk?Luu;UvrB!q zdY2Fwp&NPCdw2nD|Bb{|W3Y<`+WNU*A!?ct+A7G!M+*(iXhvwO5ho~@CN3ki)sYWp zPeQ2Snl7~lU?K2WB(54q!n(f^@lZUuhFl2(x284$wNO*5@tVY%BoWgjqQPs8uojWl zHb_&!W7H)lW7c&@Alf49A|E7x(3bRS6TInIFE0Z#nLom0Q?XE1o8m3!J2%6R+}bkV*|wFp zNU%AH$aH5MzwqHbKI>(Xg9C)N5d1`L8+(#-OTt@1=t<5hgRKNfFNp-{ZH+8gX&WTC zK#qjsj%MPBG}UUpEkPz|kdyGm;PRvn# z-Ih;GwFB^BmK~Ac-Z>JBFE24v8?l{fI~quGq9LhwI@a1mYQ-ex2Nl$Wq@CCq`6y9Y z&b5)%WW0ymQ;@i-kwmo93tQXicLJuFwHeO%s!0>wg+!-nqN!03@C_id83S@aH*buZ|PloB2Mdd$Yf$wmb53CxFZzB(tYa2Dp3i;Uw1HNp+*Ugd?2AetQ${ z6cA~_FI;cO=Xh!^%ra>bZp@oBDLKX12a#MQpGj8Iiy3ieau`_4Gz%u%b+;w+%UMja zVCPdFK{%#kgdJh8M9&C6wu0 zibW1|4xN2zr>N*}7y}Lzg@&)+ist!Ku<;F>q!pcf~{)kYL2}kTBRF9NYA2p~ap;E|26*vls zt3HOmUKJ1#>?&})t^)rh*HA}mIgg>73$>i7|E^3ZUa@gqMLU)NhkHLWn zjS(;e#tU8yfe}?rxE%9?V-tSJOn>gEGy9sgbj#^zC+aL$(A!J-_0IM;+#AJo@E7`4$W|+Q@w{w_ehw$Y)l?0 zv65cFFYEC_B`r(vP+WE~AhJTgq&Gi+ZucP1K(VjWJygIv)vXEW$6ES|JuO|;)dZOi z@P|hnEGQO7eN~v`4Hn7-Xr+g|zw%NQkb;*FAi?HO(v7bGy6`-4EqIx1np#Hc#~JET zLx@4<2i4Yuq`DrD{IDU!33v|`PDJ7=mqhdsLfGnxs;3p2P*F$ekm}=__(>#wvL?=J zpGQfkYLLfakW)zRR6~wO<3c?@_hj2D1{3x6DQVPB6QqvSWptX_2nvPZ1%?s1XL8RD zhyhOrDhwEbrOrS$?06;;SDhtn%$cHU1LV`Q` z@Yl12XyV!8c1ZK#Yk$-wTDME7+htm})Q3}-s+Xlut1hQTpE4S4fYPaJYt^Tb>(!|3 zayz0{9V4~sGlJAHPGuKW2K%#IcSSRuJNBGhXDS9l)#kcmO#t;2`_lPB3XAf#lGBW>fA_~EM03IAN&p?Hwz^L%Do zsIKDgC62I3;cF{kIR(P0tMQzb)nKrerQn1k1`y(3khC=*xVi>!;nQD4f~)cH*Yjx+ z!EYxeGHBJ4i2%Nqz}IPDe~M8z?U)?N^b|7#m3(ixv4G`%Oo(BPzMPkSHKx7{BC*1Pqx33a3Zx7+}8!pc~H~&1|D2>H&G3pd-xEb zGahu7<$Ef*wrz!$um>#&{}AZFGKSo}B==35+l2mOf;_56jE z;J+xTc+j8m!&NU4JkGX-GbZNK!<~C|=PR9+Ouu(NLj6S$6OOP96vE4-5oFoiwz}~9 ztHA4XS3}eP8vs!(e@Eh~e~@I{F-%3)K(Tlx_$T3C(eSzmUgbkjo`mC>;5Fpa1g{hK z4UL<+7+%M{)R@!57)$1v`4MK0iE77+GJ3*z2?H#1E(F80o*w)zW5C8e>ZWne)6{ z6_br;SW{h^M-L+_H`QTaQ+IDMvqaWzgip*Hdlj&A4Qo2tM)jshn{Y(WfZhK^!Gn4l zyT2vytshjS-iCB2?01m3>Rsv)cZ{Y|DuKeT)1p zisXB4vnn2NISx@w%~?GHUs#DJuYr8J%~;}&)3^~eXP~EAbH)o|!V#8%5?qrs>Pv7< z;TIG5sG4KbUkiXR=GsWGv`dn4$1oLH1IF}BurA@()9~7a>+>NfPr~s`umSREf(?ng zk;YA3ZPlD|zAxV^r>BanMCtCLoJ_|uPWHGA0vEhYS7O*cYEG}AI!Il!=N-(J+H|sG z);!tSD5tYjWAb2}udt3t1glZ3rXHDvAZ%^$>(Ry{d%_W|1EsJD)d*_c+{RMaRNz}b z94c-GS>XtqBXL!nTE!isx0G1G5$bDIf|y%qOzjd|@*!xPgyYq!tt8)bsjZ2>jg6m- zz!z5H<=aXs{m}&caMgAMkMouW_7_XC+5U7d_IlO#NZSi)!V#u{65WARfj~ByOyPN5*0MZi_{4H@)TrRi5}GQB?ELY3YM3F6okRI^%!jRVq+S#MR!_3buz4OlB)A?~rMCeL>rv1PEGMQxfOj z3;C##>j1yTUfD)%VSL)0{lvM*8g(d8N^>+Nnp$YvvR(qn z4`3Zvb0H@bm`4Q;(+Z?Mpu+m4hxw=KK)Sv^KAg(T*UIRQWC0)Q%hT(RJ0#!hh>jrs zkv6{gQCO5LtfVd;C8=~oAHxq<9Zm4){@9K~j}g>_BTNHL?Ltxs3fc68(G# z8mAiRmL%VEDMkFUjbDkt7gplu1CmP3T8ba8T1N1AY74Zdj6=EFQy=9XCuj*r7zRpn zkQ9OfH@9sm+>RIc)?uli05BNxL?l>vB*D02Sc;qhLwf3eobV@Ucx}Fu`4E&Q;dttw zf_$ofDsfNKxT$xbz8~RM<2xM8!P+*4j@HO9rq9y^7p6H6!;q4bF4mCo@NBss8-cOr zZH}a?Y-K>nMlT7FV>o}G?k^8;zic|G_jJkf_za#PT!4+S>7LG5Ifst92ZwrqDq(98 z=RSLTl1tOQ12|cd?BKC^o(PKRTi9@?fb6K1tzl_~x!4&dTXt(U6(dxyq-D_oMJvV( z6z%D>PSBX9XwP6~YwD99JkzN&AshVZEF|~>8wHJj5Cw(V#San3K8_lB4#hp!h%0eu zjSrX=T|w}cu+I}%v!W{-f^GPYu~S47|oD`|VLlvG;! z&*29aLJ1z;(%aF^Rf2}^h)Gi0Z(mIcL4nOq$}b3fcuQ|nzXo7%nJ*&2(kThX9m7)O zjA-evCH!?7UYqaBdI=l&v(>x1m3Cp zz!agnQ5Yv25jkMMnZXKT5J_4f@;(vzjj(p z0OVH#e<9MXTe?mwocfNb+dvEEzny&U(0q82Kx1RF({4vvlEbx3xvgdQjx0c%<;0G$ z6>?E`g02iO?-KfsGu+jwf!Nf*9p_Mr!+th z32^KC<@_U1f#DuT;;J8$U)(X`h>E(lB7%^n?k9wLL_?+ShRz3I)2X>EL=Fn*MG(w~ z$ti@WMOI9vdNZebg4DAc=3)g=W>?cm&w`k5HH7qg-<$|N?P^#sA=Jn|R{j^Y+` znmNXw5$Q>Tv@I+fP+gNH-0#t3?T^*4MUt?Tp1hpuw!R&-S_ z;2A3Y7Ky8VM`W#%u(4H=NVvx1)bBOwABg%#jmnAJ8n9a7|3u&y4X|wPupC#)>d(xI zmj5N>L;i8VG!C!+f>%)CWhAcpEAh1o!pv4dHfoA&A(cb@O%wS$iTpzoNezKetJXh> z_KHE%Wuj}F==3VzN9*(&@=citl6oD_Q0NULu6mQmS|MR$E3~CnD6%@Me`!i@k<#0m zQffG?TGiem?z;w8HoSFp)ie^K;d{)E*6`oRhlWz#7OonD7f^H+Bsk8EzuwSAnA(cU zl(bx~x*8!@*O31HJ>5dc;YPVhbq&Id^{M$$3%5t|)bKcFTH>nlc$0gUCxq9OpJN$} z?B_LWF(Swb;kEF~RcrG(9=Z2;9ifqML=@9g@$%GliDvON2Zen;>j^^imge=54J&Mb z#8n%TSlltZL@=1l^g$aDWMd7I8i4uc+NUDTmVaJOg{zZvmxNGC_fFNj{`5+qWY?X9 zU>uc|X$`sMq!-JE)=n1h@MWzHxch7q%2aQI{XJW6N&x+txA!Tu+6=T{u+5QR6`X|Q z{C?c~Bn-X8!lqkFko*>geAIb>EtwxwToaOBXe;ES?CXvcZ;kiRVH+ekAxMJVPnlwo@3Kei`B34k+ zgd>6pmt7>4FmEb;xN28|#~q?49N}!orn@maNUgbTrjTkDU^xZ0JASxo55gK!kYvwL z+=L^H1${3`M-sN|4M2EM3lc1y;;+}t3SaF(IPR;LOZ;QA(+ItoWajI08i zG>HfQk0nk}>#7Yqkxv_Tkwx0Dh%Txc7OGp&6OPDd+d4xsL9Weh2Z*tH1XygH#Sd34 zB5d3tDcE{(C~m?L0R=rLX|$~^`BWaDu(gB4RZH;Kv$b#zu{9=??8B73#Ou>|sT~l5 zEkGbp-^*8*GY|{NaY8`pYa8Y26&Y5_8?&2rpwNSf8C)5h;~_(TQyww7Z%=0QmZh;R zP_AG*xM{9D<8q>WIoFt+Zpim#<ZY9x}teUuQaPc9epRO7mocMEi* zD!^iX56GaC6|hJ{);q;PUf|O&c=$5YM}{7up-V6r{97S$Rhj0EJI4CryzJA06Qj%0 zs(`t`n5qB*wQzvgOEq@tY&2ovUQRDdPMS1l?t)2^#98DLz;b#Kj@Qclfpj;y{!iSs zrx?o~CliqAUcbKNkLOiH-h8#~uHHuPnpHtA2d)9Jbi>jy&IqoS$vZR@$5G@ufAZ(x z1_e&KhvV_XRVNTU{z21F%x^cHCsNEht=ih9?Q@yg$`R~PrKCO%KzPPUNbq?SV#SBW zLY);;A*7Yo`4r-wYH($~!IZt&{xrT0N~!Th(9@BRs=OMo;4kV7JVKl^k^EnKR~ltU zQH2j#XC^a~Ng&Y~f+QfEh|C+J;fNtJ#;}|?IH1rlav0mU^rXA0*drByo1ROzWJK0!4P>~N=RC1@USezw-;99x?+fedTE z-&kr{c}Ql>8VGRgBCzWzqzeP?$iXNJM4Sb^+&XDj1`m|K1cmg3u$M7qV`CFBWw+h} zcrxFZisAmKEl0t*TG7@~(AdF=9g+Z4pc&e>(8A3wdtyX!^ z<@o0>RC&;e@lt(-rlCCON_^GjD*fL(`vvT)nMt3&!WOL3pldWys$eS(N=mtwi5}xt z_jQOztFOnaE;ndyy`d>7WWBW2Isk7}kedvMdiNsvY{+@^^vs;G!V?CfTE#tFwybCY zd=PErrecJ&#aJ<7KDEeU>G=`#|t-k@r-wBEY%F0=@ObRDD)Q%wCWa3$6snY zXm`Y4Qux-^HgNZ4#4GN;qS=4dX3xF-F0z*gn6xisz0&x7P_t+)aqZA4M9|j=O#FTw zA2_O0*xpdH0)D?SW7@uum1FX6@;x(tQ%#qL00#Vi3$MC-8_yWOEOiF_w(Nwzqv^hD z(v57u^1q>(0>-=BX2m}2Phmd*^fZfO*R&y_^_fiO2p;faQ&EN~Afw)RoN6Y%*0m}K zjl@ck?Iyvez#ZFLkX$t<7r?s?T}%{%F|QhwJT>B(Er3e`kkN6Btb(FeMD-8T#2bS9 zF=#+4AEXQt4~BJ<9P3!7bR(l?g~&t`a;qQY{gqHSY2*c~NZ28BEivkmx}VNYK+%z= zhiD|IX|4F4B6s>AIW=A@zOMj-Bgc{}d=jxQKS0J98$ZOWEnFA>U4>f4fK@YOnpn;7rv$fZhCGaIN})woMkRLZAuPW# z&G@x8<6+Z`-M`w+L+CeJ`QO^g&!(oD9zVY$>?~@kO*&g?)hyLKeFP~jyOY)!liwp8 z!{HBj;gFlzTMJ99Ts#~O$8dN8bVB}U3i*>3@@G@X$P>&oK_%Ft&}zv2MGN?=Er1?= z{%Z|6OW49#E$(m3)XdP8$k)!$Sv7z$CFM~hapnevHS%|SS#3G_2fhv0scPv~pYERu z(QmBgtQ|VfQp`rv{sjP-R0q3?4$|XKHmzmZN%a372j#GufUWJ^gC&@uWJ!z6L6Fmx z)djBKlAXB-Yu5jphY-J8w^%!p+A9+>A2D@VfG4Yd53omeKfQk0r5A$RSbU}ef|LL{ z4UN^#tW{LQ_k%*gD|d`ZrKAfLt!JAhupySF0wAQv4LKf7`Q_kxf-4)A+`Lc4Lddua z*=iPA|MdNX6&VXu%6^~esEjORJ6jgMHf`JVh0lu@zIG-W{GV@o2buw5u?R2dPiUii zLxYfzy{z;i76f%ERJVZ|dGxWmogJBy#u~a~_XG#fK^ETdMa;D$)KLbD+K z`APVfZMuI=?u_?TI`Aorg&bY!4a#1Mo@v+|3b?~qM&QB!_c18Tfd)+9XW>0$eV^FJN}Qm0##pwrSS&uwOzl@y1> zr-bUE2i{Rrhj#_s!6BViZ*t~X5;omDc&YOy7(wd2GFb@X9Z+&vEKfTH)@+HUR&f}K z3HM(8{XEOWMV|`qc2(Ju9I1-Z2An5C<4|qC+UyvQNsgw%ubyoyl+0_mNd})rv~QtD zqb-%-5hX|(AR<@}Lf-hvWIqJkpkwBoQ=R*=HH=i(L_i-Fw~nS}C;K}PK`7JHvE9L- zMc7SJ)t$8{Rw`Stp@hp>UF2fVuj^!Q^l0n)wL*J&`s69c>(@R^H2BOYc-oAD=b%GD z3iibd3TfK?a9P4$?h85d%}Q?lNv=|;{S4H|{W1Hy&dvz)Ivhq4C)J^&^2RoD-MVB7 zBpNn7=L>%{PIIQeSw+C>LrtK(eYbFmJGZ=5*BTcxo_go%CNO3yf! zga@yJhtpd%;FUy2>SVH`-k1Z4ufzS>!vE08)=({;BhN)@%#o)FdgK5!2P5P_yx_fs zn6Vo}js~+aq;z(*#y`)*k6ebau>s_$R08*0qW?A!AdpI)r+e^WqkLYXM*=r|DKcmY zpkeKU@i30^)PC^7xd$U&%Nqt}fc#pi3q zr&GSu<6b?Oi3WG?hV`S4=&B4}(0$Yv^@gUkA^S&rD>*T9x+8Up>RNXeatJ^ukzb=J z4<2>q7rhCuh>Kz>SCSVXJk%|$vmmO}B=12XMz^ZYydpe~4dtA9G*Ro!+cbRiaq>cz z2%ECG7=>$@KgY_U_<)Keo@Oke%opjOR{Zz*YDwZSCLC1L)<@Rprj{0nVpFzIf9CBt z^@#*eetJ7CV|E7nW#q+33Y4tF3+j?uh&jb!9e@uA7TTh+zji zgnR{;YCurrB^t6cTdP*aDwQfW1a#Gk-G&^2n4vwKg*1H~6e1bK|GK;s&(;0{{~>>& z9zptT;eEJI;J1goHs^QvYy3sw@jQU;442ayU6+51-yL#K?Jo}3&&8|9f5cxB?nEk; z-fUphsw`)qvq&x4Qhy1P;AMyycDj;kfq{u+BLd-122ZCA0jyjkM`_^Ec&=8J_te>6 zy!{@PV;Jo}7}C79rzfFJteTwF+)9lGotx z>V_T^NFG$$;Dg{KwOi03F5+RI2~Sv3A*{1B#;2Rh=C`1gTO!FJ2IF;4lvj}gO%Edv z@Yn$cNFH&+PN$6Jks$KiniQpgFlTQo?5b8^95@qr)iD)D`_)o$Ks-XU18;ec#mE@` zZ+E)KJ=#lD4-I+by;<|_2D==LyIdYH-y-ofvGbvJg9A+JZI(}uYI z0}feRkT>w}5^ozU$pZ7$T4b?UXV&wb1=tXc1)JrKnx%F&M)gDh>)Y^Ma=L~t%NHxz zEv^S!bHm=6dA`d5dOd8a^I*wE|jMD#}|m zxCcuFyojf3DJZ8qSvExvTA%;>y z>uPA2l$)7IPa-0@1>beK z70=bmXoQE6+jzu(ShvzP2~O-#a-VmwPBizcOlK>nS##Rs cl%6)}uirFQFfm*7v$_}ShR`n~ZP3f9AkY7@$tr#p+E35mJ zu~Tvr#*7)W%;X0L3#M8bHzzj{`6cDP(!vsNjGvQR8#hd$GE}J6(!J$@-ojw5TA45> zwoiECrh=m_Wa5^U6Xr`Z7@FB?N#WlM&g_&kpGc}cOQJe&&>PFgf zsB1!RvDDuO#VcFQucYIRq)Ky^2U3--(MGoME8C)tnEWzlqDtX9buSM3_- z?r#?-V+w<2XrR=KhL@^rpF0dyHM0vcR%iAV@&hvua80o~vv+WC#z3LgUs^B||J9ke zURE}XXQHvrG=+r)u<9+$q^-K0t=derR+)0vX_X!P%G3p2<7@dvtd7dGuJKOz%Ji;O zzE(4(1w%D7j2V8VZA#aKzM(+ca87u&sVFs-f@1{ga!HD#b8yf>@>e?HP-6R z^DDa)H_dmAweY*nuk2Qwm>=p|y}vY2sI+&k24YTu%DalI7GcNTr^GFQR@e{S_kbB^ z`ISAV6f<&>gO57u$n;$6Kb5_T+2S_E?TR}Tr*(}LLS^qF#NB5~apwHuj`NE<%`fge zzqsrCp(3~z9j|@ktd1%yhf{Yn)1M71?dMna2lFC%%^F&eA6gJcM}6iO!R3po$^nq} zK)-SjrCno{F=LJ@ma1u#*V5&M=~}Un4)m6bq-**9#np6vL3yaA(!rqx{iWXi73q9$ zFWkPgpudowedHkyITh7CU0&d!sa4z3;^As8-B+mP5wS$A$C)X;zY8-x-3kL}%?xAJ z=_yK7S~A$Le4#I$ALt7p`qBr4t-gDD`tTrx;hIp#xDeM3PWf7zO)j;pR4a;cqMVVc zniyKF@@`hw!AaFMHmI&crW8AJJ{;g3HD={dw1rN;au}=j9hU~iJg~VThW?(a9FB%K z$FCegY1f18652x71XHM%`3dssDdr*y4OFIKk|Z%_0sc$jsy zUFUa=1#+pcGOxJF5PkY6)Ej%dI9jC(raaoO90TFH#(?o0xfP(N13GAcqiLd*94H;@ zSB|5aD~oJxSfr(n_bVrm#2VlqY4*j?E=3t*eqaptoOQUE8H)3YTT1`;LZe2=N;l-~ z@hka2^Wy`}R|UoC>B<6>_xhDS3S)0Yq%8QAg)AV=x3O%T= za+3VY^-#s>bf}XXVqL{AZjwj;R5_(MAH7(G>Vq!N2f!E6}I~; zs^2@Kfw=4ULXu~~go$*{f(_p9SI!2bB59s#P07ye9KUid`QHMg9#zC>BAv%Sh8XEZ zg@J;}_oK6_4h;^LO%44=+|wI6m(qYb2aHlo-mGX#fn0iF34;-JZ=i^-k{wdd96Pk# z-wthKG|`8#2@()}UKy7bE!A@*2D|g@V7CdUEn+EkIUh)})TF@pA7q!a=s%}&@;Sw6HZFcRaAZE13|o86-o3fJ`y;UT zh{%NhS3Tz(_)ZP6?$p8(QDe&v%?ZWy?TDK7Ramk^o)4cn^XcDOXK z1E0NGH^*ipY#}3j3PuTm44;ZlwEnN6GIeT`6|Ei z85Z3EQ2O3TwM@ra#=#wZO+z~8k)?rJ!7R-87J{z2+LoH#-=8kynOEal40!ni69*Z7q$vM3Gsk*ws}z*T`Sd?{!HBR1#eW?+5c%cJsz zYoWqd{K|EZQ@(Ib&=RhI(EsICSNST0|C(R7R#G5dJv+@P9XXv#~%&h-fQ;0LLK&R<>HjY$r$LEr#4 zH8{XGPyyfcE8n6X5eK;5Il#?+<=ZS8Z3MhNX#KYYt$+A9*4*@M1pLm(5%5+>ew$zU zF2qy2zd304$Gdj_Z?bmfdtiLKU%7*J`8V@I&7vlP_I9UVxrJw2FD>gh>yPE=iTT}pN(`9+A~hVzZKQL}F`m>^V1PY-6|dV1PY z^XLdGrl(7G(j<_QG`Fv&lQ>0*rh0l7K=<0LS#C0H)-3R?&YC6aG}l17gvnQDpjtUy z7(j1@{*2NjxO2))p!8t!qfBcqD^)RZ5+N~)?zE}Hx;x2VHxB&u`}EgM(572fdF2Oa zk@xtOAF^=_3yJo0XY*`<=F2cC=;jDhm3uKrxX-WLPkMZC>j~NvpId&^EG?+=G5-Mw zIv(H-y7FU)^%KAHAjrr=?}LY8W?`)uzsf@hHXXUG=(a)k9#lzVo2~p56d(30k5I5t zz*}`Ss(sY2{ES#>s?#tsZEpImC%-d@Wj_yM*_-akAA^2P$Z^J%$D!R5e&rW|y&erB z8XtE9f2=$SsHgnO)6^zf5K;CSzw#`LM;o<6O@A3^`sSkcb5L`5%*ykS{#SnG*MW}D z1Uha`9ft`gmEQpKw|?aXDmD^uay#!YVYr&_PgQ=0_Whz?`8`Ro!Maez*8PW;t^1Eq zZZ!ZSf>izlS^n%-{t{^MqHWpZ9f!(a)uMN!N^d6oRsIJ0FZq?1Dd3x?;u-{%eZ{Z* zy{@dHAC>(_OJ!em$^x|V8iaY>ulzGm_7y2xv^s7N9Y-0aEB^waH+(Y&-4}&f3DmkO zW))!jW>rU{vG&Yrx*ebKx8cdGj>38!nz6{9b($H6#5d!Gs4(S`LsUi1n%Zh?=v&ML zOJJf1q$~kVu_gdV6yVzc->m82<)Xv&Qm7|0Nx&`Cnv6oI#kk+HvomV}2+FRF#5e1R zoK=?6M3qfT+2K1zv#zDKo~W&FsVTCK)TKHzV4A^fAmj}la*Ie+?{8x<*=$5aHzPfK z$Z0XeG#i5g?3RoiFgBY23WnPhiElO|Q`?z&lpltZqi+VI4KpAxn_D7Vh{%?fNNxnA zh^e*`UfSWYh8laY@PQy4oy4uRHF2G_n);zQdb7dwIBK>55g2Sle6uY8VY3Vp-(<|)+TKEivlSSnxCvD=MF2Zk0E{E-RBG_R!>Lp=RfQ4%Fw=0SxH%_O z&2(O_p*hvG8&jDXLcp}DX~UIoW-4zx%!a{1+%{%MQpWqg*s3)%#21i_cHyI_*jBktS#x^)@6d#3uZPjVt&h+ zM6)07cWC)YOhB_gieRe)koe|6{03f1!HC zyC+|Bh{zr4$nmw;)TxIR@ZzCw>QvK-+X+qYFhMsry=>6*4hKN|4L+K3d0%t0CI z`3NMwIZ~7|o*1D~zeo8v<*Y|3Y4o{FJM=!x3Tfuy4s3lC65n*;H?TDsz}9#w8fRIX zqwSsMr!=e^>hJ6BFI8(Pa}0nW9>b+?j>T_4uO64WQgsA#96;!f#|tzrd3)#fflW>z zK-?%Ilrr;C2Bz;t;+t+!vSSE}5v;ustm)w$@XHHo7=8-~kjSr_vt%jL3ji?fL*ko) z$k{pVxum~PH{$fO9%W=rEMnTBUS%%qUqse7B_Rb=vL0#MI&dZQaJmU#H>yeY| zbQD~xDvncQZ9?@Lfje5rGlW9eV<{5fEEAcK3t7wk*(#kysIXbC0=T5-TEYsUpJ>tf zgzwc`f)_M_lT_R+r&yAzH$%IK#4 zBwNo0!jZP>*|T-)xe7c(&}TYmR^V(*3!zubW5E=s%jUM3vrtMw-Y=-QHg!SHCLAm9 z99;P3T!Cjip=UjEidNtUR2-+)-Z_OjeUQMm0-NPI4~0bVjNPIM&$>xbV%50?&9t&wAt(t+Sg{9H-XaIh8tn zgTRS?26?`TLMZwzB)+*>WI`@v-MZ4gEtFdR3dvU5k*GA%PO7xK1bw%Ip6vXLt2~^SeIG@X z;s*kWt5TQZ9>TH4euxX-+$->mC-kgGHqjcpPsMR+?VZ!8(ESAN$R!B#Ba}eJ2ax#Y z$D$FkAm7&2^%J2yXi-{K*F!39mTG!XT|Xs2P+bp;=-Rtyu?yudp!&hG@(B>0@5mS0496SqZp0XCR2 zzegF^{Q-$@{wP8mB!lXol!+~rT)ns4U+r9N2ryGS{?|DjAv zx|15{dX3~>6}i`<|78ackhsTfQ%4{s~gB#lOVljVO~bSTdO~w;kwjRzZ23 zs3|W?nN?8$lB*%{&FZ4!%rI7&c%#UAKaTLHP^%iCV~ZSU&>*!&rZCU$pp%JBp>y^wFDfe-QGEqgx4mpUGZ5bv<_~< z@76`)oArdA@f>vu5cpl!SSe=K*FDdvw}H?$v}m@?Z=_6Igsc~+w=v44-X_A`)Z*&N zd2XRP)L%235hCl6c2u{`1sNyoblZZ!_W9dU*%Ei4*j7kHEq7cn+MnfqDN#+^k1=h<*T5JDh10#~g?fRP8}XeDiMn2GcxbgnGriBHqH`9R#joP4{5o z91`L{jzg7+>yY&VLv^BDhB{2Rhg;m-SPUY1dgj44a|n?2NIGhpBLouhr*foYrf z;KDa^1)K3i3Np=0#LapXfwnn{Y5f_o3t8VBEhJWd)+5>BEpd!+xQIS%vd1bDm$+_; z<4`V39537xEUw;g@v$ykcGA#v?06U=kzv$6^MxMg=Irxc6Aqn3JY~7YMZ1fpU7er>8+c4nq1=9GAt?p}h+zcQGb{YZl@*q*;W-H$~B~ z<|ot8{6OR$0QX=}vN)b_7F(Q1c_=)FZuRDi=;YbJ6hw@E;V-fHHU;&f%=8ekF<_bJ60OlhPuap9Y@1fFrx;z&e`_Y)xNk#y8DXA3Y+*IDKq0@E_* z;=(r{5NyU1DaiD}MBJ=L5h&AnOzTg&=Oc^RF(KLJO0vUS;sW7Z7~+8Ihn0y-T(`tW zP%cY+RJb3rxVbIi3K3`JlD4qfgt3C`qSpDikmJ0Zbv~iO=2&qN?xW&AiNrS-3n(d8 zP&^kaE)nRZ4s?=YMMOMCichI9E(s>&aG$omjHw+!hM4AZ+=L`oAo0zW_zjvM8HR>$ zj1!->I9CbhGZv>YPFTT5h!dX`{^u;djT2WZ)2u=eCqB>eAWnQi_}4`7zt{qwtZ0HS zF{KN985h2}R^WD57UD$OOsVbwKllovvL5M2Yx+7t$AxR}+>MmKN?`iI*KmQ^Fu`U# zkwV>EpNO0FC@j1Auu&bLAw@V{A^xa?Uk zFwD16F2md+-0xUiRqE8Kb7te6-K~VkdZZmS%58#-6Lv=VE(*Ol_L=W{xc1HM0?&A& z2D$D?M9+E@gLb)-X-5vfW9G~@cOivM?ndI9@8dVH35m-l-qGNOE1Owgw}bZb1EJj$ zqJjMnm5EDVH_N>!ms#!;?)?@wHvn8jL4+;0D4%ZGop+7^?!@3!l(PFcDA3-^) z7j-sFOOQa4*` z@f6A;x@Vx(S$PK?VB#QskerA5ziWX{R%{V3GG&DRJuZCn2Z7s{v}jUT89v3mr)8l2BZ0FX z*+f0#PeO{z*xtDZ8T^^R4Ag(Yg>U{U*o-GqXt94w#LapXhv+Xc?Z~kMZji>ji~`io zD@ZUMhuwmRZs>+S4HBR)dZMH0t8PA=YquQ0w3$Z z!zWY*iE+9am&9Vz37=Cy3HSOG)lU+M$ITnsm?*Q^Hvz!~xeem1*W0Sa=f3 zW#P%fUCZKXZSUMdZOGUiv1|kBqzImhM{u(?31&Tt60L`IL^v*otA}+7-0>Eet_K3J z+4@L)vw>J;JSPbigV|&`Hy6?TFt?#FH?o*E1Z=EKT;i-3gn&(09$0=;;cphj-@FAr zS+TyiV9F4%B`$okmB51#z>#Y-1f&U^^~fe_)vbjTm$AKbFEZGMzzhM~;=(r>!Dc*> zLd(b|;$}UHL-g&K+7QqnjoBUrF!mHAzS#l4K?oq9uz@xhJTTK#;Y766fHIw37;xL%_}`gQB}2@y)IRY!w11oC^WF z3B28b+Yms(pzFJIGcHNiBQ{OGJJb4O;vUHQW|olbVfMR;HP2 zVBvjGE(`A~+zyKy_eQpXQHFroB$)LmO0*vK6XCcVt{(O$a8n3a38n{t04nQ1B)&OF ztTLXHgo=$A0^TjmgDs{F0f#6Pm$)7R4rO`JwmXG?SQP*87Wibv`kup-A>asHU^$<_ z!w`_K6{8{GJp|5rWD~XOTp`6}Z13Ec4CWD-A>b%nV1b`tGoDDHWgMM|oAoFT(T`#3 zLO@g+!~G^O_OVEOa~yty5I{a*15FG8#|!6#5C>w+S0=7P)(gz^UX;sB-NNm$xXB@4 zokfVr%L4~LS@?bw|CAQ^WX0NiA5%K`skrdXX#x*k@!)_x zvm)x@rxQBskx$f$X9z1UWP9g+EUPL0?PmeoAE>n6@PXjE+#*T2J~~7+E+Y{ z;+S($0&{-=3FbHP8@MeMj9kO0vs0&aoLtQA`4_n;fT%1gz zR{Drg;vAfnKB~fG7ylT_pyiACt%2j3OBP+emzK3w{Il zCa19RCA#-_gmY_%13_+6CawflT;e_j`7TqM>U+4r^r*ly!?`z^M9p-EP~se%neJ3! zvU}f!GAMdC5=^EFu$6mLIOpC!5coX~yurPHsGD&~vL3Oi>%C0t?tLG!zPVpW*1btP zv~Z$(|429wggCJ9kCkcW8d&%zD3^sF6z)S7H@8ird)rpf?B72ncGe@`sL>x5l{iyp z^hXHXF$NPI5suv?J4!$JcpE7tA0OzHOP;lelT3*0s*Ovb18+AEE%koFbo1_aG|WD>RHhC+!;*xuPm@*5GD z4!0`jzLjv& zAr6GtTA8>4SuZfrHYk^gwiRy1;_5vrUNCP5Gi3>p^+-Evne7A_C+sY756E^ zT&6V7JY4wZD1qCvc6xf2mP>u`yDq|D29HT(Cgy0t#z{NN97AAQh6k--+pb_Uo=8Eg z;}UVR9;KjI$1}A@7g7jw0`f4*d?dbkFMb1~ko@pQ=@w2;hy(65j(JYTZ}H!!n@Uu)ll<0r~0jA&y9ai_S2j-ROTa!nmS@t$AH#OxmEzTkdjt4M9B$f3jkuxUG`ZY_19bxazo(S13BSNc_PD1L-0R?-mK!P=i zqM7j=ONuFbstKGVkdrNlPCsluc;d*GXYjT@bs`X@r#rQBhXq6|q6tx7qBUD&UQhw2 z2%sak4~BGaO?LA>kb>DxMS__}(apRKbWzVVGa4b!n>bz6&v4YE=S|dY=FXcSR&d_L znM7!P-h|hIr83@Z{3IP6aTW>L=YZHb73TdYg3f0n@y$78;tqJBoVK0VBivV}9?iLy z>IX#igO;j}j#wEgq21`e4C3dB-1&}N?C6LO;dY}(sr_6a=;rowbkKe-1VFG9?ZdeC z%}0ci@k9|$`O!oYS&!l{ntzOG!x<4D#~m2;6G(h>5q<-sl7ZrReL0$U3@Q!EeNw;| zM}X_D;2p<`g(#P(xLKQApv|QO2sZV9N+d6fkR%fuZ^BLem#cUfl2;HQ*a&$gGQRn= zaO@UF9o}$NB9W{|3236vFtrbVb77dzBI}#a2`QkG^+?+q$Ah}q$hO#8=4wHI-a&KU zBG=+Jp33kAl+r-g2r8~kU63ylj&12nxbV%F1)lMQp7qEn+P7V+;yAVT&K!063W4oB zLbE*Ap%99G6^U=YCNd!xvX*CYt^9JSiWVMJ+Si40y+y$wGV3K&+6^jh7VOxd9o$HO zpwey<$!}PaT2rT!7`~ZEB_MJX%oHbKR;sSEO5!m-l6hYQSw3LHyCc^fN2nM4L8cc?f{t-bSD>U1Z86Zfh@ zp1V*8Mejy}iBFLUxsY}1O8bFO?y)GXD(#0VZWipgpwjLoKu~G-iRAs3q$*7(G5jcz z2o{0jJ{5d`X?>dI$H@BTCqlB7#*-LGJE_th6!b$5I`JfipQ4a;_OO8B%GBj}gmA30 zM{(hsp9viEm%N?z$S7K8KUZ;_T6^blROvASw>XL6ag?FTo}eG@%XNHEWzP^GsIq58@|TvRs_YP&>bXQBnDoSb>i0ZTTV;npmtP_4n_mmb zR@ou27-=U}*>42>TL;Y(@UTmKXrNkJ#1+E3rx)NwxGrE2MDPgT)u~gMdLK(ea!~dEpZW1%x@IMLVp4-_!Sp?S#38IqMRwlMX zKC-i)GO)7OAzZN2eqCg+$y%tK%LbkGm5I@*@8I8xTjR+dv@i&0+-bjo$ZZ%Ux6$zA zCJaYzW0Bh=N^aBP$z>DCxh?veiQMKA@Ho{pk#-2$DQXzOiQ z9?X$#iwss~3dPwvt4uR{vLgO=Oc~9#$AxdE2t2;=eg^_!W|T=JwoMgqoOXL>HwjN8 zaD3zablgM}pMeCks6x+pjyeShn|R|Ml$nCx(Zbs{w39M%-k2fAeX`$~DfQX~7g%m7 zaQp2hw^x2QLSV9#Nkpl3LBXwBX%)LS6A5bJ-J)@@rD63wM47lmb;mfA<$-5(3jeSu{^2d~ z$%-vt4$A}2I06~0h!l$RjQ1$h%%7}?KbI+6&^%mVdQ{-SVyngt?3^eiG$u-!M9hA) zu;NVGJM-jl41qOKiVIAX3KkQkyp1qFk0kzmRczriCm zx2>YqhS^WwEu5YZ2Xf?tP`$$Kv$$@D>^#_}KmbgRGKtt`p#bA_ooyBo zn6@e60%sWt7W1CG4VgUU7+^WSL?S6VPjM}Fr^f)(XpCJ`C?~z@K`>6V5NPM$gKuLRKDWH38y+WWT zI?xvT=}%H|T$ZdyI<)u6OszE0{q#O=Lz+{NV5>HMgN8_^q4|Lr*-w9}#W_tlr(2vz zIqJ>|kHODy`{~aR{+SlvMx3*hX;vbL81H9!5HZdc{y9UL#D#Cp z6S(_20r%6p5o&jDc>v!m#mD4=&GqLKG3$|Kv;llb1mg0xclMIm1q7ypT!;&7-WF`e z6Dc&+k0jz|J&H#3k21BVskfBOd<;OSzK-C?$O*|dQ<5Ft5>E=}sSpQTpH?O=aorNnpj?)CR=B^kxLQJ8 z44sia4UHZ6eG~Ev9vq&6J6YRd=<`Ssu9B z7Q){$ioaD0e6nKArJ2&zw#J2Twh?%+nbEY_b3XLdNch{f1kQS76E$5%NO2k4J3TVU z5|}M(J6!l?d%{e zg*XsnrZRCAvR+`O9Z@bb?IhftEp84jhA|g=yIly7^+-Bunq37Lr|V3!8-Zz>c3fbe zv0yWvNI|CE6LGU1MWAW+U|M&&S;+ckPa#>SBiZ3Cv6pc64spPBA7$ba*DbLx%4LZT z;m)?Wxr5#7f=GjjdmcW_jdKU^H=yru;{)F{cxiosrM}LKb7k7he&m4@4VgsZ`u^e- z7tI;-00MWsy>c7~nrLGOA;E!(;-2xGa8!Rphdx-ChgeMO(1$7$SEBCFoh%O=`Y_=i z9>t&20-vndDvn@EhdvS)Se+>FV1JWo!|5AUoEX}@B=40C+U;C|mv9KoSK}5 zZ^|bKXMTtSLEfuOTnU^wiTf0!n<-7zg9}W+2|VaY4}ozO5FqQ3bksP#0*upj#_1z4 zjZ?q{J}DyDj3-i%X;C6>)}siNsmRniHDAP*ki|5dkgQXa?C_RYES&xj2V9pZ6PLJd zi2;<$5@q2ITHM?W=hSK}coV3mlO7mavH%}`9n9lsf%3u>oj6-Q9Oz3c!GPD5G2t8Pa`znr13}JLCay%* z3rzJPl*?2X2=_vZ>-t=}=Z6V^xi%&d<9tMbak|bpA0;r2^D$iDqauRMcp?RvK9Puv zk9!ae#<_@T-90~vEN0wJ&UZ-+P#;TC1$;$u-F?o)*CFr|5J#RV442|VaAId}YB0%Sdsj+*6r z0*upjX1SffG|L^hz%-j+GoDC6rn?exvmQmDOm{Q2F3B}7-$xdo4-t}eNs=Aj688w_ zhanEQ-m6Sp;<_d7L%A$*zi@wKaW!|!Cq%bu248z}O{UE}K#Z(MUQyHhSeS7}&NM$E zu$_@@LG?jEKQ44EmIqGubKyT0#ecj7 zK3TEGo?yyW^b1`0=1GAE2c4QWo)C|w^c1189_dHz^|YYl!nJoUCFN%b%%=1#F0l7k zuo+LJP^r%);$}U{LGikK7ak|bXe%Uq;q9uL#My7s(E9iN6cyA0ZC7zN$f~hFFr%NVd<^{7_@;^kzl$Fzi0!VV@B~> zx)@h#EXMLMe0&yH{kpH_&#d{m= zY+3{5nDiqtZQrmvo3?RPp%3d$QemVj%w!VXQahX0;^idKKRH+vxwa6vvuPb%`DR_^ zZKyb)WUw@`w6st)>k$>(I+@s-*G{JO1s!4Mb~1(JHy}bsj=MM_)HcLj)b~b6FpVb~ zn8qV$)}t7zZ#B+M1hT0G$=#*KiTRBx0epr3F1ap%~er+wW~Lg4qJ(PzPHg!6A#Hoq3yRLp#ZX#%^A+s$?9a-D{y4H-+G8vY`)3T(}H6G--oHmD@ z{9{nty0I*82F!LSKeuZl%dLxUj~i;9_4c6RzVZ^RY|zQmgDcDwlGi%Vt~G#LSU%Wa z>MhmI4SiQ%0`4pKnjJ`w?{^7i3iu%9%wnxJ*zKO*%~X_kO&DA;tG6F5%S=OdPS-@_ zA?6T1X*HcUhKlW-r?6|7ft-4lHe6s16~7FPvIex>QF*l)vlFkoR;Ojn&bam{a}L3C z%;1U{AZ~U+zQA|`J$9YX#h)}hx$Mf+I%(YsW;fhL18GNsnN$1*9W!N#c1J)pVDq2% zBD1>{aSw?&%Zm68$r84C1nYSB(_g9;OuoN+L4Ub-amwroLDB5@lGJ-Usqcpc7nE_F z?5tUcO3TV-F_zh&;mn$~AYU!@2JL6BR63muR?9D{S`>VKdSM=)V(Q)<+XA|W`q=oY z<^H9G)ILFw+B21!IWt{0sZ=ttmFHP47|dQpIKUwF-lA(#gAL3+(3^Xh|7iHV3ccKTY{1987I|eN++TZCz;kK9Kr{dAg zvCraGgy4(uLsfpGl^(88K&r5CA$reQ=1}lxsCawcVW(I(_iY~v zYUnWHb^KdJI~*)vt2sz~bA$xScurm#NapgKZyqVA_gJXhROam;v5Agb6Y!aY|cT+YT*iF;Co;t;LH1g%d`L$^Vj;!B@+r^4Y3+%jbr0s`I1BB2&7YL4HggpF^ z5=>rJIT#Jqu1<%um#e|>mf(XN+VJa|82qN-@l^z37Z<8SgF1M4AaC$JI`{47YI+Jk zTh$kQm#wE~2aJ>ZVsujtbg^(Ci7vi-8GI4CPIZ}Gh6}P9U^I{3)1@VY{W#AFOHuVq zfX`<1_ow^Hkb0n8OJj)6^YGIR#IaYdoa#F2pc%WTF+{`Av=8Aes+9X^$1;+FFN7?t zOH_vzRQb91fm#aB4<>I`pkwVXkg)>D&c za>;P7)MAx$PNW}Kc$1}kCb#teH=%c^386yi&Cw~A0aZ#5M;o0s(0ph!X_%_8qb0TPi=}Aa@b25I>C%l~u8qMd6%_)uz zcZIvK9tL3A?|mw7ZNF1d4l}G7*v}!G({LZUoQ}jdXNZV3AlXI@i0l{_>CKtQ0O>3w zc&UnC8Xy7?D&VDY7Xj>SL7w9vlV=jnMX5uy4(0`O2Ol6_)7*ilDFbhN6plPk@IewE zZl1v7{D3!=Khy9t$D7VyKJUwu&qGen`{&~Vr$gfxI(w2C*1te`S>Ig9Yfn%5?roA*bUHa+Qo6nA0gk0HVPTKoos4@wbM4(3&XdI9RE-lP3j^tk2|R{o15 z|0k{d|BZr%?UfU{>~JrZ#FsdU2VvU(^w_~%3g(b2-rsymGR6J8z4I!zqRWWWk$Xqv zy&SyJR? zhGjkrIEKN`3BJiZ;h5@bmd8izF=E}A6ieQ?rAi+Wb5y|NDD{sm)=BuCpv1w^1_UhzgzQ!96^XuZ!Ld@$~7#Fj! zWUz?YxoXPXfMSSxBNE@-BtmvgLxZT~@(mTnxnK`CJnUj2<=vjX79ohWa$P^w+Z084q$trjk3W}rSA!? zwMw_69Kvi1s-tMc<_>^E<~xyKZGvdqu>yq*yQ5)!JZ0_%EGp#tBJzWf2&BD7nPzF# zE>HnKM7g5#y~4fE;^vBw{y*qk6g>I>aKFTeOWkgL=tnBF`&CAi(L4ZX*!Rasun9@1 z8SSMR5fyEQMsaQCK@oV!5oj^s{;7)Na$7oV?hm8fHTOtdGLPUkWPB6}jujFO+Xl!q zYy&{#B-WdaVdm$S%VXm5xaIPeD24_?>%>DrSE?Qt%@dLw1)dA}zYyCe9os9RNJFrQ zg?u-Xek(CQ9Lc{~gF(G|(D#Dy{**L`S8;piHNh0v(**EbG=D}~KkKw^f74o)Mi{35EWEf`>YDro<RZ$ox+gjy4+q3(&CQ8%VG-ZGsxgsG~8h;@ZY4 zK=sY4jzFvD_tjJ$7d-2c5M^H-$JRtP9(zqOcnz^y)3LfXAsR)t+l+eb9l@#3wXf6wJcR)`qcjKLQEFw)4F|7r zIrWowB9~8iE5R}QXMNr;Mz?)m(FesCe zbG$7Cu%!c-uAm&LvJn~$1M^nGjhm*fO&aCUW(r7;may3xI8b#PB)-`ezk#Y0H+0xY zaLx!a8$v>^?UZSjOSKCtZ;x^X=PAP7!QyHGMi`tU0{`1xfht6!^i&BHm!EzB;isvv zBexx_Iy!01bfCbdGmzlWFX3la0v~=sL%C)%Q&e_zR9cLlcT#a&151ZW?2K~P&ZDE} zU2q$M?ux`WyNQO4)?^x1J`lO~F?ldJ$^c~AEvt8l)$W$nTPGWus#Vb z_}Dqp@T?2A8plK@O(IAwTk8npiBTFZIdbnQh2r(y-g#XRx%VPK5V`l35%zIL*z>I! z!R!k!EkgGJiNvxVm0^=UkZE)1J_xtbq~DFi zHwWW4h-YNkB6J@j;6p8N7`n;G`Cz924s!t9i`UZ=X#yj)8^-R#g&em{U7a~7hdMie z_NXbFBY*^Dk3@p~rQ%@ymjZ|W8wuWX1vxK-gkVQ0(=3?k7k2JKxq|o6!ac^~=Bf~M zbm4Gx!|Tzz19gZ-@0=uxD?nd>^v9}jrK0z7K!H(@N8+0kgujx}o0f7dXTGSs*HLLT z+U{0)T!pMhLe!#%X~JkbkNXgH0TSQz;x}mQWE>PZ|uaU~i)cvGLo4ktyH=KF^V4b$M3OeC0Vg`3uOU{$il*Nd>i zeL&0Gv~WcCp3o({ zCA*p>po~s})fej|2E;Q-PBio~3xiH#5ElydyI8~<2okR_{;WtA_ zuw5Cyf!~m2i%w#hfR|g~u#+Go=jtm2aH0d)SDnOLG9tT;lSD3Vt-69IqZ|sdPk#%% zj1Mv}$SFwh?p{1?M?$5-KoaRlP8H;7AtXdSU72Q4)do-(XP{gi$(h1E%i`v4h;}4a zhyN8Xq!FS$(fg%R+yd>LUuRQ1TZJ9D&;F0-YtDhdXcOlm!4`8#pZTAW9@Ixqfu_V%^mpEl_x(*Qej;#%l9}(n7 zEu_60O53U%{Frb)?r_GA&<)0)U?Tlsyy$}L&i6k3%*5Pcts*H zd@u(0*?zBN+T0g@8n@9ZuR`LR&)_%c3(2xYU-(%8f6fAjeIXe+hr3z;pLYPWVbtI} z%;aaKQJ9gv;TJ?OZm+tE*Pt9Ka<(Gc8?JPvnJB=h zsPKQNL%b0Jqfy+11j{od{r^;l$ad!Z^PAG)TTX{okEJ)OJYIcSkAzr*-)5TdSb7WY z!%*Kr;+tFX8-x_H4ZSDQCEg~;?^?*POSJN~>Jq;voZB7FxP&gz6qb~i7P_O6z&=BT zkAVz34Nrj$D2c;R3lXl_FZcEiY4@h~OYk8u@|3vHl$Yqy&WeCXx|Mh^Of^0jx)(Yw zAmF)?H~1x((LEjBAv?vZvc2=$L7#Xh0fIj9F4^{OXWKmz`oso9wS4%7ZO!*V1-&1u zE7tq{K=hMjLfg8Bg+cH4Lu7Ceh~QiFe)lC3%X(CWZS{Vp&As1`a2rka0VKZpF@A%l zN|r5pzn=*BK?@xAeq`jl>mdRB)B*78;;_SL8zcLeKhxpjMj;Ej+3No+%)Z-x3cw3R^k7F&T%a$f=0A965p&N zt^QARj%=^ad)Jk2>p9(8JvFYc@_2P)trzaI#y4P^@YJ{=?!$l^A;Do!_zeOM*@j*i z=^i%`>jPWt-8m}gtNKB`8J|Ne727Vnk7Eau%L14jLtr*Z=9*WG327W$jiR% zt9X%z_ks2`VOmd!scSVy*v=qAa6hOjLQgN`hN431?Ie2b23yF_C6ULfwXVQtT} zxg(o`+h|uiAo0yq{08lcEL(JB(*!)-0*4(L897&&A%Hdqz#S_+J*=r=TMqlLnL>$M zq^`t{D2Ea}%wq(4W+#9`v7M3lW*5=5-4=xl9VXIk?JCIKLP&_yu1vEys!Q1PT_{(# zwYzZlu(-K%Azs*RsfE6?Za~eVUCu1Y8CQ!w0G;+!VMlJoJE?@(3sRu=_C|uE{v}f8 zofQc#%vyFWd|wIH;RI{(Bs5#aaXVW&H1&QccP<%y651cPq5A!BHZT$e5?fy!#x=}XE;s($2$P-e2IqpR;`Ee z{siH~O;XolKFXm*8YJuSKAE6-FJPfsHxl3Uh_H1ViWj;~B;e--xgdmuJiW>^%cI(a zRr^q`fL{>qLW`UG0OWh81Ag5X(E6xaG~zFkpmDw0JMUssDXQ?Dj`$@=f$H;+_-3(0 zdgmiPtJyX3ehIe33D#R zkYH(*NMt<6fkMDyP?(29oFR}iEl6%2993WU367~vJo*;rd|ILLm@=x9ZyWW}L9}Oy zW3yiO23C8&06KDf{r{FlGG~Jt3~~+<-<&JbnYV{DbfXQi|Ii%|^8xYrpyQEzJj{70 zb%?GL43396pLlQWc$g27_?tT(=3e^X1;pn;;}_xrtCA=Yj)#%V=mS2YylT#Tl-Krn z7;=ps5A!kP8;^&fVMzbuOq-5}`2_BwhAu+ln@{35@Nh~Idbm9v2J_Nd40W-9FR{R( zliTWGNA_v#H-sLS3hYxBOs8+uz03;^+qg`{O${6(! zYz+4ERE)iJ=x+L`{GxquvLR0$O)o8%`rHv0QyNb_71VaY!d@JVfw!`Jv5bYs1}CuX z#qwFR^hlp@4u|vjq$4!!n`BOq;t08Ft;d}|9ZU{jHb5tRbocb&bWQ9a=RwCfYA%iQ zt~vS8(*w>Z)8Qcb{?du|5FSh`VC)h-D;9*&l4)Ysl7kJ~pO$r+4BGhs+rU*U491n8 zLB=UF{H>gxpg)esU2eodLUahx5Y;MY;E zzUF%2-e7Ta?}x(wHSL#bxo%h8(~S}`u2Z{hyf>-PZoM8+1M>|)!^Gc2f-k!W)gFW~ zA}ZPq3g%Yaf^4@T@y&OI zZ=VUsEUbPYO$L%ZdOHXp=6e?RcH!P(aTDMgmAF&TcR6UQL>P#u#N8@tt;F|H?v!wN z<_EY1CGJ6j4=xMeDnVvZB{qN(iNVg?Yf0QE68BpYxt8FKD*Z@E4>%-R*Tqh%^JCp^ zt?UlQ)i7B_bxRR1q*;Z!i%o4+D)*fI1q3ZBv|x--=Im5S=c0il+drQW^q>+?pTYP0N1F*I6;qh(02AG>ZDk} zk5)E8<*hZDh;j(Ub77*$_<)4eSpx~aOe7+=%|r)@T}1U43dO)P<7diaPM zn+jz!htjf#-&_E#71{#jP^h_w-x38-Z7U?cNsEeAjf|tJ1wH)Mg51VJhCRHMxK$6o zt#C39XRp!q@YsVJEaZO69lYIaGK$CaaC6k`zCNCQ=@wr{U*o4EBlyPAwS5F9FFb>D zTW?Q~=ph%r`nQ{WNB`sw8V%aFd~(mqy73m!-uXx{8rY5i!DwK6)yNcABUi$AM=|Dl zM{C6F0AUfo*p_0$g{e{_Np%F;X@uu+VLC2+GefW$Pt*|I+7fZI9u34eJ(Foi?o+VP zh{J_<&^~5I$O%8*35joZ#&6JhQ0>rsXHD(uK@HoRJ9Pr$+Adm-`7-a^WZgoO4>+qpr+ zK0@8sp(YF>I#d*w)6$@*vr&%58J!&154RxI{z!atfbeZRC$q2}0BK#Q*BrjgffoND z;lJDBw}5R_=3rqQ;xMrO6A{IRLJlGh)&16*bfO$W;VX?}h-3~!9%>wp#5Z$X(}qp))YG|vHHcm-iysHU_>si3vAT_}gN89>UL`-yHO4$ zgE3GKvQROP#5W6sYioo|qADhjfl{W|66h0wf+f&m48(;G5kFZdltm7uX3B-ud%jL}LgLjA*K| zZ_U}43%y1$qWSmO*9<`lG+|bGY^btS@+IknaK4Q29I7nG1wJMs*o-G?h)O3W;$}T+ z&fef8rX6|}GvZL?-=VlU83MqMd?da(1;0TQq&}e^MaCfS6XdBOB$PZ&nYe+REurM; zDAyR|4B?(>aW$v$U)ZXtV07Sdmc)%~$0iNc-mgNtFlZ!Q%-H~jtbY_z6Rh^Hda<*wUcT=c62rE;BOo>^c)8H8aOkoA{7T(!t>33n4*i1u{3>Lj-e-{DHLh^2 zdSnt+FS$QYo6lJSSBt>sErAyOdAd=JF9_uthtje?|Dpg|EA%ClL!svW{L3hSYS$vc z`%zJ`s*!P2wV*%0PLN-?a?lr-qRe-soR13FB65?|eMyMQm0u+wn?HQ z(0q&V>>O{#1-^43*o-G?=r?Xj#LaqCh;iyWOgnOiL8B2n$Caohb1Uegt=)zMFJti= z^m!CBY-^D|?|Xv0J%ohpcPJCr+nETm--&Ydd3Oo-Zi}0n30=ZyKk6nz{?RV!`=S`~3*S5?*o-G?@c5?_akCyZX5)Q^X-96! zXrk5I*>=pcUrA(Z zZtip_`_4C9)HPL#M#$euz_>o`olml+UR0soy)}aL=J$YwasPnCH-8jjMuWf+5Fryy zE0S;#RFiEmQEwRJ%z zQB_(E%-664))awBmcTFr^N1Rgg|e1IX*n=oTL7&US_kD&sCi(%E()O9dPsb;zNlE$ z$T+H6&;f5C$PF!I*a2IK;~g;a_|t}fjfA$bMN8fgu!#yII+#syr?`93aoP~@ zY|t}pE(C4}*aBC+*;4sTj*pqg7<|K;`vJBhV%8&n7eTZiAT8JkGq)cgB)&BfIvQzh zgL^R6wn%)F5rvHB7*GV*3+i$^Kvp2zS&-b0Fy6>(@7X>4E0v@kLgKuc(gAaFO^)znhahActh4{!gzZs9!(bH2y)ggTKdPREBl$VzJ zuu3|e@9o96zVSuuGHj=n%2*Oz#;R&8qQ+OR)7}uiV2HVLEN`}-HgTT@=UWS`ehzj! z;K=16lvo8gL0SJI{ZN&BIO|y*%=hARDJ6av8)rJ(x3HywQ~^Tv)@C)gdIm?D6V+5N?Z`LocA#NM|6NR*c025jyQrc)koaa6euGYiQiS1)UfGfR z1&sQC+GWh1)*5@s8hcx7{NGnQ^d=GWigAF^bgS7K-wIMUW*JZA^ z40^rNf_@z2U&b4))=P`PoEz>^w%=1f75#8--kuE->?Pv192&}n++bTyr*v#GOXr^$ ztPW#g@XUNTGI(Py_)M*miTIc(;)CJt}16o{KBr%u_y-+jtm3 z^+rCCXx5{;v_Tisj@$3>u&}S-$kKV;h5m->Sgv2+V zSlA#!k;B?y#C4yGTr9}`5E7CtQKnfkwNSK>0hDXBTo&%2#m)6Y(z%8IsDD#<_jI6< zW<{dJC2zORZB%HtEsZFrsR9~?tReBukWlTmr4dolxM>(S$FNicmN^1js;LYY;@C8n z3p%cbB}*4wfpRpBO+lSHR58>24w$59Ts@!QZ*eF8Ti?nOwj0UW=9xMXP^r0HA67Yq0j3mlVJ9o3}*_>=?K zMeQTfEJx=W3`v)XL~ErkM>&+@i?o%bZ>|6;6u%OQZ$2$PHcnCau%04a)>VT1Ob7|_ zKC4W#cxtO?E1yHTx~!{(`+1A2O~>zq-&2EVzx4&l6BnOO581C#;b{Az5^DhdDd;LAG}q}lLSWV zzfFbg2fvFe-+WK`k^8~h6NzR$>PxS>gXu8+;GHOkKi!1{`^)hg_!Gs5`cu#keqWG3 zu#jP|LU#3j@E*bZ(7`13gZHX1Zj8Fz_n{neHe(=Wv z{)q*SNvwYGK>e^=z7J)*to zQ_?POjP}l#=`ByIaJ0SYGk`|jJd4CPzZB}|dsEul^`_5>!1Ip4Zfbwwquc1M%8}Tw zL?o_V)+0A6_-m#ext+jcr8$`202%uJ7Kv|Oz;DnNsX*8kL7r$>tI4-r-qT%2guqq2+%tD_vw&~i?9EXvW^ z$06~}coDO$onk~=doV5arN@Uso6{ zVY3l%pz6j*e6xudSXC)*STm8q!KQ-TEQEwyn=8{Sms%%U#}+8p;9yJPZe?+E9^_n^ z!NFT|Zg>ktkM`qf2@;pPz4KKz>8({b+J1Z+K*NmNBEbp}p^m;Er&(M-o)v-Z9D&h2 z6>l%-xEfiHWU0v%rXxNT?*J%hFck?FHQ+bsnJH4(5I|=dsx6^IY86z?bW3=K2)9|n zD@z2GXN?r^ijcQ|dA`f+TBC-MV|8KKU|*`430`x$CM_(NYXjw4q1zM|R?UtQV<-G} zO~4H;I59ix<}Uc1qJ=%dN}Ks+SKKR>^Eobi!@7%-&Jvw(cH`|rKF5PNg5^2rx_S$P zwJJ7Wvvf{A$78wOLKwb=WGU7wkc+oB0-bj{204Y?7JwRn#QFYoZ-0raaAFkao85_1 zyr6hZ@lkIpU=}nrKUl_@hXu2=fKie?Z>-K`4`Ezfyt(*{w}CLQxNb~+Q4RJ^Q^@1< zLtSfES1egj?(YulR5g2|XujDCzg_F(hic`Z#9DA~mF~mR^<$_OU|#`r5MW|&sb-f8 znc2F#AAZ?wcCCpo^Kr>hH_vZ0`{VYUu64uO>vm?VngfJ(Abwe2gJn}g%^oE138lX7 zY7L8y%)62AT%~JLRM@IHSg3~(by6UQmGDs9^Gzp9)-DZLt8|0XqC%}|4innpES!K( zMbz;6ziQ?nJEga;+&fe&^;g@lwPT=$107RG^HcTJlsN+BWpgBcee)i|cC8y)Z9%?w zF|=Gn6JfXB0@;|Okw2$v@?c?*nsQMW7H*kiM0+v==pZIi zmMnqctA^*mz&~nbatuT~7B{{1R|VBc{g}QP$}cJa12Ztkp`dHk!hkuR7Zdw%5+{tm zWYC--GHcq(>F&pJuzoWi_c~F@P_YUFstK6)3NTg7_oLPY)=jXnU6Y(({a7CcX?qA) z+4pyQyn#jCHe1AT9sRh>1FUOpN?rwG5&ZjM1+##+$MzK#3@tLfq|~)` zVab95o63s*LbX`HnzcUMKeua(@=$GXsMd;pfrQ3UwBDLo$jl_JV;dM+(!HD!#w@}; z)aF`!LrVs`!=_s`Mcjv7(O60Y3(F3;WPv9y%bNk}0=k9#65|PW1J>8VQom}wJD5{4 zi&5A$0cA6?JMP+N`k7s)u)I`bv#$+RofVgm^w_R(2r&ywi_CyXsh1=;{pI}P?!uCMslOX%U>L0GgT)6?cuv^!78e%GK)%0fYP!EJtydjdP%G7-s5Rk`Xs+Q-8l;n$ zr2?KzKZvy8WxBgotj5f8-0m7XR9iS>ce8@mDMyOlbE2hG8i-c1IVpm2GOyR_?kiRE zSRTSDMjFr;-b6%~K}b+qZcZT>-7LSLds(TkRy6O!oz4kelN%eTIhBADy5`N8J#YU* z4l$=OJHFeBWKL)9u$f&5+0~hSh5W$G0}xK+iZko0`DS88Uv;KieKZqoXl7^yxO|On zt)nH|3|i0`B)Jx%R;{qSM#sj|$(lJ6chBjXxTt`@nrGdgg&T9aCaay+YvujAyJmF> zB4~GI2t8!goQ-?ucCE?g7zUwpaIb4C7lf8ATh=zXqE;*qCGJ^M$<-z^ly}#w;Cv#lTIw?&;>G{# z>e^WlhJmmk7Np=H_^diORRrbk{-#uz8j9D z1ik#a(FV*lIVO#SlTa%arb>CF?+V7rwpfCoeA`$DTOxO0dQ{bs7sW748qH$l1LX~Y z++%h{wj9sDtOHmIXtXN7;BZv3GoLE|aA?r!q<+d#J_-_f#&{_&pf1-;^KnbK0BEk8 ztI0dUR()Yj?s8j9Q6O-G7wm`vxEYlZKS-!4PzW0}#miNTyn%8b(29EeuEnDuG;N!f laX{|z&{N&aRQy0wA|F_a$IL;=QqGPoKJkIa%t14M@B(x4!Fm7y diff --git a/libs/network/doc/html/.doctrees/reference/http_response.doctree b/libs/network/doc/html/.doctrees/reference/http_response.doctree deleted file mode 100644 index bc93102682f78093b16625fa8fb8a835b99c1275..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 126547 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 diff --git a/libs/network/doc/html/.doctrees/techniques/directives.doctree b/libs/network/doc/html/.doctrees/techniques/directives.doctree deleted file mode 100644 index 02e00338c67f07042e325917ae70539d74b8a6ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17073 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 diff --git a/libs/network/doc/html/.doctrees/techniques/polymorphism.doctree b/libs/network/doc/html/.doctrees/techniques/polymorphism.doctree deleted file mode 100644 index 01940cc080aa282854d4be957a2896e4cdf7f863..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11112 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 V)3$t|eNx|uABBDnKJ!lFzW~7nEqnj~ diff --git a/libs/network/doc/html/.doctrees/techniques/tag_metafunctions.doctree b/libs/network/doc/html/.doctrees/techniques/tag_metafunctions.doctree deleted file mode 100644 index 91d826eda64a763e87abf5b581d684bf1b14cedf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29085 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 diff --git a/libs/network/doc/html/.doctrees/whats_new.doctree b/libs/network/doc/html/.doctrees/whats_new.doctree deleted file mode 100644 index 6fad46aa6b0a0cd4e0432e7cb2a5b65a3fd13a3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61078 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 G`F{Yu2=ZtE diff --git a/libs/network/doc/html/_images/boost.png b/libs/network/doc/html/_images/boost.png deleted file mode 100644 index 0714ca2004bbf91389d33166afc449cba84b39be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13364 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 diff --git a/libs/network/doc/html/_sources/examples/http/hello_world_server.txt b/libs/network/doc/html/_sources/examples/http/hello_world_server.txt index 6d5c0294f..3dace4e6e 100644 --- a/libs/network/doc/html/_sources/examples/http/hello_world_server.txt +++ b/libs/network/doc/html/_sources/examples/http/hello_world_server.txt @@ -19,7 +19,6 @@ simple response to any HTTP request. .. code-block:: c++ #include - #include #include namespace http = boost::network::http; @@ -28,16 +27,19 @@ simple response to any HTTP request. typedef http::server server; struct hello_world { - void operator() (server::request const &request, - server::response &response) { - std::string ip = source(request); - response = server::response::stock_reply( - server::response::ok, std::string("Hello, ") + ip + "!"); + void operator()(server::request const &request, server::response &response) { + server::string_type ip = source(request); + unsigned int port = request.source_port; + std::ostringstream data; + data << "Hello, " << ip << ':' << port << '!'; + response = server::response::stock_reply(server::response::ok, data.str()); + } + void log(const server::string_type& message) { + std::cerr << "ERROR: " << message << std::endl; } }; - int - main(int argc, char * argv[]) { + int main(int argc, char *argv[]) { if (argc != 3) { std::cerr << "Usage: " << argv[0] << " address port" << std::endl; @@ -46,7 +48,8 @@ simple response to any HTTP request. try { hello_world handler; - server server_(argv[1], argv[2], handler); + server::options options(handler); + server server_(options.address(argv[1]).port(argv[2])); server_.run(); } catch (std::exception &e) { @@ -100,34 +103,39 @@ This header contains all the code needed to develop an HTTP server with typedef http::server server; struct hello_world { - void operator () (server::request const &request, - server::response &response) { - std::string ip = source(request); - response = server::response::stock_reply( - server::response::ok, std::string("Hello, ") + ip + "!"); + void operator()(server::request const &request, server::response &response) { + server::string_type ip = source(request); + unsigned int port = request.source_port; + std::ostringstream data; + data << "Hello, " << ip << ':' << port << '!'; + response = server::response::stock_reply(server::response::ok, data.str()); + } + void log(const server::string_type& message) { + std::cerr << "ERROR: " << message << std::endl; } }; -``hello_world`` is a functor class which handles HTTP requests. All -the operator does here is return an HTTP response with HTTP code 200 -and the body ``"Hello, !"``. The ```` in this case would be -the IP address of the client that made the request. +``hello_world`` is a functor class which handles HTTP requests. +All the operator does here is return an HTTP response with HTTP code 200 +and the body ``"Hello, :!"``. The ```` in this case would be +the IP address of the client that made the request and ```` the clients port. There are a number of pre-defined stock replies differentiated by status code with configurable bodies. - All the supported enumeration values for the response status codes can be found in ``boost/network/protocol/http/impl/response.ipp``. .. code-block:: c++ hello_world handler; - server server_(argv[1], argv[2], handler); + server::options options(handler); + server server_(options.address(argv[1]).port(argv[2])); server_.run(); -The first two arguments to the ``server`` constructor are the host and -the port on which the server will listen. The third argument is the -the handler object defined previously. +The ``server`` constructor requires an object of the ``options`` class, +this object stores all needed options, especially the host and +the port on which the server will listen. +The ``options`` constructor's single argument is the handler object defined previously. .. note:: In this example, the server is specifically made to be single-threaded. In a multi-threaded server, you would invoke the ``hello_world::run`` member diff --git a/libs/network/doc/html/_sources/examples/http/twitter_search.txt b/libs/network/doc/html/_sources/examples/http/twitter_search.txt index 6c0f2b60f..4b1945d22 100644 --- a/libs/network/doc/html/_sources/examples/http/twitter_search.txt +++ b/libs/network/doc/html/_sources/examples/http/twitter_search.txt @@ -64,7 +64,7 @@ The code `rapidjson`_, a header-only library that is released under the `MIT License`_. -.. _`rapidjson`: http://code.google.com/p/rapidjson/ +.. _`rapidjson`: https://github.com/miloyip/rapidjson .. _`MIT License`: http://www.opensource.org/licenses/mit-license.php Building and running ``twitter_search`` diff --git a/libs/network/doc/html/_sources/reference/http_client.txt b/libs/network/doc/html/_sources/reference/http_client.txt index 1277c83e4..bb4197b6f 100644 --- a/libs/network/doc/html/_sources/reference/http_client.txt +++ b/libs/network/doc/html/_sources/reference/http_client.txt @@ -25,6 +25,8 @@ asynchronous. As of 0.11 the `Synchronous Clients`_ are now *DEPRECATED* and will be removed in subsequent releases. +In 0.12.x the `Synchronous Clients`_ have been removed. + Features -------- @@ -473,3 +475,19 @@ to create a function object. The ``BOOST_NETWORK_HTTP_BODY_CALLBACK`` macro is defined in ``boost/network/protocol/http/client/macros.hpp``. + +Generated Documentation +----------------------- + +.. doxygenclass:: boost::network::http::client_options + :project: cppnetlib + :members: + :undoc-members: + +.. doxygenclass:: boost::network::http::basic_client + :project: cppnetlib + :members: + :undoc-members: + +.. doxygentypedef:: boost::network::http::client + :project: cppnetlib diff --git a/libs/network/doc/html/_sources/whats_new.txt b/libs/network/doc/html/_sources/whats_new.txt index e09530a28..db0f5bba0 100644 --- a/libs/network/doc/html/_sources/whats_new.txt +++ b/libs/network/doc/html/_sources/whats_new.txt @@ -4,6 +4,27 @@ What's New ************ +:mod:`cpp-netlib` 0.12 +---------------------- + +* Added a code of conduct. +* Add TLS SNI hostname support in the HTTP Client options. +* Changes based on Coverity reports. +* Replace std::bind with lambdas. +* Use std::shared_ptr instead of boost::shared_ptr. +* Use standalone Asio instead of Boost.Asio. +* No Boost library (shared or static) dependencies. +* Use doxygen for documentation, integrated with Breathe to Sphinx. +* Require C++11 for builds, removes support for non-C++11 compilers. +* Update documentation for hello_world_server +* Use googletest for tests +* Fix XCode-generated debug binaries caused by URI parser complexity +* Remove synchronous client implementation. +* Remove support for connection keepalive (only supported in synchronous client). +* Disable SSLv3 by default. +* Use sanitisers in continuous integration (address and thread sanitiser). +* Update minimum Boost to 1.57. Always use shared libs from Boost. + :mod:`cpp-netlib` 0.11 ---------------------- diff --git a/libs/network/doc/html/_static/Button-Info-icon.png b/libs/network/doc/html/_static/Button-Info-icon.png deleted file mode 100644 index 4f318491f2c20870226089e7009da2218819ced7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3499 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 Z{|4w49dFB_+JyiB002ovPDHLkV1i-~hynlr diff --git a/libs/network/doc/html/_static/Button-Warning-icon.png b/libs/network/doc/html/_static/Button-Warning-icon.png deleted file mode 100644 index edcd6624b9b2adbdac1e54db074fced010ae9c48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2911 zcmV-l3!wCgP)gI6cjm9C@Esm zDo3luH`d3g%0m>22#CnT5EKzm%o12aHVN5HX6E+(^Vpr)EF87GdQLazWB&PP_MiLx z_xta?|11dq;~zZP2Arw{e2hyNCHDDN#z&0CQ=Nbu@7IjS8O15rDj5?Q|6tImNI;G? zi!ojifLC-2&@Va#%>IwRj?o9@G0+Y3zB!Bu$BM+UBru-wr%+J9q7fmyxTD`R5cxy= zS+ye$!xu&{Qg6uq-`PY?83NrH8-qUdEg4$~=e6@SADPYm{JTaNTvi43jU?AXFGl&P zKtPW19^;CcLv!f9%d)rw5i(nmXxrDkZtPt{)Ue;|FIyg^NsDV_{}RTP@Lx*lSP;0D zvAAooD%MOcBA*JNocT*s`%EJAwKShWjdi50oe9Rye_>oB>N_J0+bT7A?K;L=CzF6& zrJERMzja?L7<^79h&C62I^Z!m+nyVV|Fl)V2cz;+Sn_29T>F;;vimDWPe$xy5s+bV z=9N7Hu=w5r#EeW*2h9h}EI>#~Bhh9Vp|)Z)QPW`c*J9{?+Qop1t0j0(RB z*=wg3L6_nT6rFA$an^NmP$b*v)VBW3o22h}4YvQFVV|jCifa(%OI;Y@6HVY*#)xr4 zvS8*-xxkAS)ZSA7h409tN+w1lXzQl|G#r3QFCT)r@7KyJ3mJEwNCLeXt6S%Yj4vK5 zrreeSl+L%I2zBRZQw#c6|4u6*rSky9Ko%L1&0uVQ0joJDoI9x!_th9pe7Qek{fQtT z7%LbT&mWPGBQ6aRX0->k^X;Zo(3cCMs5C7BBfN|w(jl|0Z+{-Cb{8%DupUP*JSh8C zF$T%ojyHju8H>(sp8=~MDFQ`NKy)0=3%Ae`c}5N>o$g5cMSaI}K#esPorWqtUj(|Y zL;r`u@Wn3a1Q^bE>39-o!Pq7c+P(j9Aq?yqK+Nk(SUk{LtjHcf6_j%(BxcNvBdU475nf4Dy$x5E$7sm(D&QjHJHD+e-)BV7srJF6+ej6uLe{z zJ)2Ut|O017l9bfLw z*mbN4NNwIU`B&LAWmpbtJqXykKPOya8=54boP947EAbGZ=vFYkp4W^3$5o`N)tubw zVcN?zIODaby#5MUYweg37|8grZAekJ%qxaqCKvp<-2nX|YXtO;COX^+qF|6`0HbOJ z7`vXePMrAUNGTQpI#dqzF$21fsf4`|UfBSbGFBc70y1pM_}uIH@gW>Gu!R{aA*-V` z>%4Hy>2y56ZKdsvDB2G5c)-~E3K)A|ZRP>~5|Y7vwL5sjS%WXHtf$-OMC2_S!OAyB z4XZzffXtB3^y})UWitvHeWk6LQ*s@6>Aba#U zK;2H%HG@hgSHUOS;?lN}U}gNDO@OBw%6W@e{PE+hp?7CLZ`ZTE(n%vB%;$=<%S_Ke zTE!%w>Q61%xFzIjODREP6xMBz!zB~<$t|edN6XF9p`S}YR*CoDUK+%w#^n=FKSH38 zKnO@g9=C)XZv@XmwZ{t{4``cj1*reVk{OvH%gWr22jty`fe@==z3FgQ*+G1MX}#>7 z4b~p|Cllz**qD`xfh|wB!J>SYPDT(x4UlW*<)3|yR`QZ$e7UHezswYhMZh3!Ln%Ph zp`@`y*8OCTVE1ubi4ogejhud0+wuTdomvA({mgo`1|E9O+GBdss|!s6MszJ{6*s$*m%Rpz)HOg>+mHk~!5KtvuWo=Fryr1Z z%C~#xL(1E|bOi2YlwH;8#fBDWvyl`}wG#w6t6;`W`L|{JS zH+Ns%63WKpvvEA6K$`%X5+Wsqz!40O<+13^m&}8EZZ874`tKw8lPhkQTfn z>pb`?V{|$K@=fx_P_|Gv{jC@Z@)RyBeYQkQ5=ptZ2*E1xtH za-;*gl#>&c8exC64n0R!LL_R)7fQYCHQ`b2QpRO-@5!UPuWiX;#E+!<2%VW$!191N zvIi15ptNiI)pES$jLYRH4gvXw z?2VH48TiS(BJu}#_Wik*-famF&4)zcL%kU!; zaO9-(Q+O{OkLl2FOc=NBYLX*d&v?^JJB-g5J>Pw#084uZ2>p3n@3*iBD7JBy;m*;K zj$GExd4hm)#=A@)KZU?S(Dz)G%(_M*11AkN5~QrQtDl+<6UD1x+4>k>_27Ovf_x)* zfi$BZV|AY{K3F-oh@Z~Z1kd0=j#ju#)qJy%3f_<^zjE5^{QZ1SbRZ^Re1AhT{gYew z?zRi^9+E#U)a^Di^uTdpSX*JHgZ}cdQyEic-<1bruFFF3wIFEOArX1pTK9xai-606K~ei{R^t)@Y5s#`IFD^ z<+BQ5K#u@xpUdU!&fqe#xd&2b-*aT!3!i2W@;r!!pwOXC68xx7x%3MNns zt2V`;bb^@*7RkrTz3#9Tvs**I5{TF zc~lZOkFma8fg;u|D1!W4#hTsBBEYOJEU8v(s7Rl`kZujwiB9Ljp|VQD)tlqAW@{X{pp&C6V+>`~x~r88u!^MLGERq6^RtKXXRwOS zCMQCqeq`UdVEuMg0LhKx$@)lt><26JegP@JYX1K}dz|dge*i0f#X4kQN2>q;002ov JPDHLkV1feQcf a.headerlink, h4:hover > a.headerlink, h5:hover > a.headerlink, h6:hover > a.headerlink, -dt:hover > a.headerlink { +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { visibility: visible; } @@ -314,6 +317,13 @@ table.docutils { border-collapse: collapse; } +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + table.docutils td, table.docutils th { padding: 1px 8px 1px 5px; border-top: 0; @@ -344,6 +354,25 @@ table.citation td { border-bottom: none; } +/* -- figures --------------------------------------------------------------- */ + +div.figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text { +} + + /* -- other body styles ----------------------------------------------------- */ ol.arabic { @@ -406,6 +435,10 @@ dl.glossary dt { font-size: 1.3em; } +.sig-paren { + font-size: larger; +} + .versionmodified { font-style: italic; } @@ -471,22 +504,51 @@ table.highlighttable td { padding: 0 0.5em 0 0.5em; } -tt.descname { +div.code-block-caption { + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +div.code-block-caption + div > div.highlight > pre { + margin-top: 0; +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + padding: 1em 1em 0; +} + +div.literal-block-wrapper div.highlight { + margin: 0; +} + +code.descname { background-color: transparent; font-weight: bold; font-size: 1.2em; } -tt.descclassname { +code.descclassname { background-color: transparent; } -tt.xref, a tt { +code.xref, a code { background-color: transparent; font-weight: bold; } -h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt { +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { background-color: transparent; } diff --git a/libs/network/doc/html/_static/boost.png b/libs/network/doc/html/_static/boost.png deleted file mode 100644 index 0714ca2004bbf91389d33166afc449cba84b39be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13364 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 diff --git a/libs/network/doc/html/_static/cpp-netlib.css b/libs/network/doc/html/_static/cpp-netlib.css deleted file mode 100644 index 3c4f3b612..000000000 --- a/libs/network/doc/html/_static/cpp-netlib.css +++ /dev/null @@ -1,721 +0,0 @@ -@import url('https://github.com/reset-fonts-grids.css'); - -html,body -{ - background-repeat: no-repeat; - background-position: left top; - background-attachment: fixed; - background-color: #fa2; -} - -body -{ - font: 12pt sans-serif; - color: black; -} - -#custom-doc -{ - width: 80%; - *width: 960px; - min-width: 960px; - max-width: 1240px; - margin: auto; - text-align: left; - padding-top: 16px; - margin-top: 0; -} - -#hd -{ - padding: 4px 0 12px 0; -} - -#bd -{ - /*background: #C5D88A;*/ -} - -#ft -{ - color: #C5D88A; - font-size: 90%; - padding-bottom: 2em; -} - -pre -{ - font-family: Monaco,monospace; - font-size: 14px; - background: #333; - background: -moz-linear-gradient(-90deg,#333,#222 60%); - background: -webkit-gradient(linear,0 top,0 bottom,from(#333),to(#222),color-stop(60%,#222)); - border-width: 1px 0; - margin: 1em 0; - padding: .3em .4em; - overflow: auto; - line-height: 1.3em; - color: #CCC; - border-radius: 3px; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - padding: 1em; -} - -/*** links ***/ -a -{ - text-decoration: none; - font-weight: bold -} - -a img -{ - border: none -} - -a: link,a: visited -{ - color: #800000 -} - -#bd a: link,#bd a: visited -{ - color: #800000; - text-decoration: underline -} - -#bd #sidebar a: link,#bd #sidebar a: visited -{ - color: #8B4513; - text-decoration: none -} - -a: hover -{ - color: #000 -} - -#bd a: hover -{ - background-color: #FF9955; - color: black; - text-decoration: none -} - -#bd #sidebar a: hover -{ - color: #FF9955; - background: none -} - -h2 a,h3 a,h4 a -{ - text-decoration: none !important -} - -a.reference em -{ - /*color: #FF9955;*/ - font-style: normal; - font-weight: bold; -} - -/*** sidebar ***/ -#sidebar div.sphinxsidebarwrapper -{ - font-size: 92%; - margin-right: 14px -} - -#sidebar h3,#sidebar h4 -{ - color: #487858; - font-size: 125% -} - -#sidebar a -{ - color: #8B4513 -} - -#sidebar ul ul -{ - margin-top: 0; - margin-bottom: 0 -} - -#sidebar li -{ - margin-top: 0.2em; - margin-bottom: 0.2em; - list-style-position: inside; - list-style-type: square; -} - -/*** nav ***/ -div.nav -{ - margin: 0; - font-size: 14px; - text-align: right; - color: #fff -} - -div.nav a: link,div.nav a: visited -{ - color: white -} - -#hd div.nav -{ - margin-top: -27px -} - -#ft div.nav -{ - margin-bottom: -18px -} - -#hd h1 a -{ - color: #EFFFEF -} - -#global-nav -{ - position: absolute; - top: 5px; - margin-left: -5px; - padding: 7px 0; - color: #263E2B -} - -#global-nav a -{ - padding: 0 4px -} - -#global-nav a.about -{ - padding-left: 0 -} - -#global-nav a -{ - color: #fff -} - -/*** content ***/ -#yui-main -{ - -moz-border-radius: 3px; - -moz-box-shadow: 0 0 9px rgba(0,0,0,0.5); - -webkit-border-radius: 3px; - -webkit-box-shadow: 0 0 9px rgba(0,0,0,0.5); - border-radius: 3px; - box-shadow: 0 0 9px rgba(0,0,0,0.5); - background: none repeat scroll 0 0 #6ABDFB; -} - -#yui-main div.yui-b -{ - position: relative -} - -#yui-main div.yui-b -{ - background: #FFF; - min-height: 330px; - color: #164B2B; - padding: 0.3em 2em 1em 2em -} - -/*** basic styles ***/ -dd -{ - margin-left: 15px -} - -h1,h2,h3,h4 -{ - margin-top: 1em; - font-weight: normal -} - -h1 -{ - font-size: 218%; - font-weight: bold; - margin-top: 0.6em; - margin-bottom: .4em; - line-height: 1.1em -} - -h2 -{ - font-size: 175%; - font-weight: bold; - margin-bottom: .6em; - line-height: 1.2em; - color: #092e20 -} - -h3 -{ - font-size: 150%; - font-weight: bold; - margin-bottom: .2em; - color: #487858 -} - -h4 -{ - font-size: 125%; - font-weight: bold; - margin-top: 1.5em; - margin-bottom: 3px -} - -div.figure -{ - text-align: center -} - -div.figure p.caption -{ - font-size: 1em; - margin-top: 0; - margin-bottom: 1.5em; - color: black -} - -hr -{ - color: #ccc; - background-color: #ccc; - height: 1px; - border: 0 -} - -p,ul,dl -{ - margin-top: .6em; - color: #333 -} - -#yui-main div.yui-b img -{ - max-width: 50em; - margin-left: auto; - margin-right: auto; - display: block; - margin-top: 10px; - margin-bottom: 10px -} - -caption -{ - font-size: 1em; - font-weight: bold; - margin-top: 0.5em; - margin-bottom: 0.5em; - margin-left: 2px; - text-align: center -} - -blockquote -{ - padding: 0 1em; - margin: 1em 0; - font: "Times New Roman",serif; - color: #234f32 -} - -strong -{ - font-weight: bold -} - -em -{ - font-style: italic -} - -ins -{ - font-weight: bold; - text-decoration: none -} - -/*** lists ***/ -ol.arabic li -{ - list-style-type: decimal -} - -ul li -{ - font-size: 1em -} - -ol li -{ - margin-bottom: .4em -} - -ul ul -{ - padding-left: 1.2em -} - -ul ul ul -{ - padding-left: 1em -} - -ul.linklist,ul.toc -{ - padding-left: 0 -} - -ul.toc ul -{ - margin-left: .6em -} - -ul.toc ul li -{ - list-style-type: square -} - -ul.toc ul ul li -{ - list-style-type: disc -} - -ul.linklist li,ul.toc li -{ - list-style-type: none -} - -dt -{ - font-weight: bold; - margin-top: .5em; - font-size: 1em -} - -dd -{ - margin-bottom: .8em -} - -ol.toc -{ - margin-bottom: 2em -} - -ol.toc li -{ - font-size: 125%; - padding: .5em; - line-height: 1.2em; - clear: right -} - -ol.toc li.b -{ - background-color: #E0FFB8 -} - -ol.toc li a: hover -{ - background-color: transparent !important; - text-decoration: underline !important -} - -ol.toc span.release-date -{ - color: #487858; - float: right; - font-size: 85%; - padding-right: .5em -} - -ol.toc span.comment-count -{ - font-size: 75%; - color: #999 -} - -ul.simple li -{ - list-style-type: disc; - margin-left: 2em -} - -/*** tables ***/ -table -{ - color: #000; - margin-bottom: 1em; - width: 100% -} - -table.docutils td p -{ - margin-top: 0; - margin-bottom: .5em -} - -table.docutils td,table.docutils th -{ - border-bottom: 1px solid #dfdfdf; - padding: 4px 2px -} - -table.docutils thead th -{ - border-bottom: 2px solid #dfdfdf; - text-align: left; - font-weight: bold; - #487858-space: nowrap -} - -table.docutils thead th p -{ - margin: 0; - padding: 0 -} - -table.docutils -{ - border-collapse: collapse -} - -/*** code blocks ***/ -.literal -{ - #487858-space: nowrap -} - -.literal -{ - color: #234f32 -} - -#sidebar .literal -{ - color: #487858; - background: transparent; - font-size: 11px -} - -h4 .literal -{ - color: #234f32; - font-size: 13px -} - -dt .literal,table .literal -{ - background: none -} - -#bd a.reference -{ - text-decoration: none -} - -#bd a.reference tt.literal -{ - border-bottom: 1px #234f32 dotted -} - -/*** notes & admonitions ***/ -.note,.admonition -{ - padding: .8em 1em .8em; - margin: 1em 0; - background-color: #6ABDFB; - -moz-border-radius: 3px; - -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.3); - -webkit-border-radius: 3px; - -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.3); - border-radius: 3px; - box-shadow: 0 1px 2px rgba(0,0,0,0.3); -} - -.admonition-title -{ - font-weight: bold; - margin-top: 0 !important; - margin-bottom: 0 !important -} - -.admonition .last -{ - margin-bottom: 0 !important -} - -.note -{ - padding-left: 85px; - background: #6ABDFB url(https://github.com/Button-Info-icon.png) .8em .8em no-repeat -} - -.warning -{ - padding-left: 85px; - background: #6ABDFB url(https://github.com/Button-Warning-icon.png) .8em .8em no-repeat -} - -/*** versoinadded/changes ***/ -div.versionadded,div.versionchanged -{ -} - -div.versionadded span.title,div.versionchanged span.title -{ - font-weight: bold -} - -/*** p-links ***/ -a.headerlink -{ - color: #c60f0f; - font-size: 0.8em; - padding: 0 4px 0 4px; - text-decoration: none; - visibility: hidden -} - -h1: hover > a.headerlink,h2: hover > a.headerlink,h3: hover > a.headerlink,h4: hover > a.headerlink,h5: hover > a.headerlink,h6: hover > a.headerlink,dt: hover > a.headerlink -{ - visibility: visible -} - -/*** index ***/ -table.indextable td -{ - text-align: left; - vertical-align: top -} - -table.indextable dl,table.indextable dd -{ - margin-top: 0; - margin-bottom: 0 -} - -table.indextable tr.pcap -{ - height: 10px -} - -table.indextable tr.cap -{ - margin-top: 10px; - background-color: #f2f2f2 -} - -/*** page-specific overrides ***/ -div#contents ul -{ - margin-bottom: 0 -} - -div#contents ul li -{ - margin-bottom: 0 -} - -div#contents ul ul li -{ - margin-top: 0.3em -} - -/*** IE hacks ***/ -* pre -{ -} - -.footer -{ - color: white; -} - -.footer a -{ - color: #333; -} - -img -{ - margin: 10px 0 10px 0; -} - -#index p.rubric -{ - font-size: 150%; - font-weight: normal; - margin-bottom: .2em; - color: #252; -} - -#index div.section dt -{ - font-weight: normal; -} - -#index #cpp-netlib-getting-cpp-netlib, #index #cpp-netlib-boost { - background:none repeat scroll 0 0 #6ABDFB; - margin: 2em 0 2em 2em; - - border-radius:6px 6px; - -webkit-border-radius:6px; - -moz-border-radius:6px 6px; - - box-shadow:0 1px 2px rgba(0, 0, 0, 0.6); - -webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.6); - -moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.6); - - overflow:visible; - float:right; - clear:both; - padding:1em; - width: 380px; -} - -#index #cpp-netlib-getting-cpp-netlib a -{ - font-weight: bold; - font-size: 14px; -} - -#index #cpp-netlib-getting-cpp-netlib h1 -{ - color: #333; -} - -#index #cpp-netlib-getting-cpp-netlib h2 -{ - margin: 0; -} - -#index #cpp-netlib-getting-cpp-netlib strong -{ - font-size: 20px; -} - -tt.py-exc.literal -{ - color: red; -} - -tt.xref span.pre -{ - color: green; -} - diff --git a/libs/network/doc/html/_static/default.css b/libs/network/doc/html/_static/default.css deleted file mode 100644 index 21f3f5098..000000000 --- a/libs/network/doc/html/_static/default.css +++ /dev/null @@ -1,256 +0,0 @@ -/* - * default.css_t - * ~~~~~~~~~~~~~ - * - * Sphinx stylesheet -- default theme. - * - * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -@import url("https://github.com/basic.css"); - -/* -- page layout ----------------------------------------------------------- */ - -body { - font-family: sans-serif; - font-size: 100%; - background-color: #11303d; - color: #000; - margin: 0; - padding: 0; -} - -div.document { - background-color: #1c4e63; -} - -div.documentwrapper { - float: left; - width: 100%; -} - -div.bodywrapper { - margin: 0 0 0 230px; -} - -div.body { - background-color: #ffffff; - color: #000000; - padding: 0 20px 30px 20px; -} - -div.footer { - color: #ffffff; - width: 100%; - padding: 9px 0 9px 0; - text-align: center; - font-size: 75%; -} - -div.footer a { - color: #ffffff; - text-decoration: underline; -} - -div.related { - background-color: #133f52; - line-height: 30px; - color: #ffffff; -} - -div.related a { - color: #ffffff; -} - -div.sphinxsidebar { -} - -div.sphinxsidebar h3 { - font-family: 'Trebuchet MS', sans-serif; - color: #ffffff; - font-size: 1.4em; - font-weight: normal; - margin: 0; - padding: 0; -} - -div.sphinxsidebar h3 a { - color: #ffffff; -} - -div.sphinxsidebar h4 { - font-family: 'Trebuchet MS', sans-serif; - color: #ffffff; - font-size: 1.3em; - font-weight: normal; - margin: 5px 0 0 0; - padding: 0; -} - -div.sphinxsidebar p { - color: #ffffff; -} - -div.sphinxsidebar p.topless { - margin: 5px 10px 10px 10px; -} - -div.sphinxsidebar ul { - margin: 10px; - padding: 0; - color: #ffffff; -} - -div.sphinxsidebar a { - color: #98dbcc; -} - -div.sphinxsidebar input { - border: 1px solid #98dbcc; - font-family: sans-serif; - font-size: 1em; -} - - - -/* -- hyperlink styles ------------------------------------------------------ */ - -a { - color: #355f7c; - text-decoration: none; -} - -a:visited { - color: #355f7c; - text-decoration: none; -} - -a:hover { - text-decoration: underline; -} - - - -/* -- body styles ----------------------------------------------------------- */ - -div.body h1, -div.body h2, -div.body h3, -div.body h4, -div.body h5, -div.body h6 { - font-family: 'Trebuchet MS', sans-serif; - background-color: #f2f2f2; - font-weight: normal; - color: #20435c; - border-bottom: 1px solid #ccc; - margin: 20px -20px 10px -20px; - padding: 3px 0 3px 10px; -} - -div.body h1 { margin-top: 0; font-size: 200%; } -div.body h2 { font-size: 160%; } -div.body h3 { font-size: 140%; } -div.body h4 { font-size: 120%; } -div.body h5 { font-size: 110%; } -div.body h6 { font-size: 100%; } - -a.headerlink { - color: #c60f0f; - font-size: 0.8em; - padding: 0 4px 0 4px; - text-decoration: none; -} - -a.headerlink:hover { - background-color: #c60f0f; - color: white; -} - -div.body p, div.body dd, div.body li { - text-align: justify; - line-height: 130%; -} - -div.admonition p.admonition-title + p { - display: inline; -} - -div.admonition p { - margin-bottom: 5px; -} - -div.admonition pre { - margin-bottom: 5px; -} - -div.admonition ul, div.admonition ol { - margin-bottom: 5px; -} - -div.note { - background-color: #eee; - border: 1px solid #ccc; -} - -div.seealso { - background-color: #ffc; - border: 1px solid #ff6; -} - -div.topic { - background-color: #eee; -} - -div.warning { - background-color: #ffe4e4; - border: 1px solid #f66; -} - -p.admonition-title { - display: inline; -} - -p.admonition-title:after { - content: ":"; -} - -pre { - padding: 5px; - background-color: #eeffcc; - color: #333333; - line-height: 120%; - border: 1px solid #ac9; - border-left: none; - border-right: none; -} - -tt { - background-color: #ecf0f3; - padding: 0 1px 0 1px; - font-size: 0.95em; -} - -th { - background-color: #ede; -} - -.warning tt { - background: #efc2c2; -} - -.note tt { - background: #d6d6d6; -} - -.viewcode-back { - font-family: sans-serif; -} - -div.viewcode-block:target { - background-color: #f4debf; - border-top: 1px solid #ac9; - border-bottom: 1px solid #ac9; -} \ No newline at end of file diff --git a/libs/network/doc/html/_static/dialog-note.png b/libs/network/doc/html/_static/dialog-note.png index 263fbd5866aef1ce3645d768fbf55def9a091905..7086821140dc9299530e5154f0fd38b53960b086 100644 GIT binary patch delta 1427 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

xe zDHe&t$pe7^jQ000%nuInx4F4=QCX~w^U^Q}TdtqTA6yPFSiF|T$ zlEH?-#R6>iZa`;4DB`VE1)xP&A5~QaxjlPWQ{dO> zSb))E`5-TE76sg2t@_N~^z=C=h7MJ1#?AJ3r$L0JnsOo1Y_I@}umE9Z-=+~?P!_J+6lNiFR zk%bFLz^!M0q*8_4&CTG&Hh9mSV}D;ZJxxvEZfpb*Z4_}AxK5q~7j8W#W`uC`C o>xk3{f<7;iEc|ehkpI&42hp6N)|*>-0ssI207*qoM6N<$g3~2@i2wiq delta 1356 zcmV-S1+)6q3hxS#G=C;ZL_t(oh2@u9XjDfSfWMh@&hFWZyD^EYSsRlk>)nXUs)(0( z$%2=F#0pkKqZJ=CkWv*T^@3Vk>4S)U^2NqjY9I0* z39&LbK3qFuI7(%ZZ%;}2Gqh=wf?-g1;X+qD8r}8{{PEcV%0X!tqH%6Sm02-&UfC@G=y)hm>yCV%{)kdSay#zr#c%`+vO8Wn)EFv~H1{3idDDQesG>(~kkP^VAFFbrB-TZu-a zn5K!6k$-_>%NE|&*5VHYRMqQUQ3@+Y44}fP?EHKyUQ>f*SvYp@1|SlN5DW$h27^Q* z5rhypi;J-og|2(|$eKSN6;4~9cB)sYgKfwF=i#fQ*|T%prYYO&>#^_Jg-l9HIC3}~D2jrjDCoML zxDnFn#I<)X9Z#O%l~TASP4c~kT|)vm3aV6;lT*TB*>>d$((gwvEKE2_WWLjh)9HL~ zUVjLIbHfI-sZ(jMt0OBXM^mKy;dk)-XMhaY;ajj^qW$%2(ed;tjy-#jx}J!>xA%BF zcs!l~U{Y1_96Cf-b2E-;6mM3RZVd874*>WLT#By$l$D#S#VRXNXUsq^C>Y>e2r=Lb z^j&j=!`K%sB3@rl=H$sXp=o>0!^BSln18T$Vs7pj+1N-|OAF4D5|DC$1AvN(3Mwip z1{^_eOFD7{BNjt#YGPaQ=mbD1WZ8VaqO|O6t?kw=>}%Je<>U++y%2)(@^UU- zyf~!Gz3tH&5Z zyf;p?Zf{t9`u=;|8#fX?a|ZMIbASBl>DJ4JhLgbjz5vpKd|!698oPE4fasPj{qtqS zV!U}nQhK`b970DyKML_)0Ovbsj@-OC=8MgnrPMUAEG)wS)5J22?y+HDnPzw2Z#-bF z|D0)J#^W@BCG?<`( zZuZHKk&1+OfG{B52u(l>&<+D@wF2mXoe})DeLzg03+U`=)+pK@nfwcI3!<>&kwMor^(NtW3yF87Slz;1l8sq&LUMQwyEFdc@K%hw)40aP7qGH3pKv(fMMv@>%PU5i` z`Xiu%G@%YS%r?0+*EUq~l1+AY-n=)nyXu_#_C%d?zlUL+^LUTqF@{wM?s0-UJf?`x z4MhjI!YyVg;<{=j-*AX;G<>&kwMol#tg zK_ydLmzem(vK1>2TzUEGl*lj!N<7$PCrdoWV0 z$w0*Ap!bZ4if7h;-yfL#MC0e;t{xY+$l~DX2EWYIPet1cohf^BdG+jXhtuq&W-0|c zKPmlKv-7OTjb}T)7@fTGd9y~u4{g8An;)c2U=w=nwQ7}zVDc>n+a delta 308 zcmV-40n7f|0_y^h87Bq+001BJ|6u?C00DDSM?wIu&K&6g000JJOGiWi000000Qp0^ ze~~ULf9pv^K~y-)&C;PxLqQM)(DT|#EFdc@K%kj47(M`psNyfsRs05$qymp#EQWpr zRFEdr0S_}xUS3|?P{mC)+1a^s@67HhrS$EIQcAyvVJT(2NAVcLDuV}{;0})w@wuVs z09UxhJR+{EM)D1Z_(qLq+~Wr~I7fv(77=j_e}jg>1W!q*aFMHtI&+itLDg#UHAmTo zc|@G9gI+6nhE+Q0a9<@yr$9t}VVa%Q9j#B3qjQADDDQcpO)MhfsLkzdm~+&4jXL+E zE@G!ZM0{YD9afm-*`I&gvXrvi#u@C;xZGv3OW?)7$1f7wHz|_RV#KgtL#m2_Q z$H&L&>gwz3>+J08?d|35?d|RH*6!}^@9*#M@bK~R@$&NW|Ns93B(0|a000GaQh!cU z09L51v^Ch?X8-^I0b)x>L?pBZ`I!I!0BlJ_K~xwS1;Ig1!cYJOzrw=V#E|0>T@h|vY*JR(S;xCp}lB}YIuC>q0@1;qn!hZ5^;KY4+| z@smSV#0*C{U85#xv001BJ|6u?C00v@9M??Vs0RI60puMM)ks&I70ToF^K~y-) zt&y=x#6S>+ze#c^Cm0A@3nC^Qc-YxlS_y(!_%MPYX?%tQUqG?c_Yee?bf*#1M8xI< z&s__-Be}$Q5&vp-nEB_M9T^M;7g?4a&`yV87@h+VMUiQ%D2mL)$(aOso};w}Kt!ga zCb5WM+cvK2mQbb!T5FPjBq=o%B_i~Cy~-|5@eu?;BSD>fzF#x(9b*=- zEUTFS;N&uGyxsBsYV!&JTWg=}Y<9VMd?88IwDA6U^g98-@OH@QoggBN->w0$7nfnF zKc7MR@WeNaVDy;r#|UFy>2CCEKe)0&XMMX=(3!bJBf-($3L;W1xkNGdqk-pn{6&sZ k>MD-o-8M~1sWbjdUsbDge>g^d#{d8T07*qoM6N<$f-yapG5`Po diff --git a/libs/network/doc/html/_static/ftp_uri.png b/libs/network/doc/html/_static/ftp_uri.png deleted file mode 100644 index f77d3c87b891e86d794e2ee60255b1f95baf2ddc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25570 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 a2mx= 0 && j < len ? [ this[j] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(null); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: deletedIds.sort, + splice: deletedIds.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var src, copyIsArray, copy, name, options, clone, + target = arguments[0] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) { + target = {}; + } + + // extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) { + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray(src) ? src : []; + + } else { + clone = src && jQuery.isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend({ + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + // See test/unit/core.js for details concerning isFunction. + // Since version 1.3, DOM methods and functions like alert + // aren't supported. They return false on IE (#2968). + isFunction: function( obj ) { + return jQuery.type(obj) === "function"; + }, + + isArray: Array.isArray || function( obj ) { + return jQuery.type(obj) === "array"; + }, + + isWindow: function( obj ) { + /* jshint eqeqeq: false */ + return obj != null && obj == obj.window; + }, + + isNumeric: function( obj ) { + // parseFloat NaNs numeric-cast false positives (null|true|false|"") + // ...but misinterprets leading-number strings, particularly hex literals ("0x...") + // subtraction forces infinities to NaN + return !jQuery.isArray( obj ) && obj - parseFloat( obj ) >= 0; + }, + + isEmptyObject: function( obj ) { + var name; + for ( name in obj ) { + return false; + } + return true; + }, + + isPlainObject: function( obj ) { + var key; + + // Must be an Object. + // Because of IE, we also have to check the presence of the constructor property. + // Make sure that DOM nodes and window objects don't pass through, as well + if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { + return false; + } + + try { + // Not own constructor property must be Object + if ( obj.constructor && + !hasOwn.call(obj, "constructor") && + !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { + return false; + } + } catch ( e ) { + // IE8,9 Will throw exceptions on certain host objects #9897 + return false; + } + + // Support: IE<9 + // Handle iteration over inherited properties before own properties. + if ( support.ownLast ) { + for ( key in obj ) { + return hasOwn.call( obj, key ); + } + } + + // Own properties are enumerated firstly, so to speed up, + // if last one is own, then all properties are own. + for ( key in obj ) {} + + return key === undefined || hasOwn.call( obj, key ); + }, + + type: function( obj ) { + if ( obj == null ) { + return obj + ""; + } + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call(obj) ] || "object" : + typeof obj; + }, + + // Evaluates a script in a global context + // Workarounds based on findings by Jim Driscoll + // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context + globalEval: function( data ) { + if ( data && jQuery.trim( data ) ) { + // We use execScript on Internet Explorer + // We use an anonymous function so that context is window + // rather than jQuery in Firefox + ( window.execScript || function( data ) { + window[ "eval" ].call( window, data ); + } )( data ); + } + }, + + // Convert dashed to camelCase; used by the css and data modules + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + }, + + // args is for internal usage only + each: function( obj, callback, args ) { + var value, + i = 0, + length = obj.length, + isArray = isArraylike( obj ); + + if ( args ) { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } + + // A special, fast, case for the most common use of each + } else { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } + } + + return obj; + }, + + // Support: Android<4.1, IE<9 + trim: function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArraylike( Object(arr) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + var len; + + if ( arr ) { + if ( indexOf ) { + return indexOf.call( arr, elem, i ); + } + + len = arr.length; + i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; + + for ( ; i < len; i++ ) { + // Skip accessing in sparse arrays + if ( i in arr && arr[ i ] === elem ) { + return i; + } + } + } + + return -1; + }, + + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + while ( j < len ) { + first[ i++ ] = second[ j++ ]; + } + + // Support: IE<9 + // Workaround casting of .length to NaN on otherwise arraylike objects (e.g., NodeLists) + if ( len !== len ) { + while ( second[j] !== undefined ) { + first[ i++ ] = second[ j++ ]; + } + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var value, + i = 0, + length = elems.length, + isArray = isArraylike( elems ), + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var args, proxy, tmp; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + now: function() { + return +( new Date() ); + }, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +}); + +// Populate the class2type map +jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +}); + +function isArraylike( obj ) { + var length = obj.length, + type = jQuery.type( obj ); + + if ( type === "function" || jQuery.isWindow( obj ) ) { + return false; + } + + if ( obj.nodeType === 1 && length ) { + return true; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v1.10.19 + * http://sizzlejs.com/ + * + * Copyright 2013 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2014-04-18 + */ +(function( window ) { + +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + -(new Date()), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // General-purpose constants + strundefined = typeof undefined, + MAX_NEGATIVE = 1 << 31, + + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf if we can't use a native one + indexOf = arr.indexOf || function( elem ) { + var i = 0, + len = this.length; + for ( ; i < len; i++ ) { + if ( this[i] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + // http://www.w3.org/TR/css3-syntax/#characters + characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", + + // Loosely modeled on CSS identifier characters + // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors + // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = characterEncoding.replace( "w", "w#" ), + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + characterEncoding + ")(?:" + whitespace + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + + "*\\]", + + pseudos = ":(" + characterEncoding + ")(?:\\((" + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + characterEncoding + ")" ), + "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), + "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + rescape = /'|\\/g, + + // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox<24 + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + high < 0 ? + // BMP codepoint + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }; + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var match, elem, m, nodeType, + // QSA vars + i, groups, old, nid, newContext, newSelector; + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + + context = context || document; + results = results || []; + + if ( !selector || typeof selector !== "string" ) { + return results; + } + + if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) { + return []; + } + + if ( documentIsHTML && !seed ) { + + // Shortcuts + if ( (match = rquickExpr.exec( selector )) ) { + // Speed-up: Sizzle("#ID") + if ( (m = match[1]) ) { + if ( nodeType === 9 ) { + elem = context.getElementById( m ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document (jQuery #6963) + if ( elem && elem.parentNode ) { + // Handle the case where IE, Opera, and Webkit return items + // by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + } else { + // Context is not a document + if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && + contains( context, elem ) && elem.id === m ) { + results.push( elem ); + return results; + } + } + + // Speed-up: Sizzle("TAG") + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Speed-up: Sizzle(".CLASS") + } else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) { + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // QSA path + if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + nid = old = expando; + newContext = context; + newSelector = nodeType === 9 && selector; + + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + groups = tokenize( selector ); + + if ( (old = context.getAttribute("id")) ) { + nid = old.replace( rescape, "\\$&" ); + } else { + context.setAttribute( "id", nid ); + } + nid = "[id='" + nid + "'] "; + + i = groups.length; + while ( i-- ) { + groups[i] = nid + toSelector( groups[i] ); + } + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || context; + newSelector = groups.join(","); + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch(qsaError) { + } finally { + if ( !old ) { + context.removeAttribute("id"); + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {Function(string, Object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key + " " ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created div and expects a boolean result + */ +function assert( fn ) { + var div = document.createElement("div"); + + try { + return !!fn( div ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( div.parentNode ) { + div.parentNode.removeChild( div ); + } + // release memory in IE + div = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split("|"), + i = attrs.length; + + while ( i-- ) { + Expr.attrHandle[ arr[i] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + ( ~b.sourceIndex || MAX_NEGATIVE ) - + ( ~a.sourceIndex || MAX_NEGATIVE ); + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== strundefined && context; +} + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, + doc = node ? node.ownerDocument || node : preferredDoc, + parent = doc.defaultView; + + // If no document and documentElement is available, return + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Set our document + document = doc; + docElem = doc.documentElement; + + // Support tests + documentIsHTML = !isXML( doc ); + + // Support: IE>8 + // If iframe document is assigned to "document" variable and if iframe has been reloaded, + // IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936 + // IE6-8 do not support the defaultView property so parent will be undefined + if ( parent && parent !== parent.top ) { + // IE11 does not have attachEvent, so all must suffer + if ( parent.addEventListener ) { + parent.addEventListener( "unload", function() { + setDocument(); + }, false ); + } else if ( parent.attachEvent ) { + parent.attachEvent( "onunload", function() { + setDocument(); + }); + } + } + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans) + support.attributes = assert(function( div ) { + div.className = "i"; + return !div.getAttribute("className"); + }); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert(function( div ) { + div.appendChild( doc.createComment("") ); + return !div.getElementsByTagName("*").length; + }); + + // Check if getElementsByClassName can be trusted + support.getElementsByClassName = rnative.test( doc.getElementsByClassName ) && assert(function( div ) { + div.innerHTML = "

"; + + // Support: Safari<4 + // Catch class over-caching + div.firstChild.className = "i"; + // Support: Opera<10 + // Catch gEBCN failure to find non-leading classes + return div.getElementsByClassName("i").length === 2; + }); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert(function( div ) { + docElem.appendChild( div ).id = expando; + return !doc.getElementsByName || !doc.getElementsByName( expando ).length; + }); + + // ID find and filter + if ( support.getById ) { + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== strundefined && documentIsHTML ) { + var m = context.getElementById( id ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + return m && m.parentNode ? [ m ] : []; + } + }; + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + } else { + // Support: IE6/7 + // getElementById is not reliable as a find shortcut + delete Expr.find["ID"]; + + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + } + + // Tag + Expr.find["TAG"] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== strundefined ) { + return context.getElementsByTagName( tag ); + } + } : + function( tag, context ) { + var elem, + tmp = [], + i = 0, + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See http://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( div ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // http://bugs.jquery.com/ticket/12359 + div.innerHTML = ""; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( div.querySelectorAll("[msallowclip^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !div.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + }); + + assert(function( div ) { + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = doc.createElement("input"); + input.setAttribute( "type", "hidden" ); + div.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( div.querySelectorAll("[name=d]").length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":enabled").length ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + div.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( div ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( div, "div" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( div, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully does not implement inclusive descendent + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + + // Choose the first element that is related to our preferred document + if ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { + return -1; + } + if ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + return a === doc ? -1 : + b === doc ? 1 : + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + return doc; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + if ( support.matchesSelector && documentIsHTML && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch(e) {} + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + (val = elem.getAttributeNode(name)) && val.specified ? + val.value : + null; +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + while ( (node = elem[i++]) ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[6] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[3] ) { + match[2] = match[4] || match[5] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { return true; } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, outerCache, node, diff, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + // Seek `elem` from a previously-cached index + outerCache = parent[ expando ] || (parent[ expando ] = {}); + cache = outerCache[ type ] || []; + nodeIndex = cache[0] === dirruns && cache[1]; + diff = cache[0] === dirruns && cache[2]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + outerCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + // Use previously-cached element index if available + } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { + diff = cache[1]; + + // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) + } else { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { + // Cache the index of each encountered element + if ( useCache ) { + (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf.call( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifier + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": function( elem ) { + return elem.disabled === false; + }, + + "disabled": function( elem ) { + return elem.disabled === true; + }, + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( (tokens = []) ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push({ + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + }); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push({ + value: matched, + type: type, + matches: match + }); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +}; + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + checkNonElements = base && dir === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + if ( (oldCache = outerCache[ dir ]) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return (newCache[ 2 ] = oldCache[ 2 ]); + } else { + // Reuse newcache so results back-propagate to previous elements + outerCache[ dir ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { + return true; + } + } + } + } + } + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf.call( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), + len = elems.length; + + if ( outermost ) { + outermostContext = context !== document && context; + } + + // Add elements passing elementMatchers directly to results + // Keep `i` a string if there are no elements so `matchedCount` will be "00" below + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id + for ( ; i !== len && (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // Apply set filters to unmatched elements + matchedCount += i; + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +}; + +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( (selector = compiled.selector || selector) ); + + results = results || []; + + // Try to minimize operations if there is no seed and only one group + if ( match.length === 1 ) { + + // Take a shortcut and set the context if the root selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + support.getById && context.nodeType === 9 && documentIsHTML && + Expr.relative[ tokens[1].type ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +}; + +// One-time assignments + +// Sort stability +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; + +// Support: Chrome<14 +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert(function( div1 ) { + // Should return 1, but returns 4 (following) + return div1.compareDocumentPosition( document.createElement("div") ) & 1; +}); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert(function( div ) { + div.innerHTML = "
"; + return div.firstChild.getAttribute("href") === "#" ; +}) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + }); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert(function( div ) { + div.innerHTML = ""; + div.firstChild.setAttribute( "value", "" ); + return div.firstChild.getAttribute( "value" ) === ""; +}) ) { + addHandle( "value", function( elem, name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + }); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert(function( div ) { + return div.getAttribute("disabled") == null; +}) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + (val = elem.getAttributeNode( name )) && val.specified ? + val.value : + null; + } + }); +} + +return Sizzle; + +})( window ); + + + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; +jQuery.expr[":"] = jQuery.expr.pseudos; +jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; + + + +var rneedsContext = jQuery.expr.match.needsContext; + +var rsingleTag = (/^<(\w+)\s*\/?>(?:<\/\1>|)$/); + + + +var risSimple = /^.[^:#\[\.,]*$/; + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + /* jshint -W018 */ + return !!qualifier.call( elem, i, elem ) !== not; + }); + + } + + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + }); + + } + + if ( typeof qualifier === "string" ) { + if ( risSimple.test( qualifier ) ) { + return jQuery.filter( qualifier, elements, not ); + } + + qualifier = jQuery.filter( qualifier, elements ); + } + + return jQuery.grep( elements, function( elem ) { + return ( jQuery.inArray( elem, qualifier ) >= 0 ) !== not; + }); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 && elem.nodeType === 1 ? + jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] : + jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + })); +}; + +jQuery.fn.extend({ + find: function( selector ) { + var i, + ret = [], + self = this, + len = self.length; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + }) ); + } + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + // Needed because $( selector, context ) becomes $( context ).find( selector ) + ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); + ret.selector = this.selector ? this.selector + " " + selector : selector; + return ret; + }, + filter: function( selector ) { + return this.pushStack( winnow(this, selector || [], false) ); + }, + not: function( selector ) { + return this.pushStack( winnow(this, selector || [], true) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +}); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // Use the correct document accordingly with window argument (sandbox) + document = window.document, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, + + init = jQuery.fn.init = function( selector, context ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) { + context = context instanceof jQuery ? context[0] : context; + + // scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[1], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + // Properties of context are called as methods if possible + if ( jQuery.isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[2] ); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem.id !== match[2] ) { + return rootjQuery.find( selector ); + } + + // Otherwise, we inject the element directly into the jQuery object + this.length = 1; + this[0] = elem; + } + + this.context = document; + this.selector = selector; + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || rootjQuery ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this.context = this[0] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return typeof rootjQuery.ready !== "undefined" ? + rootjQuery.ready( selector ) : + // Execute immediately if ready is not present + selector( jQuery ); + } + + if ( selector.selector !== undefined ) { + this.selector = selector.selector; + this.context = selector.context; + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + // methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.extend({ + dir: function( elem, dir, until ) { + var matched = [], + cur = elem[ dir ]; + + while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { + if ( cur.nodeType === 1 ) { + matched.push( cur ); + } + cur = cur[dir]; + } + return matched; + }, + + sibling: function( n, elem ) { + var r = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + r.push( n ); + } + } + + return r; + } +}); + +jQuery.fn.extend({ + has: function( target ) { + var i, + targets = jQuery( target, this ), + len = targets.length; + + return this.filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( this, targets[i] ) ) { + return true; + } + } + }); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? + jQuery( selectors, context || this.context ) : + 0; + + for ( ; i < l; i++ ) { + for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) { + // Always skip document fragments + if ( cur.nodeType < 11 && (pos ? + pos.index(cur) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector(cur, selectors)) ) { + + matched.push( cur ); + break; + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched ); + }, + + // Determine the position of an element within + // the matched set of elements + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1; + } + + // index in selector + if ( typeof elem === "string" ) { + return jQuery.inArray( this[0], jQuery( elem ) ); + } + + // Locate the position of the desired element + return jQuery.inArray( + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[0] : elem, this ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.unique( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter(selector) + ); + } +}); + +function sibling( cur, dir ) { + do { + cur = cur[ dir ]; + } while ( cur && cur.nodeType !== 1 ); + + return cur; +} + +jQuery.each({ + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return jQuery.dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return jQuery.dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return jQuery.dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return jQuery.dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return jQuery.dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return jQuery.dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return jQuery.sibling( elem.firstChild ); + }, + contents: function( elem ) { + return jQuery.nodeName( elem, "iframe" ) ? + elem.contentDocument || elem.contentWindow.document : + jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var ret = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + if ( this.length > 1 ) { + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + ret = jQuery.unique( ret ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + } + + return this.pushStack( ret ); + }; +}); +var rnotwhite = (/\S+/g); + + + +// String to Object options format cache +var optionsCache = {}; + +// Convert String-formatted options into Object-formatted ones and store in cache +function createOptions( options ) { + var object = optionsCache[ options ] = {}; + jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) { + object[ flag ] = true; + }); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + ( optionsCache[ options ] || createOptions( options ) ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + // Last fire value (for non-forgettable lists) + memory, + // Flag to know if list was already fired + fired, + // End of the loop when firing + firingLength, + // Index of currently firing callback (modified by remove if needed) + firingIndex, + // First callback to fire (used internally by add and fireWith) + firingStart, + // Actual callback list + list = [], + // Stack of fire calls for repeatable lists + stack = !options.once && [], + // Fire callbacks + fire = function( data ) { + memory = options.memory && data; + fired = true; + firingIndex = firingStart || 0; + firingStart = 0; + firingLength = list.length; + firing = true; + for ( ; list && firingIndex < firingLength; firingIndex++ ) { + if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { + memory = false; // To prevent further calls using add + break; + } + } + firing = false; + if ( list ) { + if ( stack ) { + if ( stack.length ) { + fire( stack.shift() ); + } + } else if ( memory ) { + list = []; + } else { + self.disable(); + } + } + }, + // Actual Callbacks object + self = { + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + // First, we save the current length + var start = list.length; + (function add( args ) { + jQuery.each( args, function( _, arg ) { + var type = jQuery.type( arg ); + if ( type === "function" ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && type !== "string" ) { + // Inspect recursively + add( arg ); + } + }); + })( arguments ); + // Do we need to add the callbacks to the + // current firing batch? + if ( firing ) { + firingLength = list.length; + // With memory, if we're not firing then + // we should call right away + } else if ( memory ) { + firingStart = start; + fire( memory ); + } + } + return this; + }, + // Remove a callback from the list + remove: function() { + if ( list ) { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + // Handle firing indexes + if ( firing ) { + if ( index <= firingLength ) { + firingLength--; + } + if ( index <= firingIndex ) { + firingIndex--; + } + } + } + }); + } + return this; + }, + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); + }, + // Remove all callbacks from the list + empty: function() { + list = []; + firingLength = 0; + return this; + }, + // Have the list do nothing anymore + disable: function() { + list = stack = memory = undefined; + return this; + }, + // Is it disabled? + disabled: function() { + return !list; + }, + // Lock the list in its current state + lock: function() { + stack = undefined; + if ( !memory ) { + self.disable(); + } + return this; + }, + // Is it locked? + locked: function() { + return !stack; + }, + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( list && ( !fired || stack ) ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + if ( firing ) { + stack.push( args ); + } else { + fire( args ); + } + } + return this; + }, + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + + +jQuery.extend({ + + Deferred: function( func ) { + var tuples = [ + // action, add listener, listener list, final state + [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], + [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], + [ "notify", "progress", jQuery.Callbacks("memory") ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + then: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + return jQuery.Deferred(function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; + // deferred[ done | fail | progress ] for forwarding actions to newDefer + deferred[ tuple[1] ](function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise() + .done( newDefer.resolve ) + .fail( newDefer.reject ) + .progress( newDefer.notify ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); + } + }); + }); + fns = null; + }).promise(); + }, + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Keep pipe for back-compat + promise.pipe = promise.then; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 3 ]; + + // promise[ done | fail | progress ] = list.add + promise[ tuple[1] ] = list.add; + + // Handle state + if ( stateString ) { + list.add(function() { + // state = [ resolved | rejected ] + state = stateString; + + // [ reject_list | resolve_list ].disable; progress_list.lock + }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); + } + + // deferred[ resolve | reject | notify ] + deferred[ tuple[0] ] = function() { + deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); + return this; + }; + deferred[ tuple[0] + "With" ] = list.fireWith; + }); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( subordinate /* , ..., subordinateN */ ) { + var i = 0, + resolveValues = slice.call( arguments ), + length = resolveValues.length, + + // the count of uncompleted subordinates + remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, + + // the master Deferred. If resolveValues consist of only a single Deferred, just use that. + deferred = remaining === 1 ? subordinate : jQuery.Deferred(), + + // Update function for both resolve and progress values + updateFunc = function( i, contexts, values ) { + return function( value ) { + contexts[ i ] = this; + values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( values === progressValues ) { + deferred.notifyWith( contexts, values ); + + } else if ( !(--remaining) ) { + deferred.resolveWith( contexts, values ); + } + }; + }, + + progressValues, progressContexts, resolveContexts; + + // add listeners to Deferred subordinates; treat others as resolved + if ( length > 1 ) { + progressValues = new Array( length ); + progressContexts = new Array( length ); + resolveContexts = new Array( length ); + for ( ; i < length; i++ ) { + if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { + resolveValues[ i ].promise() + .done( updateFunc( i, resolveContexts, resolveValues ) ) + .fail( deferred.reject ) + .progress( updateFunc( i, progressContexts, progressValues ) ); + } else { + --remaining; + } + } + } + + // if we're not waiting on anything, resolve the master + if ( !remaining ) { + deferred.resolveWith( resolveContexts, resolveValues ); + } + + return deferred.promise(); + } +}); + + +// The deferred used on DOM ready +var readyList; + +jQuery.fn.ready = function( fn ) { + // Add the callback + jQuery.ready.promise().done( fn ); + + return this; +}; + +jQuery.extend({ + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Hold (or release) the ready event + holdReady: function( hold ) { + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } + }, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if ( !document.body ) { + return setTimeout( jQuery.ready ); + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + + // Trigger any bound ready events + if ( jQuery.fn.triggerHandler ) { + jQuery( document ).triggerHandler( "ready" ); + jQuery( document ).off( "ready" ); + } + } +}); + +/** + * Clean-up method for dom ready events + */ +function detach() { + if ( document.addEventListener ) { + document.removeEventListener( "DOMContentLoaded", completed, false ); + window.removeEventListener( "load", completed, false ); + + } else { + document.detachEvent( "onreadystatechange", completed ); + window.detachEvent( "onload", completed ); + } +} + +/** + * The ready event handler and self cleanup method + */ +function completed() { + // readyState === "complete" is good enough for us to call the dom ready in oldIE + if ( document.addEventListener || event.type === "load" || document.readyState === "complete" ) { + detach(); + jQuery.ready(); + } +} + +jQuery.ready.promise = function( obj ) { + if ( !readyList ) { + + readyList = jQuery.Deferred(); + + // Catch cases where $(document).ready() is called after the browser event has already occurred. + // we once tried to use readyState "interactive" here, but it caused issues like the one + // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 + if ( document.readyState === "complete" ) { + // Handle it asynchronously to allow scripts the opportunity to delay ready + setTimeout( jQuery.ready ); + + // Standards-based browsers support DOMContentLoaded + } else if ( document.addEventListener ) { + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed, false ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed, false ); + + // If IE event model is used + } else { + // Ensure firing before onload, maybe late but safe also for iframes + document.attachEvent( "onreadystatechange", completed ); + + // A fallback to window.onload, that will always work + window.attachEvent( "onload", completed ); + + // If IE and not a frame + // continually check to see if the document is ready + var top = false; + + try { + top = window.frameElement == null && document.documentElement; + } catch(e) {} + + if ( top && top.doScroll ) { + (function doScrollCheck() { + if ( !jQuery.isReady ) { + + try { + // Use the trick by Diego Perini + // http://javascript.nwbox.com/IEContentLoaded/ + top.doScroll("left"); + } catch(e) { + return setTimeout( doScrollCheck, 50 ); + } + + // detach all dom ready events + detach(); + + // and execute any waiting functions + jQuery.ready(); + } + })(); + } + } + } + return readyList.promise( obj ); +}; + + +var strundefined = typeof undefined; + + + +// Support: IE<9 +// Iteration over object's inherited properties before its own +var i; +for ( i in jQuery( support ) ) { + break; +} +support.ownLast = i !== "0"; + +// Note: most support tests are defined in their respective modules. +// false until the test is run +support.inlineBlockNeedsLayout = false; + +// Execute ASAP in case we need to set body.style.zoom +jQuery(function() { + // Minified: var a,b,c,d + var val, div, body, container; + + body = document.getElementsByTagName( "body" )[ 0 ]; + if ( !body || !body.style ) { + // Return for frameset docs that don't have a body + return; + } + + // Setup + div = document.createElement( "div" ); + container = document.createElement( "div" ); + container.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px"; + body.appendChild( container ).appendChild( div ); + + if ( typeof div.style.zoom !== strundefined ) { + // Support: IE<8 + // Check if natively block-level elements act like inline-block + // elements when setting their display to 'inline' and giving + // them layout + div.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1"; + + support.inlineBlockNeedsLayout = val = div.offsetWidth === 3; + if ( val ) { + // Prevent IE 6 from affecting layout for positioned elements #11048 + // Prevent IE from shrinking the body in IE 7 mode #12869 + // Support: IE<8 + body.style.zoom = 1; + } + } + + body.removeChild( container ); +}); + + + + +(function() { + var div = document.createElement( "div" ); + + // Execute the test only if not already executed in another module. + if (support.deleteExpando == null) { + // Support: IE<9 + support.deleteExpando = true; + try { + delete div.test; + } catch( e ) { + support.deleteExpando = false; + } + } + + // Null elements to avoid leaks in IE. + div = null; +})(); + + +/** + * Determines whether an object can have data + */ +jQuery.acceptData = function( elem ) { + var noData = jQuery.noData[ (elem.nodeName + " ").toLowerCase() ], + nodeType = +elem.nodeType || 1; + + // Do not set data on non-element DOM nodes because it will not be cleared (#8335). + return nodeType !== 1 && nodeType !== 9 ? + false : + + // Nodes accept data unless otherwise specified; rejection can be conditional + !noData || noData !== true && elem.getAttribute("classid") === noData; +}; + + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /([A-Z])/g; + +function dataAttr( elem, key, data ) { + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + + var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); + + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = data === "true" ? true : + data === "false" ? false : + data === "null" ? null : + // Only convert to a number if it doesn't change the string + +data + "" === data ? +data : + rbrace.test( data ) ? jQuery.parseJSON( data ) : + data; + } catch( e ) {} + + // Make sure we set the data so it isn't changed later + jQuery.data( elem, key, data ); + + } else { + data = undefined; + } + } + + return data; +} + +// checks a cache object for emptiness +function isEmptyDataObject( obj ) { + var name; + for ( name in obj ) { + + // if the public data object is empty, the private is still empty + if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) { + continue; + } + if ( name !== "toJSON" ) { + return false; + } + } + + return true; +} + +function internalData( elem, name, data, pvt /* Internal Use Only */ ) { + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var ret, thisCache, + internalKey = jQuery.expando, + + // We have to handle DOM nodes and JS objects differently because IE6-7 + // can't GC object references properly across the DOM-JS boundary + isNode = elem.nodeType, + + // Only DOM nodes need the global jQuery cache; JS object data is + // attached directly to the object so GC can occur automatically + cache = isNode ? jQuery.cache : elem, + + // Only defining an ID for JS objects if its cache already exists allows + // the code to shortcut on the same path as a DOM node with no cache + id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey; + + // Avoid doing any more work than we need to when trying to get data on an + // object that has no data at all + if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && data === undefined && typeof name === "string" ) { + return; + } + + if ( !id ) { + // Only DOM nodes need a new unique ID for each element since their data + // ends up in the global cache + if ( isNode ) { + id = elem[ internalKey ] = deletedIds.pop() || jQuery.guid++; + } else { + id = internalKey; + } + } + + if ( !cache[ id ] ) { + // Avoid exposing jQuery metadata on plain JS objects when the object + // is serialized using JSON.stringify + cache[ id ] = isNode ? {} : { toJSON: jQuery.noop }; + } + + // An object can be passed to jQuery.data instead of a key/value pair; this gets + // shallow copied over onto the existing cache + if ( typeof name === "object" || typeof name === "function" ) { + if ( pvt ) { + cache[ id ] = jQuery.extend( cache[ id ], name ); + } else { + cache[ id ].data = jQuery.extend( cache[ id ].data, name ); + } + } + + thisCache = cache[ id ]; + + // jQuery data() is stored in a separate object inside the object's internal data + // cache in order to avoid key collisions between internal data and user-defined + // data. + if ( !pvt ) { + if ( !thisCache.data ) { + thisCache.data = {}; + } + + thisCache = thisCache.data; + } + + if ( data !== undefined ) { + thisCache[ jQuery.camelCase( name ) ] = data; + } + + // Check for both converted-to-camel and non-converted data property names + // If a data property was specified + if ( typeof name === "string" ) { + + // First Try to find as-is property data + ret = thisCache[ name ]; + + // Test for null|undefined property data + if ( ret == null ) { + + // Try to find the camelCased property + ret = thisCache[ jQuery.camelCase( name ) ]; + } + } else { + ret = thisCache; + } + + return ret; +} + +function internalRemoveData( elem, name, pvt ) { + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var thisCache, i, + isNode = elem.nodeType, + + // See jQuery.data for more information + cache = isNode ? jQuery.cache : elem, + id = isNode ? elem[ jQuery.expando ] : jQuery.expando; + + // If there is already no cache entry for this object, there is no + // purpose in continuing + if ( !cache[ id ] ) { + return; + } + + if ( name ) { + + thisCache = pvt ? cache[ id ] : cache[ id ].data; + + if ( thisCache ) { + + // Support array or space separated string names for data keys + if ( !jQuery.isArray( name ) ) { + + // try the string as a key before any manipulation + if ( name in thisCache ) { + name = [ name ]; + } else { + + // split the camel cased version by spaces unless a key with the spaces exists + name = jQuery.camelCase( name ); + if ( name in thisCache ) { + name = [ name ]; + } else { + name = name.split(" "); + } + } + } else { + // If "name" is an array of keys... + // When data is initially created, via ("key", "val") signature, + // keys will be converted to camelCase. + // Since there is no way to tell _how_ a key was added, remove + // both plain key and camelCase key. #12786 + // This will only penalize the array argument path. + name = name.concat( jQuery.map( name, jQuery.camelCase ) ); + } + + i = name.length; + while ( i-- ) { + delete thisCache[ name[i] ]; + } + + // If there is no data left in the cache, we want to continue + // and let the cache object itself get destroyed + if ( pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache) ) { + return; + } + } + } + + // See jQuery.data for more information + if ( !pvt ) { + delete cache[ id ].data; + + // Don't destroy the parent cache unless the internal data object + // had been the only thing left in it + if ( !isEmptyDataObject( cache[ id ] ) ) { + return; + } + } + + // Destroy the cache + if ( isNode ) { + jQuery.cleanData( [ elem ], true ); + + // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080) + /* jshint eqeqeq: false */ + } else if ( support.deleteExpando || cache != cache.window ) { + /* jshint eqeqeq: true */ + delete cache[ id ]; + + // When all else fails, null + } else { + cache[ id ] = null; + } +} + +jQuery.extend({ + cache: {}, + + // The following elements (space-suffixed to avoid Object.prototype collisions) + // throw uncatchable exceptions if you attempt to set expando properties + noData: { + "applet ": true, + "embed ": true, + // ...but Flash objects (which have this classid) *can* handle expandos + "object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" + }, + + hasData: function( elem ) { + elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; + return !!elem && !isEmptyDataObject( elem ); + }, + + data: function( elem, name, data ) { + return internalData( elem, name, data ); + }, + + removeData: function( elem, name ) { + return internalRemoveData( elem, name ); + }, + + // For internal use only. + _data: function( elem, name, data ) { + return internalData( elem, name, data, true ); + }, + + _removeData: function( elem, name ) { + return internalRemoveData( elem, name, true ); + } +}); + +jQuery.fn.extend({ + data: function( key, value ) { + var i, name, data, + elem = this[0], + attrs = elem && elem.attributes; + + // Special expections of .data basically thwart jQuery.access, + // so implement the relevant behavior ourselves + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = jQuery.data( elem ); + + if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE11+ + // The attrs elements can be null (#14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = jQuery.camelCase( name.slice(5) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + jQuery._data( elem, "parsedAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each(function() { + jQuery.data( this, key ); + }); + } + + return arguments.length > 1 ? + + // Sets one value + this.each(function() { + jQuery.data( this, key, value ); + }) : + + // Gets one value + // Try to fetch any internally stored data first + elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : undefined; + }, + + removeData: function( key ) { + return this.each(function() { + jQuery.removeData( this, key ); + }); + } +}); + + +jQuery.extend({ + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = jQuery._data( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || jQuery.isArray(data) ) { + queue = jQuery._data( elem, type, jQuery.makeArray(data) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // not intended for public consumption - generates a queueHooks object, or returns the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return jQuery._data( elem, key ) || jQuery._data( elem, key, { + empty: jQuery.Callbacks("once memory").add(function() { + jQuery._removeData( elem, type + "queue" ); + jQuery._removeData( elem, key ); + }) + }); + } +}); + +jQuery.fn.extend({ + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[0], type ); + } + + return data === undefined ? + this : + this.each(function() { + var queue = jQuery.queue( this, type, data ); + + // ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[0] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + }); + }, + dequeue: function( type ) { + return this.each(function() { + jQuery.dequeue( this, type ); + }); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = jQuery._data( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +}); +var pnum = (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source; + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var isHidden = function( elem, el ) { + // isHidden might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); + }; + + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + length = elems.length, + bulk = key == null; + + // Sets many values + if ( jQuery.type( key ) === "object" ) { + chainable = true; + for ( i in key ) { + jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !jQuery.isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < length; i++ ) { + fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); + } + } + } + + return chainable ? + elems : + + // Gets + bulk ? + fn.call( elems ) : + length ? fn( elems[0], key ) : emptyGet; +}; +var rcheckableType = (/^(?:checkbox|radio)$/i); + + + +(function() { + // Minified: var a,b,c + var input = document.createElement( "input" ), + div = document.createElement( "div" ), + fragment = document.createDocumentFragment(); + + // Setup + div.innerHTML = "
a"; + + // IE strips leading whitespace when .innerHTML is used + support.leadingWhitespace = div.firstChild.nodeType === 3; + + // Make sure that tbody elements aren't automatically inserted + // IE will insert them into empty tables + support.tbody = !div.getElementsByTagName( "tbody" ).length; + + // Make sure that link elements get serialized correctly by innerHTML + // This requires a wrapper element in IE + support.htmlSerialize = !!div.getElementsByTagName( "link" ).length; + + // Makes sure cloning an html5 element does not cause problems + // Where outerHTML is undefined, this still works + support.html5Clone = + document.createElement( "nav" ).cloneNode( true ).outerHTML !== "<:nav>"; + + // Check if a disconnected checkbox will retain its checked + // value of true after appended to the DOM (IE6/7) + input.type = "checkbox"; + input.checked = true; + fragment.appendChild( input ); + support.appendChecked = input.checked; + + // Make sure textarea (and checkbox) defaultValue is properly cloned + // Support: IE6-IE11+ + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; + + // #11217 - WebKit loses check when the name is after the checked attribute + fragment.appendChild( div ); + div.innerHTML = ""; + + // Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3 + // old WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE<9 + // Opera does not clone events (and typeof div.attachEvent === undefined). + // IE9-10 clones events bound via attachEvent, but they don't trigger with .click() + support.noCloneEvent = true; + if ( div.attachEvent ) { + div.attachEvent( "onclick", function() { + support.noCloneEvent = false; + }); + + div.cloneNode( true ).click(); + } + + // Execute the test only if not already executed in another module. + if (support.deleteExpando == null) { + // Support: IE<9 + support.deleteExpando = true; + try { + delete div.test; + } catch( e ) { + support.deleteExpando = false; + } + } +})(); + + +(function() { + var i, eventName, + div = document.createElement( "div" ); + + // Support: IE<9 (lack submit/change bubble), Firefox 23+ (lack focusin event) + for ( i in { submit: true, change: true, focusin: true }) { + eventName = "on" + i; + + if ( !(support[ i + "Bubbles" ] = eventName in window) ) { + // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP) + div.setAttribute( eventName, "t" ); + support[ i + "Bubbles" ] = div.attributes[ eventName ].expando === false; + } + } + + // Null elements to avoid leaks in IE. + div = null; +})(); + + +var rformElems = /^(?:input|select|textarea)$/i, + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|pointer|contextmenu)|click/, + rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + var tmp, events, t, handleObjIn, + special, eventHandle, handleObj, + handlers, type, namespaces, origType, + elemData = jQuery._data( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !(events = elemData.events) ) { + events = elemData.events = {}; + } + if ( !(eventHandle = elemData.handle) ) { + eventHandle = elemData.handle = function( e ) { + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== strundefined && (!e || jQuery.event.triggered !== e.type) ? + jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : + undefined; + }; + // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events + eventHandle.elem = elem; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnotwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend({ + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join(".") + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !(handlers = events[ type ]) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener/attachEvent if the special events handler returns false + if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + // Bind the global event handler to the element + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle, false ); + + } else if ( elem.attachEvent ) { + elem.attachEvent( "on" + type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + // Nullify elem to prevent memory leaks in IE + elem = null; + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + var j, handleObj, tmp, + origCount, t, events, + special, handlers, type, + namespaces, origType, + elemData = jQuery.hasData( elem ) && jQuery._data( elem ); + + if ( !elemData || !(events = elemData.events) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnotwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + delete elemData.handle; + + // removeData also checks for emptiness and clears the expando if empty + // so use it instead of delete + jQuery._removeData( elem, "events" ); + } + }, + + trigger: function( event, data, elem, onlyHandlers ) { + var handle, ontype, cur, + bubbleType, special, tmp, i, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; + + cur = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf(".") >= 0 ) { + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split("."); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf(":") < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join("."); + event.namespace_re = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === (elem.ownerDocument || document) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { + + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && jQuery.acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) && + jQuery.acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name name as the event. + // Can't use an .isFunction() check here because IE6/7 fails that test. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + try { + elem[ type ](); + } catch ( e ) { + // IE<9 dies on focus/blur to hidden element (#1486,#12518) + // only reproducible on winXP IE8 native, not IE9 in IE8 mode + } + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + dispatch: function( event ) { + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( event ); + + var i, ret, handleObj, matched, j, + handlerQueue = [], + args = slice.call( arguments ), + handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[0] = event; + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { + + // Triggered event must either 1) have no namespace, or + // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). + if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) + .apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( (event.result = ret) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var sel, handleObj, matches, i, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + // Black-hole SVG instance trees (#13180) + // Avoid non-left-click bubbling in Firefox (#3861) + if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { + + /* jshint eqeqeq: false */ + for ( ; cur != this; cur = cur.parentNode || this ) { + /* jshint eqeqeq: true */ + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== "click") ) { + matches = []; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matches[ sel ] === undefined ) { + matches[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) >= 0 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matches[ sel ] ) { + matches.push( handleObj ); + } + } + if ( matches.length ) { + handlerQueue.push({ elem: cur, handlers: matches }); + } + } + } + } + + // Add the remaining (directly-bound) handlers + if ( delegateCount < handlers.length ) { + handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) }); + } + + return handlerQueue; + }, + + fix: function( event ) { + if ( event[ jQuery.expando ] ) { + return event; + } + + // Create a writable copy of the event object and normalize some properties + var i, prop, copy, + type = event.type, + originalEvent = event, + fixHook = this.fixHooks[ type ]; + + if ( !fixHook ) { + this.fixHooks[ type ] = fixHook = + rmouseEvent.test( type ) ? this.mouseHooks : + rkeyEvent.test( type ) ? this.keyHooks : + {}; + } + copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; + + event = new jQuery.Event( originalEvent ); + + i = copy.length; + while ( i-- ) { + prop = copy[ i ]; + event[ prop ] = originalEvent[ prop ]; + } + + // Support: IE<9 + // Fix target property (#1925) + if ( !event.target ) { + event.target = originalEvent.srcElement || document; + } + + // Support: Chrome 23+, Safari? + // Target should not be a text node (#504, #13143) + if ( event.target.nodeType === 3 ) { + event.target = event.target.parentNode; + } + + // Support: IE<9 + // For mouse/key events, metaKey==false if it's undefined (#3368, #11328) + event.metaKey = !!event.metaKey; + + return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; + }, + + // Includes some event props shared by KeyEvent and MouseEvent + props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), + + fixHooks: {}, + + keyHooks: { + props: "char charCode key keyCode".split(" "), + filter: function( event, original ) { + + // Add which for key events + if ( event.which == null ) { + event.which = original.charCode != null ? original.charCode : original.keyCode; + } + + return event; + } + }, + + mouseHooks: { + props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), + filter: function( event, original ) { + var body, eventDoc, doc, + button = original.button, + fromElement = original.fromElement; + + // Calculate pageX/Y if missing and clientX/Y available + if ( event.pageX == null && original.clientX != null ) { + eventDoc = event.target.ownerDocument || document; + doc = eventDoc.documentElement; + body = eventDoc.body; + + event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); + event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); + } + + // Add relatedTarget, if necessary + if ( !event.relatedTarget && fromElement ) { + event.relatedTarget = fromElement === event.target ? original.toElement : fromElement; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + // Note: button is not normalized, so don't use it + if ( !event.which && button !== undefined ) { + event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); + } + + return event; + } + }, + + special: { + load: { + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + focus: { + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== safeActiveElement() && this.focus ) { + try { + this.focus(); + return false; + } catch ( e ) { + // Support: IE<9 + // If we error on focus to hidden element (#1486, #12518), + // let .trigger() run the handlers + } + } + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === safeActiveElement() && this.blur ) { + this.blur(); + return false; + } + }, + delegateType: "focusout" + }, + click: { + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) { + this.click(); + return false; + } + }, + + // For cross-browser consistency, don't fire native .click() on links + _default: function( event ) { + return jQuery.nodeName( event.target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + }, + + simulate: function( type, elem, event, bubble ) { + // Piggyback on a donor event to simulate a different one. + // Fake originalEvent to avoid donor's stopPropagation, but if the + // simulated event prevents default then we do the same on the donor. + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true, + originalEvent: {} + } + ); + if ( bubble ) { + jQuery.event.trigger( e, null, elem ); + } else { + jQuery.event.dispatch.call( elem, e ); + } + if ( e.isDefaultPrevented() ) { + event.preventDefault(); + } + } +}; + +jQuery.removeEvent = document.removeEventListener ? + function( elem, type, handle ) { + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle, false ); + } + } : + function( elem, type, handle ) { + var name = "on" + type; + + if ( elem.detachEvent ) { + + // #8545, #7054, preventing memory leaks for custom events in IE6-8 + // detachEvent needed property on element, by name of that event, to properly expose it to GC + if ( typeof elem[ name ] === strundefined ) { + elem[ name ] = null; + } + + elem.detachEvent( name, handle ); + } + }; + +jQuery.Event = function( src, props ) { + // Allow instantiation without the 'new' keyword + if ( !(this instanceof jQuery.Event) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + // Support: IE < 9, Android < 4.0 + src.returnValue === false ? + returnTrue : + returnFalse; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + if ( !e ) { + return; + } + + // If preventDefault exists, run it on the original event + if ( e.preventDefault ) { + e.preventDefault(); + + // Support: IE + // Otherwise set the returnValue property of the original event to false + } else { + e.returnValue = false; + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + if ( !e ) { + return; + } + // If stopPropagation exists, run it on the original event + if ( e.stopPropagation ) { + e.stopPropagation(); + } + + // Support: IE + // Set the cancelBubble property of the original event to true + e.cancelBubble = true; + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && e.stopImmediatePropagation ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Create mouseenter/leave events using mouseover/out and event-time checks +jQuery.each({ + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mousenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || (related !== target && !jQuery.contains( target, related )) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +}); + +// IE submit delegation +if ( !support.submitBubbles ) { + + jQuery.event.special.submit = { + setup: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } + + // Lazy-add a submit handler when a descendant form may potentially be submitted + jQuery.event.add( this, "click._submit keypress._submit", function( e ) { + // Node name check avoids a VML-related crash in IE (#9807) + var elem = e.target, + form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined; + if ( form && !jQuery._data( form, "submitBubbles" ) ) { + jQuery.event.add( form, "submit._submit", function( event ) { + event._submit_bubble = true; + }); + jQuery._data( form, "submitBubbles", true ); + } + }); + // return undefined since we don't need an event listener + }, + + postDispatch: function( event ) { + // If form was submitted by the user, bubble the event up the tree + if ( event._submit_bubble ) { + delete event._submit_bubble; + if ( this.parentNode && !event.isTrigger ) { + jQuery.event.simulate( "submit", this.parentNode, event, true ); + } + } + }, + + teardown: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } + + // Remove delegated handlers; cleanData eventually reaps submit handlers attached above + jQuery.event.remove( this, "._submit" ); + } + }; +} + +// IE change delegation and checkbox/radio fix +if ( !support.changeBubbles ) { + + jQuery.event.special.change = { + + setup: function() { + + if ( rformElems.test( this.nodeName ) ) { + // IE doesn't fire change on a check/radio until blur; trigger it on click + // after a propertychange. Eat the blur-change in special.change.handle. + // This still fires onchange a second time for check/radio after blur. + if ( this.type === "checkbox" || this.type === "radio" ) { + jQuery.event.add( this, "propertychange._change", function( event ) { + if ( event.originalEvent.propertyName === "checked" ) { + this._just_changed = true; + } + }); + jQuery.event.add( this, "click._change", function( event ) { + if ( this._just_changed && !event.isTrigger ) { + this._just_changed = false; + } + // Allow triggered, simulated change events (#11500) + jQuery.event.simulate( "change", this, event, true ); + }); + } + return false; + } + // Delegated event; lazy-add a change handler on descendant inputs + jQuery.event.add( this, "beforeactivate._change", function( e ) { + var elem = e.target; + + if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "changeBubbles" ) ) { + jQuery.event.add( elem, "change._change", function( event ) { + if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { + jQuery.event.simulate( "change", this.parentNode, event, true ); + } + }); + jQuery._data( elem, "changeBubbles", true ); + } + }); + }, + + handle: function( event ) { + var elem = event.target; + + // Swallow native change events from checkbox/radio, we already triggered them above + if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) { + return event.handleObj.handler.apply( this, arguments ); + } + }, + + teardown: function() { + jQuery.event.remove( this, "._change" ); + + return !rformElems.test( this.nodeName ); + } + }; +} + +// Create "bubbling" focus and blur events +if ( !support.focusinBubbles ) { + jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + var doc = this.ownerDocument || this, + attaches = jQuery._data( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + jQuery._data( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this, + attaches = jQuery._data( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + jQuery._removeData( doc, fix ); + } else { + jQuery._data( doc, fix, attaches ); + } + } + }; + }); +} + +jQuery.fn.extend({ + + on: function( types, selector, data, fn, /*INTERNAL*/ one ) { + var type, origFn; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + this.on( type, selector, data, types[ type ], one ); + } + return this; + } + + if ( data == null && fn == null ) { + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return this; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return this.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + }); + }, + one: function( types, selector, data, fn ) { + return this.on( types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each(function() { + jQuery.event.remove( this, types, fn, selector ); + }); + }, + + trigger: function( type, data ) { + return this.each(function() { + jQuery.event.trigger( type, data, this ); + }); + }, + triggerHandler: function( type, data ) { + var elem = this[0]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +}); + + +function createSafeFragment( document ) { + var list = nodeNames.split( "|" ), + safeFrag = document.createDocumentFragment(); + + if ( safeFrag.createElement ) { + while ( list.length ) { + safeFrag.createElement( + list.pop() + ); + } + } + return safeFrag; +} + +var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" + + "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", + rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g, + rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"), + rleadingWhitespace = /^\s+/, + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, + rtagName = /<([\w:]+)/, + rtbody = /\s*$/g, + + // We have to close these tags to support XHTML (#13200) + wrapMap = { + option: [ 1, "" ], + legend: [ 1, "
", "
" ], + area: [ 1, "", "" ], + param: [ 1, "", "" ], + thead: [ 1, "", "
" ], + tr: [ 2, "", "
" ], + col: [ 2, "", "
" ], + td: [ 3, "", "
" ], + + // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags, + // unless wrapped in a div with non-breaking characters in front of it. + _default: support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X
", "
" ] + }, + safeFragment = createSafeFragment( document ), + fragmentDiv = safeFragment.appendChild( document.createElement("div") ); + +wrapMap.optgroup = wrapMap.option; +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +function getAll( context, tag ) { + var elems, elem, + i = 0, + found = typeof context.getElementsByTagName !== strundefined ? context.getElementsByTagName( tag || "*" ) : + typeof context.querySelectorAll !== strundefined ? context.querySelectorAll( tag || "*" ) : + undefined; + + if ( !found ) { + for ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) { + if ( !tag || jQuery.nodeName( elem, tag ) ) { + found.push( elem ); + } else { + jQuery.merge( found, getAll( elem, tag ) ); + } + } + } + + return tag === undefined || tag && jQuery.nodeName( context, tag ) ? + jQuery.merge( [ context ], found ) : + found; +} + +// Used in buildFragment, fixes the defaultChecked property +function fixDefaultChecked( elem ) { + if ( rcheckableType.test( elem.type ) ) { + elem.defaultChecked = elem.checked; + } +} + +// Support: IE<8 +// Manipulating tables requires a tbody +function manipulationTarget( elem, content ) { + return jQuery.nodeName( elem, "table" ) && + jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ? + + elem.getElementsByTagName("tbody")[0] || + elem.appendChild( elem.ownerDocument.createElement("tbody") ) : + elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = (jQuery.find.attr( elem, "type" ) !== null) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + var match = rscriptTypeMasked.exec( elem.type ); + if ( match ) { + elem.type = match[1]; + } else { + elem.removeAttribute("type"); + } + return elem; +} + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var elem, + i = 0; + for ( ; (elem = elems[i]) != null; i++ ) { + jQuery._data( elem, "globalEval", !refElements || jQuery._data( refElements[i], "globalEval" ) ); + } +} + +function cloneCopyEvent( src, dest ) { + + if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) { + return; + } + + var type, i, l, + oldData = jQuery._data( src ), + curData = jQuery._data( dest, oldData ), + events = oldData.events; + + if ( events ) { + delete curData.handle; + curData.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + + // make the cloned public data object a copy from the original + if ( curData.data ) { + curData.data = jQuery.extend( {}, curData.data ); + } +} + +function fixCloneNodeIssues( src, dest ) { + var nodeName, e, data; + + // We do not need to do anything for non-Elements + if ( dest.nodeType !== 1 ) { + return; + } + + nodeName = dest.nodeName.toLowerCase(); + + // IE6-8 copies events bound via attachEvent when using cloneNode. + if ( !support.noCloneEvent && dest[ jQuery.expando ] ) { + data = jQuery._data( dest ); + + for ( e in data.events ) { + jQuery.removeEvent( dest, e, data.handle ); + } + + // Event data gets referenced instead of copied if the expando gets copied too + dest.removeAttribute( jQuery.expando ); + } + + // IE blanks contents when cloning scripts, and tries to evaluate newly-set text + if ( nodeName === "script" && dest.text !== src.text ) { + disableScript( dest ).text = src.text; + restoreScript( dest ); + + // IE6-10 improperly clones children of object elements using classid. + // IE10 throws NoModificationAllowedError if parent is null, #12132. + } else if ( nodeName === "object" ) { + if ( dest.parentNode ) { + dest.outerHTML = src.outerHTML; + } + + // This path appears unavoidable for IE9. When cloning an object + // element in IE9, the outerHTML strategy above is not sufficient. + // If the src has innerHTML and the destination does not, + // copy the src.innerHTML into the dest.innerHTML. #10324 + if ( support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) { + dest.innerHTML = src.innerHTML; + } + + } else if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + // IE6-8 fails to persist the checked state of a cloned checkbox + // or radio button. Worse, IE6-7 fail to give the cloned element + // a checked appearance if the defaultChecked value isn't also set + + dest.defaultChecked = dest.checked = src.checked; + + // IE6-7 get confused and end up setting the value of a cloned + // checkbox/radio button to an empty string instead of "on" + if ( dest.value !== src.value ) { + dest.value = src.value; + } + + // IE6-8 fails to return the selected option to the default selected + // state when cloning options + } else if ( nodeName === "option" ) { + dest.defaultSelected = dest.selected = src.defaultSelected; + + // IE6-8 fails to set the defaultValue to the correct value when + // cloning other types of input fields + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +jQuery.extend({ + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var destElements, node, clone, i, srcElements, + inPage = jQuery.contains( elem.ownerDocument, elem ); + + if ( support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) { + clone = elem.cloneNode( true ); + + // IE<=8 does not properly clone detached, unknown element nodes + } else { + fragmentDiv.innerHTML = elem.outerHTML; + fragmentDiv.removeChild( clone = fragmentDiv.firstChild ); + } + + if ( (!support.noCloneEvent || !support.noCloneChecked) && + (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { + + // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + // Fix all IE cloning issues + for ( i = 0; (node = srcElements[i]) != null; ++i ) { + // Ensure that the destination node is not null; Fixes #9587 + if ( destElements[i] ) { + fixCloneNodeIssues( node, destElements[i] ); + } + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0; (node = srcElements[i]) != null; i++ ) { + cloneCopyEvent( node, destElements[i] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + destElements = srcElements = node = null; + + // Return the cloned set + return clone; + }, + + buildFragment: function( elems, context, scripts, selection ) { + var j, elem, contains, + tmp, tag, tbody, wrap, + l = elems.length, + + // Ensure a safe fragment + safe = createSafeFragment( context ), + + nodes = [], + i = 0; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( jQuery.type( elem ) === "object" ) { + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || safe.appendChild( context.createElement("div") ); + + // Deserialize a standard representation + tag = (rtagName.exec( elem ) || [ "", "" ])[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + + tmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, "<$1>" ) + wrap[2]; + + // Descend through wrappers to the right content + j = wrap[0]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Manually add leading whitespace removed by IE + if ( !support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { + nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) ); + } + + // Remove IE's autoinserted from table fragments + if ( !support.tbody ) { + + // String was a , *may* have spurious + elem = tag === "table" && !rtbody.test( elem ) ? + tmp.firstChild : + + // String was a bare or + wrap[1] === "
" && !rtbody.test( elem ) ? + tmp : + 0; + + j = elem && elem.childNodes.length; + while ( j-- ) { + if ( jQuery.nodeName( (tbody = elem.childNodes[j]), "tbody" ) && !tbody.childNodes.length ) { + elem.removeChild( tbody ); + } + } + } + + jQuery.merge( nodes, tmp.childNodes ); + + // Fix #12392 for WebKit and IE > 9 + tmp.textContent = ""; + + // Fix #12392 for oldIE + while ( tmp.firstChild ) { + tmp.removeChild( tmp.firstChild ); + } + + // Remember the top-level container for proper cleanup + tmp = safe.lastChild; + } + } + } + + // Fix #11356: Clear elements from fragment + if ( tmp ) { + safe.removeChild( tmp ); + } + + // Reset defaultChecked for any radios and checkboxes + // about to be appended to the DOM in IE 6/7 (#8060) + if ( !support.appendChecked ) { + jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked ); + } + + i = 0; + while ( (elem = nodes[ i++ ]) ) { + + // #4087 - If origin and destination elements are the same, and this is + // that element, do not do anything + if ( selection && jQuery.inArray( elem, selection ) !== -1 ) { + continue; + } + + contains = jQuery.contains( elem.ownerDocument, elem ); + + // Append to fragment + tmp = getAll( safe.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( (elem = tmp[ j++ ]) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + tmp = null; + + return safe; + }, + + cleanData: function( elems, /* internal */ acceptData ) { + var elem, type, id, data, + i = 0, + internalKey = jQuery.expando, + cache = jQuery.cache, + deleteExpando = support.deleteExpando, + special = jQuery.event.special; + + for ( ; (elem = elems[i]) != null; i++ ) { + if ( acceptData || jQuery.acceptData( elem ) ) { + + id = elem[ internalKey ]; + data = id && cache[ id ]; + + if ( data ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Remove cache only if it was not already removed by jQuery.event.remove + if ( cache[ id ] ) { + + delete cache[ id ]; + + // IE does not allow us to delete expando properties from nodes, + // nor does it have a removeAttribute function on Document nodes; + // we must handle all of these cases + if ( deleteExpando ) { + delete elem[ internalKey ]; + + } else if ( typeof elem.removeAttribute !== strundefined ) { + elem.removeAttribute( internalKey ); + + } else { + elem[ internalKey ] = null; + } + + deletedIds.push( id ); + } + } + } + } + } +}); + +jQuery.fn.extend({ + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) ); + }, null, value, arguments.length ); + }, + + append: function() { + return this.domManip( arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + }); + }, + + prepend: function() { + return this.domManip( arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + }); + }, + + before: function() { + return this.domManip( arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + }); + }, + + after: function() { + return this.domManip( arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + }); + }, + + remove: function( selector, keepData /* Internal Use Only */ ) { + var elem, + elems = selector ? jQuery.filter( selector, this ) : this, + i = 0; + + for ( ; (elem = elems[i]) != null; i++ ) { + + if ( !keepData && elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem ) ); + } + + if ( elem.parentNode ) { + if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { + setGlobalEval( getAll( elem, "script" ) ); + } + elem.parentNode.removeChild( elem ); + } + } + + return this; + }, + + empty: function() { + var elem, + i = 0; + + for ( ; (elem = this[i]) != null; i++ ) { + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + } + + // Remove any remaining nodes + while ( elem.firstChild ) { + elem.removeChild( elem.firstChild ); + } + + // If this is a select, ensure that it displays empty (#12336) + // Support: IE<9 + if ( elem.options && jQuery.nodeName( elem, "select" ) ) { + elem.options.length = 0; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map(function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + }); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined ) { + return elem.nodeType === 1 ? + elem.innerHTML.replace( rinlinejQuery, "" ) : + undefined; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + ( support.htmlSerialize || !rnoshimcache.test( value ) ) && + ( support.leadingWhitespace || !rleadingWhitespace.test( value ) ) && + !wrapMap[ (rtagName.exec( value ) || [ "", "" ])[ 1 ].toLowerCase() ] ) { + + value = value.replace( rxhtmlTag, "<$1>" ); + + try { + for (; i < l; i++ ) { + // Remove element nodes and prevent memory leaks + elem = this[i] || {}; + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch(e) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var arg = arguments[ 0 ]; + + // Make the changes, replacing each context element with the new content + this.domManip( arguments, function( elem ) { + arg = this.parentNode; + + jQuery.cleanData( getAll( this ) ); + + if ( arg ) { + arg.replaceChild( elem, this ); + } + }); + + // Force removal if there was no new content (e.g., from empty arguments) + return arg && (arg.length || arg.nodeType) ? this : this.remove(); + }, + + detach: function( selector ) { + return this.remove( selector, true ); + }, + + domManip: function( args, callback ) { + + // Flatten any nested arrays + args = concat.apply( [], args ); + + var first, node, hasScripts, + scripts, doc, fragment, + i = 0, + l = this.length, + set = this, + iNoClone = l - 1, + value = args[0], + isFunction = jQuery.isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( isFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return this.each(function( index ) { + var self = set.eq( index ); + if ( isFunction ) { + args[0] = value.call( this, index, self.html() ); + } + self.domManip( args, callback ); + }); + } + + if ( l ) { + fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + if ( first ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( this[i], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !jQuery._data( node, "globalEval" ) && jQuery.contains( doc, node ) ) { + + if ( node.src ) { + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl ) { + jQuery._evalUrl( node.src ); + } + } else { + jQuery.globalEval( ( node.text || node.textContent || node.innerHTML || "" ).replace( rcleanScript, "" ) ); + } + } + } + } + + // Fix #11809: Avoid leaking memory + fragment = first = null; + } + } + + return this; + } +}); + +jQuery.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + i = 0, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone(true); + jQuery( insert[i] )[ original ]( elems ); + + // Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get() + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +}); + + +var iframe, + elemdisplay = {}; + +/** + * Retrieve the actual display of a element + * @param {String} name nodeName of the element + * @param {Object} doc Document object + */ +// Called only from within defaultDisplay +function actualDisplay( name, doc ) { + var style, + elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ), + + // getDefaultComputedStyle might be reliably used only on attached element + display = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ? + + // Use of this method is a temporary fix (more like optmization) until something better comes along, + // since it was removed from specification and supported only in FF + style.display : jQuery.css( elem[ 0 ], "display" ); + + // We don't have any data stored on the element, + // so use "detach" method as fast way to get rid of the element + elem.detach(); + + return display; +} + +/** + * Try to determine the default display value of an element + * @param {String} nodeName + */ +function defaultDisplay( nodeName ) { + var doc = document, + display = elemdisplay[ nodeName ]; + + if ( !display ) { + display = actualDisplay( nodeName, doc ); + + // If the simple way fails, read from inside an iframe + if ( display === "none" || !display ) { + + // Use the already-created iframe if possible + iframe = (iframe || jQuery( "