PATH=C:\mingw\bin;C:\cygwin\bin;C:\cpanfly-5.20\var\megalib\bin;C:\Perl64-5.20\site\bin;C:\Perl64-5.20\bin;C:\cygwin\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\system32\WindowsPowerShell\v1.0;C:\PROGRA~2\Perforce;C:\instantclient_11_2;C:\cygwin\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\system32\WindowsPowerShell\v1.0;C:\PROGRA~2\Perforce;C:\mysql\bin Start 2014-09-29T19:59:28 ActivePerl-2000 CPAN-2.00 PATH=C:\mingw\bin;C:\cygwin\bin;C:\CPANFL~1.20\var\megalib\bin;C:\Perl64-5.20\site\bin;C:\Perl64-5.20\bin;C:\cygwin\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\system32\WINDOW~1\v1.0;C:\PROGRA~2\Perforce;C:\INSTAN~1;C:\cygwin\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\system32\WINDOW~1\v1.0;C:\PROGRA~2\Perforce;C:\mysql\bin Reading 'C:\cpanfly-5.20\var\cpan\Metadata' Database was generated on Tue, 30 Sep 2014 01:17:02 GMT Running make for P/PE/PERLER/ElasticSearchX-Model-0.1.7.tar.gz Fetching with LWP: http://cpan.nas1.activestate.com/authors/id/P/PE/PERLER/ElasticSearchX-Model-0.1.7.tar.gz Checksum for C:\cpanfly-5.20\var\cpan\sources\authors\id\P\PE\PERLER\ElasticSearchX-Model-0.1.7.tar.gz ok ElasticSearchX-Model-0.1.7 ElasticSearchX-Model-0.1.7/README ElasticSearchX-Model-0.1.7/Changes ElasticSearchX-Model-0.1.7/LICENSE ElasticSearchX-Model-0.1.7/dist.ini ElasticSearchX-Model-0.1.7/t ElasticSearchX-Model-0.1.7/t/bulk.t ElasticSearchX-Model-0.1.7/META.yml ElasticSearchX-Model-0.1.7/MANIFEST ElasticSearchX-Model-0.1.7/Build.PL ElasticSearchX-Model-0.1.7/META.json ElasticSearchX-Model-0.1.7/README.pod ElasticSearchX-Model-0.1.7/t/tutorial.t ElasticSearchX-Model-0.1.7/t/es ElasticSearchX-Model-0.1.7/t/es/delete.t ElasticSearchX-Model-0.1.7/t/es/fields.t ElasticSearchX-Model-0.1.7/t/es/version.t ElasticSearchX-Model-0.1.7/t/00-compile.t ElasticSearchX-Model-0.1.7/t/model ElasticSearchX-Model-0.1.7/t/model/model.t ElasticSearchX-Model-0.1.7/t/es/timestamp.t ElasticSearchX-Model-0.1.7/t/lib ElasticSearchX-Model-0.1.7/t/lib/MyModel.pm ElasticSearchX-Model-0.1.7/t/model/minimal.t ElasticSearchX-Model-0.1.7/t/document ElasticSearchX-Model-0.1.7/t/document/class.t ElasticSearchX-Model-0.1.7/t/document/types.t ElasticSearchX-Model-0.1.7/t/document/update.t ElasticSearchX-Model-0.1.7/t/model/es_version.t ElasticSearchX-Model-0.1.7/t/document/mapping.t ElasticSearchX-Model-0.1.7/t/release-kwalitee.t ElasticSearchX-Model-0.1.7/t/lib/MyModel ElasticSearchX-Model-0.1.7/t/lib/MyModel/User.pm ElasticSearchX-Model-0.1.7/t/document/get_data.t ElasticSearchX-Model-0.1.7/t/lib/MyModel/Tweet.pm ElasticSearchX-Model-0.1.7/t/release-pod-syntax.t ElasticSearchX-Model-0.1.7/t/release-has-version.t ElasticSearchX-Model-0.1.7/t/release-pod-coverage.t ElasticSearchX-Model-0.1.7/lib/ElasticSearchX ElasticSearchX-Model-0.1.7/lib/ElasticSearchX/Model.pm ElasticSearchX-Model-0.1.7/t/release-minimum-version.t ElasticSearchX-Model-0.1.7/t/000-report-versions-tiny.t ElasticSearchX-Model-0.1.7/lib/ElasticSearchX/Model ElasticSearchX-Model-0.1.7/lib/ElasticSearchX/Model/Role.pm ElasticSearchX-Model-0.1.7/lib/ElasticSearchX/Model/Bulk.pm ElasticSearchX-Model-0.1.7/lib/ElasticSearchX/Model/Util.pm ElasticSearchX-Model-0.1.7/lib/ElasticSearchX/Model/Index.pm ElasticSearchX-Model-0.1.7/lib/ElasticSearchX/Model/Scroll.pm ElasticSearchX-Model-0.1.7/lib/ElasticSearchX/Model/Document.pm ElasticSearchX-Model-0.1.7/lib/ElasticSearchX/Model/Tutorial.pm ElasticSearchX-Model-0.1.7/lib/ElasticSearchX/Model/Trait ElasticSearchX-Model-0.1.7/lib/ElasticSearchX/Model/Trait/Class.pm ElasticSearchX-Model-0.1.7/lib/ElasticSearchX/Model/Document ElasticSearchX-Model-0.1.7/lib/ElasticSearchX/Model/Document/Set.pm ElasticSearchX-Model-0.1.7/lib/ElasticSearchX/Model/Document/Role.pm ElasticSearchX-Model-0.1.7/lib/ElasticSearchX/Model/Document/Types.pm ElasticSearchX-Model-0.1.7/lib/ElasticSearchX/Model/Document/Mapping.pm ElasticSearchX-Model-0.1.7/lib/ElasticSearchX/Model/Document/Trait ElasticSearchX-Model-0.1.7/lib/ElasticSearchX/Model/Document/Trait/Class.pm ElasticSearchX-Model-0.1.7/lib/ElasticSearchX/Model/Document/Trait/Field ElasticSearchX-Model-0.1.7/lib/ElasticSearchX/Model/Document/Trait/Field/ID.pm ElasticSearchX-Model-0.1.7/lib/ElasticSearchX/Model/Document/Trait/Attribute.pm ElasticSearchX-Model-0.1.7/lib/ElasticSearchX/Model/Document/Trait/Field/TTL.pm ElasticSearchX-Model-0.1.7/lib/ElasticSearchX/Model/Document/Trait/Field/Version.pm ElasticSearchX-Model-0.1.7/lib/ElasticSearchX/Model/Document/Trait/Field/Timestamp.pm CPAN.pm: Building P/PE/PERLER/ElasticSearchX-Model-0.1.7.tar.gz >>> C:\Perl64-5.20\bin\perl.exe Build.PL Checking prerequisites... requires: ! ElasticSearch is not installed ! MooseX::Attribute::Deflator is not installed ! MooseX::Types::ElasticSearch is not installed ERRORS/WARNINGS FOUND IN PREREQUISITES. You may wish to install the versions of the modules indicated above before proceeding with this installation Created MYMETA.yml and MYMETA.json Creating new 'Build' script for 'ElasticSearchX-Model' version '0.1.7' ---- Unsatisfied dependencies detected during ---- ---- PERLER/ElasticSearchX-Model-0.1.7.tar.gz ---- MooseX::Types::ElasticSearch [requires] ElasticSearch [requires] MooseX::Attribute::Deflator [requires] Running Build test Delayed until after prerequisites Running test for module 'MooseX::Types::ElasticSearch' Running make for P/PE/PERLER/MooseX-Types-ElasticSearch-0.0.4.tar.gz Checksum for C:\cpanfly-5.20\var\cpan\sources\authors\id\P\PE\PERLER\MooseX-Types-ElasticSearch-0.0.4.tar.gz ok MooseX-Types-ElasticSearch-0.0.4 MooseX-Types-ElasticSearch-0.0.4/README MooseX-Types-ElasticSearch-0.0.4/Changes MooseX-Types-ElasticSearch-0.0.4/LICENSE MooseX-Types-ElasticSearch-0.0.4/dist.ini MooseX-Types-ElasticSearch-0.0.4/META.yml MooseX-Types-ElasticSearch-0.0.4/MANIFEST MooseX-Types-ElasticSearch-0.0.4/Build.PL MooseX-Types-ElasticSearch-0.0.4/META.json MooseX-Types-ElasticSearch-0.0.4/t MooseX-Types-ElasticSearch-0.0.4/t/00-compile.t MooseX-Types-ElasticSearch-0.0.4/t/release-kwalitee.t MooseX-Types-ElasticSearch-0.0.4/t/release-pod-syntax.t MooseX-Types-ElasticSearch-0.0.4/t/release-has-version.t MooseX-Types-ElasticSearch-0.0.4/t/release-pod-coverage.t MooseX-Types-ElasticSearch-0.0.4/t/release-minimum-version.t MooseX-Types-ElasticSearch-0.0.4/t/000-report-versions-tiny.t MooseX-Types-ElasticSearch-0.0.4/lib/MooseX/Types MooseX-Types-ElasticSearch-0.0.4/lib/MooseX/Types/ElasticSearch.pm CPAN.pm: Building P/PE/PERLER/MooseX-Types-ElasticSearch-0.0.4.tar.gz >>> C:\Perl64-5.20\bin\perl.exe Build.PL Checking prerequisites... requires: ! Search::Elasticsearch is not installed ERRORS/WARNINGS FOUND IN PREREQUISITES. You may wish to install the versions of the modules indicated above before proceeding with this installation Created MYMETA.yml and MYMETA.json Creating new 'Build' script for 'MooseX-Types-ElasticSearch' version '0.0.4' ---- Unsatisfied dependencies detected during ---- ---- PERLER/MooseX-Types-ElasticSearch-0.0.4.tar.gz ---- Search::Elasticsearch [requires] Running Build test Delayed until after prerequisites Running test for module 'Search::Elasticsearch' Running make for D/DR/DRTECH/Search-Elasticsearch-1.14.tar.gz Checksum for C:\cpanfly-5.20\var\cpan\sources\authors\id\D\DR\DRTECH\Search-Elasticsearch-1.14.tar.gz ok Search-Elasticsearch-1.14/ Search-Elasticsearch-1.14/Changes Search-Elasticsearch-1.14/lib/ Search-Elasticsearch-1.14/LICENSE Search-Elasticsearch-1.14/Makefile.PL Search-Elasticsearch-1.14/MANIFEST Search-Elasticsearch-1.14/META.json Search-Elasticsearch-1.14/META.yml Search-Elasticsearch-1.14/README Search-Elasticsearch-1.14/t/ Search-Elasticsearch-1.14/t/10_Basic/ Search-Elasticsearch-1.14/t/20_Serializer/ Search-Elasticsearch-1.14/t/30_Logger/ Search-Elasticsearch-1.14/t/40_Transport/ Search-Elasticsearch-1.14/t/50_Cxn_Pool/ Search-Elasticsearch-1.14/t/60_Cxn/ Search-Elasticsearch-1.14/t/70_Helper/ Search-Elasticsearch-1.14/t/90_Client_Spec/ Search-Elasticsearch-1.14/t/lib/ Search-Elasticsearch-1.14/t/release-eol.t Search-Elasticsearch-1.14/t/release-no-tabs.t Search-Elasticsearch-1.14/t/release-pod-syntax.t Search-Elasticsearch-1.14/t/lib/default_cxn.pl Search-Elasticsearch-1.14/t/lib/es_sync.pl Search-Elasticsearch-1.14/t/lib/es_sync_fork.pl Search-Elasticsearch-1.14/t/lib/index_test_data.pl Search-Elasticsearch-1.14/t/lib/LogCallback.pl Search-Elasticsearch-1.14/t/lib/MockCxn.pm Search-Elasticsearch-1.14/t/90_Client_Spec/00_print_version.t Search-Elasticsearch-1.14/t/70_Helper/10_bulk_add_action.t Search-Elasticsearch-1.14/t/70_Helper/20_bulk_helpers.t Search-Elasticsearch-1.14/t/70_Helper/30_bulk_flush.t Search-Elasticsearch-1.14/t/70_Helper/40_bulk_errors.t Search-Elasticsearch-1.14/t/70_Helper/50_scroll.t Search-Elasticsearch-1.14/t/70_Helper/60_reindex.t Search-Elasticsearch-1.14/t/60_Cxn/10_basic.t Search-Elasticsearch-1.14/t/60_Cxn/20_process_response.t Search-Elasticsearch-1.14/t/60_Cxn/30_http.t Search-Elasticsearch-1.14/t/60_Cxn/40_fork_httptiny.t Search-Elasticsearch-1.14/t/60_Cxn/41_fork_lwp.t Search-Elasticsearch-1.14/t/60_Cxn/42_fork_hijk.t Search-Elasticsearch-1.14/t/60_Cxn/43_fork_netcurl.t Search-Elasticsearch-1.14/t/50_Cxn_Pool/10_static_normal.t Search-Elasticsearch-1.14/t/50_Cxn_Pool/11_static_node_missing.t Search-Elasticsearch-1.14/t/50_Cxn_Pool/12_static_node_fails.t Search-Elasticsearch-1.14/t/50_Cxn_Pool/13_static_node_timesout.t Search-Elasticsearch-1.14/t/50_Cxn_Pool/14_static_both_nodes_timeout.t Search-Elasticsearch-1.14/t/50_Cxn_Pool/15_static_both_nodes_fail.t Search-Elasticsearch-1.14/t/50_Cxn_Pool/16_static_nodes_starting.t Search-Elasticsearch-1.14/t/50_Cxn_Pool/17_static_runaway_nodes.t Search-Elasticsearch-1.14/t/50_Cxn_Pool/30_sniff_normal.t Search-Elasticsearch-1.14/t/50_Cxn_Pool/31_sniff_new_nodes.t Search-Elasticsearch-1.14/t/50_Cxn_Pool/32_sniff_node_fails.t Search-Elasticsearch-1.14/t/50_Cxn_Pool/33_sniff_both_nodes_fail.t Search-Elasticsearch-1.14/t/50_Cxn_Pool/34_sniff_node_timeout.t Search-Elasticsearch-1.14/t/50_Cxn_Pool/35_sniff_both_nodes_timeout.t Search-Elasticsearch-1.14/t/50_Cxn_Pool/36_sniff_nodes_starting.t Search-Elasticsearch-1.14/t/50_Cxn_Pool/37_sniff_runaway_nodes.t Search-Elasticsearch-1.14/t/50_Cxn_Pool/38_bad_sniff.t Search-Elasticsearch-1.14/t/50_Cxn_Pool/39_sniff_max_content.t Search-Elasticsearch-1.14/t/50_Cxn_Pool/50_noping_normal.t Search-Elasticsearch-1.14/t/50_Cxn_Pool/51_noping_node_fails.t Search-Elasticsearch-1.14/t/50_Cxn_Pool/52_noping_node_timesout.t Search-Elasticsearch-1.14/t/50_Cxn_Pool/53_noping_all_nodes_fail.t Search-Elasticsearch-1.14/t/50_Cxn_Pool/54_noping_nodes_starting.t Search-Elasticsearch-1.14/t/50_Cxn_Pool/55_noping_runaway_nodes.t Search-Elasticsearch-1.14/t/50_Cxn_Pool/56_max_retries.t Search-Elasticsearch-1.14/t/50_Cxn_Pool/70_live.t Search-Elasticsearch-1.14/t/40_Transport/10_tidy_request.t Search-Elasticsearch-1.14/t/40_Transport/20_send_body_as.t Search-Elasticsearch-1.14/t/40_Transport/30_perform_request.t Search-Elasticsearch-1.14/t/30_Logger/10_explicit.t Search-Elasticsearch-1.14/t/30_Logger/20_implicit.t Search-Elasticsearch-1.14/t/30_Logger/30_log_methods.t Search-Elasticsearch-1.14/t/30_Logger/40_trace_request.t Search-Elasticsearch-1.14/t/30_Logger/50_trace_response.t Search-Elasticsearch-1.14/t/30_Logger/60_trace_error.t Search-Elasticsearch-1.14/t/30_Logger/70_trace_comment.t Search-Elasticsearch-1.14/t/20_Serializer/10_load_cpanel.t Search-Elasticsearch-1.14/t/20_Serializer/11_load_xs.t Search-Elasticsearch-1.14/t/20_Serializer/12_load_pp.t Search-Elasticsearch-1.14/t/20_Serializer/13_preload_cpanel.t Search-Elasticsearch-1.14/t/20_Serializer/14_preload_xs.t Search-Elasticsearch-1.14/t/20_Serializer/20_xs_encode_decode.t Search-Elasticsearch-1.14/t/20_Serializer/21_xs_encode_bulk.t Search-Elasticsearch-1.14/t/20_Serializer/22_xs_encode_pretty.t Search-Elasticsearch-1.14/t/20_Serializer/30_cpanel_encode_decode.t Search-Elasticsearch-1.14/t/20_Serializer/31_cpanel_encode_bulk.t Search-Elasticsearch-1.14/t/20_Serializer/32_cpanel_encode_pretty.t Search-Elasticsearch-1.14/t/20_Serializer/40_pp_encode_decode.t Search-Elasticsearch-1.14/t/20_Serializer/41_pp_encode_bulk.t Search-Elasticsearch-1.14/t/20_Serializer/42_pp_encode_pretty.t Search-Elasticsearch-1.14/t/20_Serializer/encode_bulk.pl Search-Elasticsearch-1.14/t/20_Serializer/encode_decode.pl Search-Elasticsearch-1.14/t/20_Serializer/encode_pretty.pl Search-Elasticsearch-1.14/t/10_Basic/10_load.t Search-Elasticsearch-1.14/lib/Search/ Search-Elasticsearch-1.14/lib/Search/Elasticsearch/ Search-Elasticsearch-1.14/lib/Search/Elasticsearch.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Bulk.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Client/ Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Cxn/ Search-Elasticsearch-1.14/lib/Search/Elasticsearch/CxnPool/ Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Error.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Logger/ Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Role/ Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Scroll.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Serializer/ Search-Elasticsearch-1.14/lib/Search/Elasticsearch/TestServer.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Transport.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Util/ Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Util.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Util/API/ Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Util/API/Path.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Util/API/QS.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Serializer/JSON/ Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Serializer/JSON.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Serializer/JSON/Cpanel.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Serializer/JSON/PP.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Serializer/JSON/XS.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Role/API/ Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Role/API.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Role/Bulk.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Role/Client/ Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Role/Client.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Role/Cxn/ Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Role/Cxn.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Role/CxnPool/ Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Role/CxnPool.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Role/Is_Sync.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Role/Logger.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Role/Scroll.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Role/Serializer/ Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Role/Serializer.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Role/Transport.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Role/Serializer/JSON.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Role/CxnPool/Sniff.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Role/CxnPool/Static/ Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Role/CxnPool/Static.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Role/CxnPool/Static/NoPing.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Role/Cxn/HTTP.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Role/Client/Direct.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Role/API/0_90.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Logger/LogAny.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/CxnPool/Sniff.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/CxnPool/Static/ Search-Elasticsearch-1.14/lib/Search/Elasticsearch/CxnPool/Static.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/CxnPool/Static/NoPing.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Cxn/Factory.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Cxn/Hijk.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Cxn/HTTPTiny.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Cxn/LWP.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Client/0_90/ Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Client/Direct/ Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Client/Direct.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Client/Direct/Cat.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Client/Direct/Cluster.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Client/Direct/Indices.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Client/Direct/Nodes.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Client/Direct/Snapshot.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Client/0_90/Direct/ Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Client/0_90/Direct.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Client/0_90/Direct/Cluster.pm Search-Elasticsearch-1.14/lib/Search/Elasticsearch/Client/0_90/Direct/Indices.pm CPAN.pm: Building D/DR/DRTECH/Search-Elasticsearch-1.14.tar.gz >>> C:\Perl64-5.20\bin\perl.exe Makefile.PL Warning: prerequisite Hijk 0.12 not found. Checking if your kit is complete... Looks good Generating a dmake-style Makefile Writing Makefile for Search::Elasticsearch Writing MYMETA.yml and MYMETA.json ---- Unsatisfied dependencies detected during ---- ---- DRTECH/Search-Elasticsearch-1.14.tar.gz ---- Hijk [requires] Running make test Delayed until after prerequisites Running test for module 'Hijk' Running make for A/AV/AVAR/Hijk-0.17.tar.gz Checksum for C:\cpanfly-5.20\var\cpan\sources\authors\id\A\AV\AVAR\Hijk-0.17.tar.gz ok Hijk-0.17/ Hijk-0.17/META.json Hijk-0.17/Makefile.PL Hijk-0.17/README.md Hijk-0.17/inc/ Hijk-0.17/inc/Module/ Hijk-0.17/inc/Module/Install.pm Hijk-0.17/inc/Module/Install/ Hijk-0.17/inc/Module/Install/WriteAll.pm Hijk-0.17/inc/Module/Install/Metadata.pm Hijk-0.17/inc/Module/Install/Win32.pm Hijk-0.17/inc/Module/Install/Fetch.pm Hijk-0.17/inc/Module/Install/Base.pm Hijk-0.17/inc/Module/Install/CPANfile.pm Hijk-0.17/inc/Module/Install/Can.pm Hijk-0.17/inc/Module/Install/Makefile.pm Hijk-0.17/inc/Module/CPANfile/ Hijk-0.17/inc/Module/CPANfile/Prereqs.pm Hijk-0.17/inc/Module/CPANfile/Environment.pm Hijk-0.17/inc/Module/CPANfile/Requirement.pm Hijk-0.17/inc/Module/CPANfile/Prereq.pm Hijk-0.17/inc/Module/CPANfile.pm Hijk-0.17/lib/ Hijk-0.17/lib/Hijk.pm Hijk-0.17/META.yml Hijk-0.17/MANIFEST Hijk-0.17/examples/ Hijk-0.17/examples/dumbbench-thisurl.pl Hijk-0.17/examples/hijkurl Hijk-0.17/examples/bench-nginx.pl Hijk-0.17/examples/bench-chunked-response.pl Hijk-0.17/examples/bench-elasticsearch.pl Hijk-0.17/Changes Hijk-0.17/cpanfile Hijk-0.17/t/ Hijk-0.17/t/chunked-trailer-head-as-array.t Hijk-0.17/t/chunked-trailer.t Hijk-0.17/t/parse-http-connection-close-message.t Hijk-0.17/t/live-plack.t Hijk-0.17/t/bin/ Hijk-0.17/t/bin/split-in-chunks.psgi Hijk-0.17/t/bin/it-takes-time.psgi Hijk-0.17/t/parse-http-message.t Hijk-0.17/t/build_http_message.t Hijk-0.17/t/live-elasticsearch.t Hijk-0.17/t/live-couchdb.t Hijk-0.17/t/live-connect-timeout.t Hijk-0.17/t/live-invalid-domain.t Hijk-0.17/t/live-google.t Hijk-0.17/t/parse-http-message-head-as-array.t Hijk-0.17/t/chunked.t Hijk-0.17/t/parse-http-no-content-len-message.t CPAN.pm: Building A/AV/AVAR/Hijk-0.17.tar.gz >>> C:\Perl64-5.20\bin\perl.exe Makefile.PL Cannot determine perl version info from lib/Hijk.pm Checking if your kit is complete... Looks good Generating a dmake-style Makefile Writing Makefile for Hijk Writing MYMETA.yml and MYMETA.json Merging cpanfile prereqs to MYMETA.yml Merging cpanfile prereqs to MYMETA.json >>> dmake cp lib/Hijk.pm blib\lib\Hijk.pm AVAR/Hijk-0.17.tar.gz dmake -- OK Running make test >>> dmake test TEST_VERBOSE=1 C:\Perl64-5.20\bin\perl.exe "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'inc', 'blib\lib', 'blib\arch')" t/*.t t/build_http_message.t ................... ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 1..20 ok # Failed test at t/chunked-trailer-head-as-array.t line 36. # got: '0' # expected: '200' # Failed test at t/chunked-trailer-head-as-array.t line 37. # got: undef # expected: 'Wikipedia in # # chunks.' # Failed test at t/chunked-trailer-head-as-array.t line 39. # Structures begin differing at: # $got = undef # $expected = ARRAY(0x4f5478) # Failed test at t/chunked-trailer-head-as-array.t line 53. # got: '2' # expected: '64' # Failed test at t/chunked-trailer-head-as-array.t line 54. # undef # doesn't match '(?^:0 byte)' # Looks like you failed 5 tests of 5. t/chunked-trailer-head-as-array.t ........ not ok 1 not ok 2 not ok 3 not ok 4 not ok 5 1..5 Dubious, test returned 5 (wstat 1280, 0x500) Failed 5/5 subtests # Failed test at t/chunked-trailer.t line 36. # got: '0' # expected: '200' # Failed test at t/chunked-trailer.t line 37. # got: undef # expected: 'Wikipedia in # # chunks.' # Failed test at t/chunked-trailer.t line 39. # Structures begin differing at: # $got = undef # $expected = HASH(0x4f3478) # Failed test at t/chunked-trailer.t line 53. # got: '2' # expected: '64' # Failed test at t/chunked-trailer.t line 54. # undef # doesn't match '(?^:0 byte)' # Looks like you failed 5 tests of 5. t/chunked-trailer.t ...................... not ok 1 not ok 2 not ok 3 not ok 4 not ok 5 1..5 Dubious, test returned 5 (wstat 1280, 0x500) Failed 5/5 subtests # Failed test at t/chunked.t line 35. # got: '0' # expected: '200' # Failed test at t/chunked.t line 36. # got: undef # expected: 'Wikipedia in # # chunks.' # Failed test at t/chunked.t line 38. # Structures begin differing at: # $got = undef # $expected = HASH(0x4f3478) # Failed test at t/chunked.t line 53. # got: '2' # expected: '64' # Failed test at t/chunked.t line 54. # undef # doesn't match '(?^:0 byte)' # Looks like you failed 5 tests of 5. t/chunked.t .............................. not ok 1 not ok 2 not ok 3 not ok 4 not ok 5 1..5 Dubious, test returned 5 (wstat 1280, 0x500) Failed 5/5 subtests t/live-connect-timeout.t ................. skipped: Enable live testing by setting env: TEST_LIVE=1 t/live-couchdb.t ......................... skipped: Enable live testing by setting env: TEST_LIVE=1 t/live-elasticsearch.t ................... skipped: Enable live testing by setting env: TEST_LIVE=1 t/live-google.t .......................... skipped: Enable live testing by setting env: TEST_LIVE=1 t/live-invalid-domain.t .................. skipped: Enable live testing by setting env: TEST_LIVE=1 t/live-plack.t ........................... skipped: Enable live testing by setting env: TEST_LIVE=1 # Failed test at t/parse-http-connection-close-message.t line 35. # got: '0' # expected: '200' # Failed test at t/parse-http-connection-close-message.t line 36. # got: undef # expected: '' # Failed test at t/parse-http-connection-close-message.t line 38. # Structures begin differing at: # $got = undef # $expected = HASH(0x4f3478) # Failed test at t/parse-http-connection-close-message.t line 48. # got: '2' # expected: '64' # Failed test at t/parse-http-connection-close-message.t line 49. # undef # doesn't match '(?^:0 byte)' # Looks like you failed 5 tests of 5. t/parse-http-connection-close-message.t .. not ok 1 not ok 2 not ok 3 not ok 4 not ok 5 1..5 Dubious, test returned 5 (wstat 1280, 0x500) Failed 5/5 subtests # Failed test at t/parse-http-message-head-as-array.t line 33. # got: undef # expected: 'HTTP/1.1' # Failed test at t/parse-http-message-head-as-array.t line 34. # got: '0' # expected: '200' # Failed test at t/parse-http-message-head-as-array.t line 35. # got: undef # expected: 'OHAI' # Failed test at t/parse-http-message-head-as-array.t line 37. # Structures begin differing at: # $got = undef # $expected = ARRAY(0x4f3478) # Looks like you failed 4 tests of 4. t/parse-http-message-head-as-array.t ..... not ok 1 not ok 2 not ok 3 not ok 4 1..4 Dubious, test returned 4 (wstat 1024, 0x400) Failed 4/4 subtests # Failed test at t/parse-http-message.t line 33. # got: undef # expected: 'HTTP/1.1' # Failed test at t/parse-http-message.t line 34. # got: '0' # expected: '200' # Failed test at t/parse-http-message.t line 35. # got: undef # expected: 'OHAI' # Failed test at t/parse-http-message.t line 37. # Structures begin differing at: # $got = undef # $expected = HASH(0x4f5478) # Looks like you failed 4 tests of 4. t/parse-http-message.t ................... not ok 1 not ok 2 not ok 3 not ok 4 1..4 Dubious, test returned 4 (wstat 1024, 0x400) Failed 4/4 subtests # Failed test at t/parse-http-no-content-len-message.t line 35. # got: '0' # expected: '200' # Failed test at t/parse-http-no-content-len-message.t line 36. # Structures begin differing at: # $got = undef # $expected = HASH(0x4f3478) # Failed test at t/parse-http-no-content-len-message.t line 44. # got: undef # expected: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' # Failed test at t/parse-http-no-content-len-message.t line 47. # got: '2' # expected: '64' # Failed test at t/parse-http-no-content-len-message.t line 48. # undef # doesn't match '(?^:0 byte)' # Looks like you failed 5 tests of 5. t/parse-http-no-content-len-message.t .... not ok 1 not ok 2 not ok 3 not ok 4 not ok 5 1..5 Dubious, test returned 5 (wstat 1280, 0x500) Failed 5/5 subtests Test Summary Report ------------------- t/chunked-trailer-head-as-array.t (Wstat: 1280 Tests: 5 Failed: 5) Failed tests: 1-5 Non-zero exit status: 5 t/chunked-trailer.t (Wstat: 1280 Tests: 5 Failed: 5) Failed tests: 1-5 Non-zero exit status: 5 t/chunked.t (Wstat: 1280 Tests: 5 Failed: 5) Failed tests: 1-5 Non-zero exit status: 5 t/parse-http-connection-close-message.t (Wstat: 1280 Tests: 5 Failed: 5) Failed tests: 1-5 Non-zero exit status: 5 t/parse-http-message-head-as-array.t (Wstat: 1024 Tests: 4 Failed: 4) Failed tests: 1-4 Non-zero exit status: 4 t/parse-http-message.t (Wstat: 1024 Tests: 4 Failed: 4) Failed tests: 1-4 Non-zero exit status: 4 t/parse-http-no-content-len-message.t (Wstat: 1280 Tests: 5 Failed: 5) Failed tests: 1-5 Non-zero exit status: 5 Files=14, Tests=53, 3 wallclock secs ( 0.14 usr + 0.03 sys = 0.17 CPU) Result: FAIL Failed 7/14 test programs. 33/53 subtests failed. dmake: Error code 133, while making 'test_dynamic' AVAR/Hijk-0.17.tar.gz dmake test TEST_VERBOSE=1 -- NOT OK //hint// to see the cpan-testers results for installing this module, try: reports AVAR/Hijk-0.17.tar.gz Running make for D/DR/DRTECH/Search-Elasticsearch-1.14.tar.gz Has already been unwrapped into directory C:\cpanfly-5.20\var\cpan\build\Search-Elasticsearch-1.14-JdSWu5 CPAN.pm: Building D/DR/DRTECH/Search-Elasticsearch-1.14.tar.gz Warning: Prerequisite 'Hijk => 0.12' for 'DRTECH/Search-Elasticsearch-1.14.tar.gz' failed when processing 'AVAR/Hijk-0.17.tar.gz' with 'make_test => NO'. Continuing, but chances to succeed are limited. >>> dmake cp lib/Search/Elasticsearch/Client/Direct/Cat.pm blib\lib\Search\Elasticsearch\Client\Direct\Cat.pm cp lib/Search/Elasticsearch/Bulk.pm blib\lib\Search\Elasticsearch\Bulk.pm cp lib/Search/Elasticsearch/Client/Direct.pm blib\lib\Search\Elasticsearch\Client\Direct.pm cp lib/Search/Elasticsearch/Cxn/HTTPTiny.pm blib\lib\Search\Elasticsearch\Cxn\HTTPTiny.pm cp lib/Search/Elasticsearch/Cxn/Factory.pm blib\lib\Search\Elasticsearch\Cxn\Factory.pm cp lib/Search/Elasticsearch/Client/0_90/Direct/Indices.pm blib\lib\Search\Elasticsearch\Client\0_90\Direct\Indices.pm cp lib/Search/Elasticsearch/Client/Direct/Indices.pm blib\lib\Search\Elasticsearch\Client\Direct\Indices.pm cp lib/Search/Elasticsearch/Client/Direct/Nodes.pm blib\lib\Search\Elasticsearch\Client\Direct\Nodes.pm cp lib/Search/Elasticsearch/Client/Direct/Snapshot.pm blib\lib\Search\Elasticsearch\Client\Direct\Snapshot.pm cp lib/Search/Elasticsearch/Client/0_90/Direct.pm blib\lib\Search\Elasticsearch\Client\0_90\Direct.pm cp lib/Search/Elasticsearch/Client/0_90/Direct/Cluster.pm blib\lib\Search\Elasticsearch\Client\0_90\Direct\Cluster.pm cp lib/Search/Elasticsearch.pm blib\lib\Search\Elasticsearch.pm cp lib/Search/Elasticsearch/Client/Direct/Cluster.pm blib\lib\Search\Elasticsearch\Client\Direct\Cluster.pm cp lib/Search/Elasticsearch/Role/Cxn.pm blib\lib\Search\Elasticsearch\Role\Cxn.pm cp lib/Search/Elasticsearch/Cxn/LWP.pm blib\lib\Search\Elasticsearch\Cxn\LWP.pm cp lib/Search/Elasticsearch/CxnPool/Static/NoPing.pm blib\lib\Search\Elasticsearch\CxnPool\Static\NoPing.pm cp lib/Search/Elasticsearch/Role/Client.pm blib\lib\Search\Elasticsearch\Role\Client.pm cp lib/Search/Elasticsearch/Error.pm blib\lib\Search\Elasticsearch\Error.pm cp lib/Search/Elasticsearch/CxnPool/Static.pm blib\lib\Search\Elasticsearch\CxnPool\Static.pm cp lib/Search/Elasticsearch/Role/Bulk.pm blib\lib\Search\Elasticsearch\Role\Bulk.pm cp lib/Search/Elasticsearch/Role/API.pm blib\lib\Search\Elasticsearch\Role\API.pm cp lib/Search/Elasticsearch/Role/Cxn/HTTP.pm blib\lib\Search\Elasticsearch\Role\Cxn\HTTP.pm cp lib/Search/Elasticsearch/Role/API/0_90.pm blib\lib\Search\Elasticsearch\Role\API\0_90.pm cp lib/Search/Elasticsearch/Cxn/Hijk.pm blib\lib\Search\Elasticsearch\Cxn\Hijk.pm cp lib/Search/Elasticsearch/CxnPool/Sniff.pm blib\lib\Search\Elasticsearch\CxnPool\Sniff.pm cp lib/Search/Elasticsearch/Role/Client/Direct.pm blib\lib\Search\Elasticsearch\Role\Client\Direct.pm cp lib/Search/Elasticsearch/Logger/LogAny.pm blib\lib\Search\Elasticsearch\Logger\LogAny.pm cp lib/Search/Elasticsearch/Role/CxnPool/Static/NoPing.pm blib\lib\Search\Elasticsearch\Role\CxnPool\Static\NoPing.pm cp lib/Search/Elasticsearch/Role/Transport.pm blib\lib\Search\Elasticsearch\Role\Transport.pm cp lib/Search/Elasticsearch/Role/CxnPool.pm blib\lib\Search\Elasticsearch\Role\CxnPool.pm cp lib/Search/Elasticsearch/Scroll.pm blib\lib\Search\Elasticsearch\Scroll.pm cp lib/Search/Elasticsearch/Role/CxnPool/Sniff.pm blib\lib\Search\Elasticsearch\Role\CxnPool\Sniff.pm cp lib/Search/Elasticsearch/Role/CxnPool/Static.pm blib\lib\Search\Elasticsearch\Role\CxnPool\Static.pm cp lib/Search/Elasticsearch/Serializer/JSON.pm blib\lib\Search\Elasticsearch\Serializer\JSON.pm cp lib/Search/Elasticsearch/Role/Serializer/JSON.pm blib\lib\Search\Elasticsearch\Role\Serializer\JSON.pm cp lib/Search/Elasticsearch/Role/Is_Sync.pm blib\lib\Search\Elasticsearch\Role\Is_Sync.pm cp lib/Search/Elasticsearch/Role/Logger.pm blib\lib\Search\Elasticsearch\Role\Logger.pm cp lib/Search/Elasticsearch/Role/Scroll.pm blib\lib\Search\Elasticsearch\Role\Scroll.pm cp lib/Search/Elasticsearch/Role/Serializer.pm blib\lib\Search\Elasticsearch\Role\Serializer.pm cp lib/Search/Elasticsearch/Serializer/JSON/Cpanel.pm blib\lib\Search\Elasticsearch\Serializer\JSON\Cpanel.pm cp lib/Search/Elasticsearch/Transport.pm blib\lib\Search\Elasticsearch\Transport.pm cp lib/Search/Elasticsearch/Util/API/Path.pm blib\lib\Search\Elasticsearch\Util\API\Path.pm cp lib/Search/Elasticsearch/Serializer/JSON/XS.pm blib\lib\Search\Elasticsearch\Serializer\JSON\XS.pm cp lib/Search/Elasticsearch/Serializer/JSON/PP.pm blib\lib\Search\Elasticsearch\Serializer\JSON\PP.pm cp lib/Search/Elasticsearch/Util.pm blib\lib\Search\Elasticsearch\Util.pm cp lib/Search/Elasticsearch/TestServer.pm blib\lib\Search\Elasticsearch\TestServer.pm cp lib/Search/Elasticsearch/Util/API/QS.pm blib\lib\Search\Elasticsearch\Util\API\QS.pm DRTECH/Search-Elasticsearch-1.14.tar.gz dmake -- OK Running make test >>> dmake test TEST_VERBOSE=1 C:\Perl64-5.20\bin\perl.exe "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib\lib', 'blib\arch')" t/*.t t/10_Basic/*.t t/20_Serializer/*.t t/30_Logger/*.t t/40_Transport/*.t t/50_Cxn_Pool/*.t t/60_Cxn/*.t t/70_Helper/*.t t/90_Client_Spec/*.t t/10_Basic/10_load.t .......................... ok 1 - use Search::Elasticsearch; ok 2 - 'client' isa 'Search::Elasticsearch::Client::Direct' ok 3 - 'transport' isa 'Search::Elasticsearch::Transport' ok 4 - 'cxn_pool' isa 'Search::Elasticsearch::CxnPool::Static' ok 5 - 'cxn_factory' isa 'Search::Elasticsearch::Cxn::Factory' ok 6 - 'logger' isa 'Search::Elasticsearch::Logger::LogAny' 1..6 ok t/20_Serializer/10_load_cpanel.t .............. ok 1 - 'Cpanel' isa 'Cpanel::JSON::XS' 1..1 ok t/20_Serializer/11_load_xs.t .................. ok 1 - 'JSON::XS' isa 'JSON::XS' 1..1 ok t/20_Serializer/12_load_pp.t .................. ok 1 - 'JSON::PP' isa 'JSON::PP' 1..1 ok t/20_Serializer/13_preload_cpanel.t ........... ok 1 - 'Cpanel' isa 'Cpanel::JSON::XS' 1..1 ok t/20_Serializer/14_preload_xs.t ............... ok 1 - 'JSON::XS' isa 'JSON::XS' 1..1 ok t/20_Serializer/20_xs_encode_decode.t ......... ok 1 - 'Serializer' isa 'Search::Elasticsearch::Serializer::JSON::XS' ok 2 - Enc - No args returns undef ok 3 - Enc - Undef returns undef ok 4 - Enc - Empty string returns same ok 5 - Enc - String returns same ok 6 - Enc - Unicode string returns encoded ok 7 - Enc - Unicode bytes returns same ok 8 - Enc - Hash returns JSON ok 9 - Enc - Array returns JSON ok 10 - Enc - scalar ref dies 1..10 ok t/20_Serializer/21_xs_encode_bulk.t ........... ok 1 - 'Serializer' isa 'Search::Elasticsearch::Serializer::JSON::XS' ok 2 - Mime type is JSON ok 3 - Enc - No args returns undef ok 4 - Enc - Undef returns undef ok 5 - Enc - Empty string returns same ok 6 - Enc - String returns same ok 7 - Enc - Unicode string returns encoded ok 8 - Enc - Unicode bytes returns same ok 9 - Enc - Hash returns JSON ok 10 - Enc - Array returns JSON ok 11 - Enc - scalar ref dies ok 12 - Dec - No args returns undef ok 13 - Dec - Undef returns undef ok 14 - Dec - Empty string returns same ok 15 - Dec - String returns same ok 16 - Dec - Unicode bytes returns decoded ok 17 - Dec - Unicode string returns same ok 18 - Dec - JSON returns hash ok 19 - Dec - JSON returns array ok 20 - Dec - invalid JSON dies 1..20 ok t/20_Serializer/22_xs_encode_pretty.t ......... ok 1 - 'Serializer' isa 'Search::Elasticsearch::Serializer::JSON::XS' ok 2 - Mime type is JSON ok 3 - Enc - No args returns undef ok 4 - Enc - Undef returns undef ok 5 - Enc - Empty string returns same ok 6 - Enc - String returns same ok 7 - Enc - Unicode string returns encoded ok 8 - Enc - Unicode bytes returns same ok 9 - Enc - Hash returns JSON ok 10 - Enc - Array returns JSON ok 11 - Enc - scalar ref dies ok 12 - Dec - No args returns undef ok 13 - Dec - Undef returns undef ok 14 - Dec - Empty string returns same ok 15 - Dec - String returns same ok 16 - Dec - Unicode bytes returns decoded ok 17 - Dec - Unicode string returns same ok 18 - Dec - JSON returns hash ok 19 - Dec - JSON returns array ok 20 - Dec - invalid JSON dies 1..20 ok t/20_Serializer/30_cpanel_encode_decode.t ..... ok 1 - 'Serializer' isa 'Search::Elasticsearch::Serializer::JSON::Cpanel' ok 2 - Enc - No args returns undef ok 3 - Enc - Undef returns undef ok 4 - Enc - Empty string returns same ok 5 - Enc - String returns same ok 6 - Enc - Unicode string returns encoded ok 7 - Enc - Unicode bytes returns same ok 8 - Enc - Hash returns JSON ok 9 - Enc - Array returns JSON ok 10 - Enc - scalar ref dies 1..10 ok t/20_Serializer/31_cpanel_encode_bulk.t ....... ok 1 - 'Serializer' isa 'Search::Elasticsearch::Serializer::JSON::Cpanel' ok 2 - Mime type is JSON ok 3 - Enc - No args returns undef ok 4 - Enc - Undef returns undef ok 5 - Enc - Empty string returns same ok 6 - Enc - String returns same ok 7 - Enc - Unicode string returns encoded ok 8 - Enc - Unicode bytes returns same ok 9 - Enc - Hash returns JSON ok 10 - Enc - Array returns JSON ok 11 - Enc - scalar ref dies ok 12 - Dec - No args returns undef ok 13 - Dec - Undef returns undef ok 14 - Dec - Empty string returns same ok 15 - Dec - String returns same ok 16 - Dec - Unicode bytes returns decoded ok 17 - Dec - Unicode string returns same ok 18 - Dec - JSON returns hash ok 19 - Dec - JSON returns array ok 20 - Dec - invalid JSON dies 1..20 ok t/20_Serializer/32_cpanel_encode_pretty.t ..... ok 1 - 'Serializer' isa 'Search::Elasticsearch::Serializer::JSON::Cpanel' ok 2 - Mime type is JSON ok 3 - Enc - No args returns undef ok 4 - Enc - Undef returns undef ok 5 - Enc - Empty string returns same ok 6 - Enc - String returns same ok 7 - Enc - Unicode string returns encoded ok 8 - Enc - Unicode bytes returns same ok 9 - Enc - Hash returns JSON ok 10 - Enc - Array returns JSON ok 11 - Enc - scalar ref dies ok 12 - Dec - No args returns undef ok 13 - Dec - Undef returns undef ok 14 - Dec - Empty string returns same ok 15 - Dec - String returns same ok 16 - Dec - Unicode bytes returns decoded ok 17 - Dec - Unicode string returns same ok 18 - Dec - JSON returns hash ok 19 - Dec - JSON returns array ok 20 - Dec - invalid JSON dies 1..20 ok t/20_Serializer/40_pp_encode_decode.t ......... ok 1 - 'Serializer' isa 'Search::Elasticsearch::Serializer::JSON::PP' ok 2 - Enc - No args returns undef ok 3 - Enc - Undef returns undef ok 4 - Enc - Empty string returns same ok 5 - Enc - String returns same ok 6 - Enc - Unicode string returns encoded ok 7 - Enc - Unicode bytes returns same ok 8 - Enc - Hash returns JSON ok 9 - Enc - Array returns JSON ok 10 - Enc - scalar ref dies 1..10 ok t/20_Serializer/41_pp_encode_bulk.t ........... ok 1 - 'Serializer' isa 'Search::Elasticsearch::Serializer::JSON::PP' ok 2 - Mime type is JSON ok 3 - Enc - No args returns undef ok 4 - Enc - Undef returns undef ok 5 - Enc - Empty string returns same ok 6 - Enc - String returns same ok 7 - Enc - Unicode string returns encoded ok 8 - Enc - Unicode bytes returns same ok 9 - Enc - Hash returns JSON ok 10 - Enc - Array returns JSON ok 11 - Enc - scalar ref dies ok 12 - Dec - No args returns undef ok 13 - Dec - Undef returns undef ok 14 - Dec - Empty string returns same ok 15 - Dec - String returns same ok 16 - Dec - Unicode bytes returns decoded ok 17 - Dec - Unicode string returns same ok 18 - Dec - JSON returns hash ok 19 - Dec - JSON returns array ok 20 - Dec - invalid JSON dies 1..20 ok t/20_Serializer/42_pp_encode_pretty.t ......... ok 1 - 'Serializer' isa 'Search::Elasticsearch::Serializer::JSON::PP' ok 2 - Mime type is JSON ok 3 - Enc - No args returns undef ok 4 - Enc - Undef returns undef ok 5 - Enc - Empty string returns same ok 6 - Enc - String returns same ok 7 - Enc - Unicode string returns encoded ok 8 - Enc - Unicode bytes returns same ok 9 - Enc - Hash returns JSON ok 10 - Enc - Array returns JSON ok 11 - Enc - scalar ref dies ok 12 - Dec - No args returns undef ok 13 - Dec - Undef returns undef ok 14 - Dec - Empty string returns same ok 15 - Dec - String returns same ok 16 - Dec - Unicode bytes returns decoded ok 17 - Dec - Unicode string returns same ok 18 - Dec - JSON returns hash ok 19 - Dec - JSON returns array ok 20 - Dec - invalid JSON dies 1..20 ok Current cxns: ['http://localhost:9200'] Forcing ping before next use on all live cxns Ping [http://localhost:9200] before next request t/30_Logger/10_explicit.t ..................... ok 1 - 'Default Logger' isa 'Search::Elasticsearch::Logger::LogAny' ok 2 - Log as ok 3 - Trace as ok 4 - 'Default - Log to NULL' isa 'Log::Any::Adapter::Null' ok 5 - 'Default - Trace to NULL' isa 'Log::Any::Adapter::Null' ok 6 - 'Std Logger' isa 'Search::Elasticsearch::Logger::LogAny' ok 7 - 'Std - Log to Stderr' isa 'Log::Any::Adapter::Stderr' ok 8 - 'Std - Trace to Stdout' isa 'Log::Any::Adapter::Stdout' ok 9 - 'File Logger' isa 'Search::Elasticsearch::Logger::LogAny' ok 10 - 'File - Log to file' isa 'Log::Any::Adapter::File' ok 11 - 'File - Trace to file' isa 'Log::Any::Adapter::File' 1..11 ok Current cxns: ['http://localhost:9200'] Forcing ping before next use on all live cxns Ping [http://localhost:9200] before next request t/30_Logger/20_implicit.t ..................... Current cxns: ['http://localhost:9200'] Forcing ping before next use on all live cxns Ping [http://localhost:9200] before next request ok 1 - 'Default Logger' isa 'Search::Elasticsearch::Logger::LogAny' ok 2 - 'Default - Log to Stdout' isa 'Log::Any::Adapter::Stdout' ok 3 - 'Default - Trace to Stderr' isa 'Log::Any::Adapter::Stderr' ok 4 - 'Override Logger' isa 'Search::Elasticsearch::Logger::LogAny' ok 5 - 'Override - Log to Stderr' isa 'Log::Any::Adapter::Stderr' ok 6 - 'Override - Trace to Stdout' isa 'Log::Any::Adapter::Stdout' 1..6 ok t/30_Logger/30_log_methods.t .................. ok 1 - 'Logger' isa 'Search::Elasticsearch::Logger::LogAny' ok 2 - debug ok 3 - debug - method ok 4 - debug - format ok 5 - debug - params ok 6 - debugf ok 7 - debugf - method ok 8 - debugf - format ok 9 - debugf - params ok 10 - is_debug ok 11 - is_debug - method ok 12 - is_debug - format ok 13 - is_debug - params ok 14 - info ok 15 - info - method ok 16 - info - format ok 17 - info - params ok 18 - infof ok 19 - infof - method ok 20 - infof - format ok 21 - infof - params ok 22 - is_info ok 23 - is_info - method ok 24 - is_info - format ok 25 - is_info - params ok 26 - warning ok 27 - warning - method ok 28 - warning - format ok 29 - warning - params ok 30 - warningf ok 31 - warningf - method ok 32 - warningf - format ok 33 - warningf - params ok 34 - is_warning ok 35 - is_warning - method ok 36 - is_warning - format ok 37 - is_warning - params ok 38 - error ok 39 - error - method ok 40 - error - format ok 41 - error - params ok 42 - errorf ok 43 - errorf - method ok 44 - errorf - format ok 45 - errorf - params ok 46 - is_error ok 47 - is_error - method ok 48 - is_error - format ok 49 - is_error - params ok 50 - critical ok 51 - critical - method ok 52 - critical - format ok 53 - critical - params ok 54 - criticalf ok 55 - criticalf - method ok 56 - criticalf - format ok 57 - criticalf - params ok 58 - is_critical ok 59 - is_critical - method ok 60 - is_critical - format ok 61 - is_critical - params ok 62 - trace ok 63 - trace - method ok 64 - trace - format ok 65 - trace - params ok 66 - tracef ok 67 - tracef - method ok 68 - tracef - format ok 69 - tracef - params ok 70 - is_trace ok 71 - is_trace - method ok 72 - is_trace - format ok 73 - is_trace - params ok 74 - throw_error ok 75 - throw_error - vars ok 76 - throw_error - method ok 77 - throw_error - format ok 78 - throw_error - params ok 79 - throw_critical ok 80 - throw_critical - vars ok 81 - throw_critical - method ok 82 - throw_critical - format ok 83 - throw_critical - params 1..83 ok t/30_Logger/40_trace_request.t ................ ok 1 - 'Client' isa 'Search::Elasticsearch::Client::Direct' ok 2 - 'Logger' isa 'Search::Elasticsearch::Logger::LogAny' ok 3 - Does Search::Elasticsearch::Role::Cxn ok 4 - No body ok 5 - No body - format ok 6 - Body ok 7 - Body - format ok 8 - Bulk ok 9 - Bulk - format ok 10 - Body string ok 11 - Body string - format 1..11 ok t/30_Logger/50_trace_response.t ............... ok 1 - 'Client' isa 'Search::Elasticsearch::Client::Direct' ok 2 - 'Logger' isa 'Search::Elasticsearch::Logger::LogAny' ok 3 - Does Search::Elasticsearch::Role::Cxn ok 4 - No body ok 5 - No body - format ok 6 - Body ok 7 - Body - format 1..7 ok t/30_Logger/60_trace_error.t .................. ok 1 - 'Client' isa 'Search::Elasticsearch::Client::Direct' ok 2 - 'Logger' isa 'Search::Elasticsearch::Logger::LogAny' ok 3 - Does Search::Elasticsearch::Role::Cxn ok 4 - No body ok 5 - No body - format ok 6 - Body ok 7 - Body - format 1..7 ok t/30_Logger/70_trace_comment.t ................ ok 1 - 'Client' isa 'Search::Elasticsearch::Client::Direct' ok 2 - 'Logger' isa 'Search::Elasticsearch::Logger::LogAny' ok 3 - Does Search::Elasticsearch::Role::Cxn ok 4 - Comment ok 5 - Comment - format 1..5 ok t/40_Transport/10_tidy_request.t .............. ok 1 - An object of class 'Search::Elasticsearch::Transport' isa 'Search::Elasticsearch::Transport' ok 2 - Empty ok 3 - Method ok 4 - Path ok 5 - QS ok 6 - Body - Str ok 7 - Body - Hash ok 8 - Body - Array ok 9 - Body - Bulk ok 10 - MimeType 1..10 ok t/40_Transport/20_send_body_as.t .............. ok 1 - GET-empty ok 2 - GET-body ok 3 - POST-empty ok 4 - POST-eody ok 5 - source-empty ok 6 - source-body 1..6 ok t/40_Transport/30_perform_request.t ........... ok 1 - Simple request ok 2 - Request error ok 3 - Timeout error ok 4 - Timeout resolved ok 5 - Retried connection error ok 6 - Cxn then bad ping ok 7 - Initial bad ping 1..7 ok t/50_Cxn_Pool/10_static_normal.t .............. ok 1 - Ping before first use 1..1 ok t/50_Cxn_Pool/11_static_node_missing.t ........ ok 1 - One node missing ok 2 - Missing node joined - 2 1..2 ok t/50_Cxn_Pool/12_static_node_fails.t .......... ok 1 - One node throws Cxn ok 2 - Failed node recovers 1..2 ok t/50_Cxn_Pool/13_static_node_timesout.t ....... ok 1 - One node throws Timeout then recovers 1..1 ok t/50_Cxn_Pool/14_static_both_nodes_timeout.t .. ok 1 - One node throws Timeout, causing Timeout on other node 1..1 ok t/50_Cxn_Pool/15_static_both_nodes_fail.t ..... ok 1 - Both nodes fails then recover 1..1 ok t/50_Cxn_Pool/16_static_nodes_starting.t ...... ok 1 - Nodes initially unavailable 1..1 ok t/50_Cxn_Pool/17_static_runaway_nodes.t ....... ok 1 - Runaway nodes 1..1 ok t/50_Cxn_Pool/30_sniff_normal.t ............... ok 1 - Sniff before first use 1..1 ok t/50_Cxn_Pool/31_sniff_new_nodes.t ............ ok 1 - Sniff new nodes 1..1 ok t/50_Cxn_Pool/32_sniff_node_fails.t ........... ok 1 - Sniff after failure 1..1 ok t/50_Cxn_Pool/33_sniff_both_nodes_fail.t ...... ok 1 - Sniff after all nodes fail 1..1 ok t/50_Cxn_Pool/34_sniff_node_timeout.t ......... ok 1 - Sniff after timeout 1..1 ok t/50_Cxn_Pool/35_sniff_both_nodes_timeout.t ... ok 1 - Sniff after both nodes timeout 1..1 ok t/50_Cxn_Pool/36_sniff_nodes_starting.t ....... ok 1 - Sniff unavailable nodes while starting up 1..1 ok t/50_Cxn_Pool/37_sniff_runaway_nodes.t ........ ok 1 - Runaway nodes 1..1 ok t/50_Cxn_Pool/38_bad_sniff.t .................. ok 1 - Missing http_address ok 2 - Bad http_address 1..2 ok t/50_Cxn_Pool/39_sniff_max_content.t .......... ok 1 - Dynamic max content length ok 2 - Dynamic max content length 1..2 ok t/50_Cxn_Pool/50_noping_normal.t .............. ok 1 - Round robin 1..1 ok t/50_Cxn_Pool/51_noping_node_fails.t .......... ok 1 - Node fails and recovers 1..1 ok t/50_Cxn_Pool/52_noping_node_timesout.t ....... ok 1 - Node timesout and recovers 1..1 ok t/50_Cxn_Pool/53_noping_all_nodes_fail.t ...... ok 1 - All nodes fail and recover 1..1 ok t/50_Cxn_Pool/54_noping_nodes_starting.t ...... ok 1 - Nodes starting 1..1 ok t/50_Cxn_Pool/55_noping_runaway_nodes.t ....... ok 1 - Runaway nodes 1..1 ok t/50_Cxn_Pool/56_max_retries.t ................ ok 1 - Max retries 1..1 ok t/50_Cxn_Pool/70_live.t ....................... skipped: No Elasticsearch test node available t/60_Cxn/10_basic.t ........................... ok 1 - Does Search::Elasticsearch::Role::Cxn ok 2 - Cxn is live ok 3 - No ping failures ok 4 - No ping scheduled ok 5 - Cxn is dead ok 6 - Has ping failure ok 7 - Ping scheduled ok 8 - Dead timeout x 1 ok 9 - Cxn still dead ok 10 - Has 2 ping failures ok 11 - Ping scheduled ok 12 - Dead timeout x 2 ok 13 - Cxn still dead ok 14 - Has 102 ping failures ok 15 - Ping scheduled ok 16 - Max dead timeout ok 17 - Cxn is dead after force ping ok 18 - Force ping has no ping failures ok 19 - Next ping scheduled for now 1..19 ok t/60_Cxn/20_process_response.t ................ ok 1 - Does Search::Elasticsearch::Role::Cxn ok 2 - OK GET - code ok 3 - OK GET - body ok 4 - OK GET Text body - code ok 5 - OK GET Text body - body ok 6 - OK GET Empty body - code ok 7 - OK GET Empty body - body ok 8 - OK HEAD - code ok 9 - OK HEAD - body ok 10 - Missing GET ok 11 - Missing GET - code ok 12 - Missing GET - body ok 13 - Missing HEAD - code ok 14 - Missing HEAD - body ok 15 - Request error ok 16 - Conflict error ok 17 - Error has current version ok 18 - Timeout error 1..18 ok t/60_Cxn/30_http.t ............................ ok 1 - Default - default_headers ok 2 - Default - host ok 3 - Default - port ok 4 - Default - scheme ok 5 - Default - uri ok 6 - Default - userinfo ok 7 - Host - default_headers ok 8 - Host - host ok 9 - Host - port ok 10 - Host - scheme ok 11 - Host - uri ok 12 - Host - userinfo ok 13 - Host:Port - default_headers ok 14 - Host:Port - host ok 15 - Host:Port - port ok 16 - Host:Port - scheme ok 17 - Host:Port - uri ok 18 - Host:Port - userinfo ok 19 - HTTPS - default_headers ok 20 - HTTPS - host ok 21 - HTTPS - port ok 22 - HTTPS - scheme ok 23 - HTTPS - uri ok 24 - HTTPS - userinfo ok 25 - Path - default_headers ok 26 - Path - host ok 27 - Path - port ok 28 - Path - scheme ok 29 - Path - uri ok 30 - Path - userinfo ok 31 - Userinfo - default_headers ok 32 - Userinfo - host ok 33 - Userinfo - port ok 34 - Userinfo - scheme ok 35 - Userinfo - uri ok 36 - Userinfo - userinfo ok 37 - HTTPS option - default_headers ok 38 - HTTPS option - host ok 39 - HTTPS option - port ok 40 - HTTPS option - scheme ok 41 - HTTPS option - uri ok 42 - HTTPS option - userinfo ok 43 - HTTPS option with settings - default_headers ok 44 - HTTPS option with settings - host ok 45 - HTTPS option with settings - port ok 46 - HTTPS option with settings - scheme ok 47 - HTTPS option with settings - uri ok 48 - HTTPS option with settings - userinfo ok 49 - Port option - default_headers ok 50 - Port option - host ok 51 - Port option - port ok 52 - Port option - scheme ok 53 - Port option - uri ok 54 - Port option - userinfo ok 55 - Port option with settings - default_headers ok 56 - Port option with settings - host ok 57 - Port option with settings - port ok 58 - Port option with settings - scheme ok 59 - Port option with settings - uri ok 60 - Port option with settings - userinfo ok 61 - Path option - default_headers ok 62 - Path option - host ok 63 - Path option - port ok 64 - Path option - scheme ok 65 - Path option - uri ok 66 - Path option - userinfo ok 67 - Path option with settings - default_headers ok 68 - Path option with settings - host ok 69 - Path option with settings - port ok 70 - Path option with settings - scheme ok 71 - Path option with settings - uri ok 72 - Path option with settings - userinfo ok 73 - Userinfo option - default_headers ok 74 - Userinfo option - host ok 75 - Userinfo option - port ok 76 - Userinfo option - scheme ok 77 - Userinfo option - uri ok 78 - Userinfo option - userinfo ok 79 - Userinfo option with settings - default_headers ok 80 - Userinfo option with settings - host ok 81 - Userinfo option with settings - port ok 82 - Userinfo option with settings - scheme ok 83 - Userinfo option with settings - uri ok 84 - Userinfo option with settings - userinfo ok 85 - Deflate option - default_headers ok 86 - Deflate option - host ok 87 - Deflate option - port ok 88 - Deflate option - scheme ok 89 - Deflate option - uri ok 90 - Deflate option - userinfo ok 91 - Hash host - default_headers ok 92 - Hash host - host ok 93 - Hash host - port ok 94 - Hash host - scheme ok 95 - Hash host - uri ok 96 - Hash host - userinfo ok 97 - Hash port - default_headers ok 98 - Hash port - host ok 99 - Hash port - port ok 100 - Hash port - scheme ok 101 - Hash port - uri ok 102 - Hash port - userinfo ok 103 - Hash path - default_headers ok 104 - Hash path - host ok 105 - Hash path - port ok 106 - Hash path - scheme ok 107 - Hash path - uri ok 108 - Hash path - userinfo 1..108 ok t/60_Cxn/40_fork_httptiny.t ................... skipped: No Elasticsearch test node available t/60_Cxn/41_fork_lwp.t ........................ skipped: No Elasticsearch test node available t/60_Cxn/42_fork_hijk.t ....................... skipped: No Elasticsearch test node available t/60_Cxn/43_fork_netcurl.t .................... skipped: No Elasticsearch test node available t/70_Helper/10_bulk_add_action.t .............. skipped: No Elasticsearch test node available t/70_Helper/20_bulk_helpers.t ................. skipped: No Elasticsearch test node available t/70_Helper/30_bulk_flush.t ................... skipped: No Elasticsearch test node available t/70_Helper/40_bulk_errors.t .................. skipped: No Elasticsearch test node available t/70_Helper/50_scroll.t ....................... skipped: No Elasticsearch test node available t/70_Helper/60_reindex.t ...................... skipped: No Elasticsearch test node available t/90_Client_Spec/00_print_version.t ........... skipped: No Elasticsearch test node available t/release-eol.t ............................... skipped: these tests are for release candidate testing t/release-no-tabs.t ........................... skipped: these tests are for release candidate testing t/release-pod-syntax.t ........................ skipped: these tests are for release candidate testing All tests successful. Files=68, Tests=488, 47 wallclock secs ( 0.30 usr + 0.05 sys = 0.34 CPU) Result: PASS DRTECH/Search-Elasticsearch-1.14.tar.gz Tests succeeded but one dependency not OK (Hijk) DRTECH/Search-Elasticsearch-1.14.tar.gz [dependencies] -- NA Running Build for P/PE/PERLER/MooseX-Types-ElasticSearch-0.0.4.tar.gz Has already been unwrapped into directory C:\cpanfly-5.20\var\cpan\build\MooseX-Types-ElasticSearch-0.0.4-_OPR1n CPAN.pm: Building P/PE/PERLER/MooseX-Types-ElasticSearch-0.0.4.tar.gz Warning: Prerequisite 'Search::Elasticsearch => 0' for 'PERLER/MooseX-Types-ElasticSearch-0.0.4.tar.gz' failed when processing 'DRTECH/Search-Elasticsearch-1.14.tar.gz' with 'make_test => NO one dependency not OK (Hijk)'. Continuing, but chances to succeed are limited. >>> C:\Perl64-5.20\bin\perl.exe ./Build Building MooseX-Types-ElasticSearch PERLER/MooseX-Types-ElasticSearch-0.0.4.tar.gz C:\Perl64-5.20\bin\perl.exe ./Build -- OK Running Build test >>> C:\Perl64-5.20\bin\perl.exe ./Build test verbose=1 # Failed test 'MooseX/Types/ElasticSearch.pm loaded ok' # at t/00-compile.t line 37. # got: '512' # expected: '0' Can't locate Search/Elasticsearch.pm in @INC (you may need to install the Search::Elasticsearch module) (@INC contains: C:\cpanfly-5.20\var\cpan\build\MooseX-Types-ElasticSearch-0.0.4-_OPR1n\blib\arch C:\cpanfly-5.20\var\cpan\build\MooseX-Types-ElasticSearch-0.0.4-_OPR1n\blib\lib C:\cpanfly-5.20\var\cpan\build\MooseX-Types-ElasticSearch-0.0.4-_OPR1n\blib\lib C:\cpanfly-5.20\var\cpan\build\MooseX-Types-ElasticSearch-0.0.4-_OPR1n\blib\arch C:\cpanfly-5.20\var\megalib C:/cpanfly-5.20/var/megalib C:/cpanfly-5.20/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:\cpanfly-5.20\var\cpan\build\MooseX-Types-ElasticSearch-0.0.4-_OPR1n\blib\lib/MooseX/Types/ElasticSearch.pm line 16. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\MooseX-Types-ElasticSearch-0.0.4-_OPR1n\blib\lib/MooseX/Types/ElasticSearch.pm line 16. Compilation failed in require at -e line 1. # Looks like you failed 1 test of 1. t/00-compile.t ................ 1..1 not ok 1 - MooseX/Types/ElasticSearch.pm loaded ok Dubious, test returned 1 (wstat 256, 0x100) Failed 1/1 subtests # # # Generated by Dist::Zilla::Plugin::ReportVersions::Tiny v1.10 # perl: 5.020001 (wanted any version) on MSWin32 from C:\Perl64-5.20\bin\perl.exe # # DateTime::Format::Epoch::Unix => 0.13 (want any version) # DateTime::Format::ISO8601 => 0.08 (want any version) # File::Spec => 3.47 (want any version) # IO::Handle => 1.35 (want any version) # IPC::Open3 => 1.16 (want any version) # Module::Build => 0.4208 (want 0.3601) # MooseX::Types => 0.45 (want any version) # Search::Elasticsearch => module not found. (want any version) # Test::More => 1.001006 (want 0.88) # # Thanks for using my code. I hope it works for you. # If not, please try and include this output in the bug report. # That will help me reproduce the issue and solve your problem. # t/000-report-versions-tiny.t .. ok 1 - we really didn't test anything, just reporting data 1..1 ok t/release-has-version.t ....... skipped: these tests are for release candidate testing t/release-kwalitee.t .......... skipped: these tests are for release candidate testing t/release-minimum-version.t ... skipped: these tests are for release candidate testing t/release-pod-coverage.t ...... skipped: these tests are for release candidate testing t/release-pod-syntax.t ........ skipped: these tests are for release candidate testing Test Summary Report ------------------- t/00-compile.t (Wstat: 256 Tests: 1 Failed: 1) Failed test: 1 Non-zero exit status: 1 Files=7, Tests=2, 2 wallclock secs ( 0.06 usr + 0.02 sys = 0.08 CPU) Result: FAIL Failed 1/7 test programs. 1/2 subtests failed. PERLER/MooseX-Types-ElasticSearch-0.0.4.tar.gz one dependency not OK (Search::Elasticsearch); additionally test harness failed C:\Perl64-5.20\bin\perl.exe ./Build test verbose=1 -- NOT OK //hint// to see the cpan-testers results for installing this module, try: reports PERLER/MooseX-Types-ElasticSearch-0.0.4.tar.gz Running test for module 'ElasticSearch' The module ElasticSearch isn't available on CPAN. Either the module has not yet been uploaded to CPAN, or it is temporary unavailable. Please contact the author to find out more about the status. Try 'i ElasticSearch'. Running test for module 'MooseX::Attribute::Deflator' Running make for P/PE/PERLER/MooseX-Attribute-Deflator-2.2.2.tar.gz Fetching with LWP: http://cpan.nas1.activestate.com/authors/id/P/PE/PERLER/MooseX-Attribute-Deflator-2.2.2.tar.gz Checksum for C:\cpanfly-5.20\var\cpan\sources\authors\id\P\PE\PERLER\MooseX-Attribute-Deflator-2.2.2.tar.gz ok MooseX-Attribute-Deflator-2.2.2 MooseX-Attribute-Deflator-2.2.2/README MooseX-Attribute-Deflator-2.2.2/Changes MooseX-Attribute-Deflator-2.2.2/LICENSE MooseX-Attribute-Deflator-2.2.2/dist.ini MooseX-Attribute-Deflator-2.2.2/t MooseX-Attribute-Deflator-2.2.2/t/role.t MooseX-Attribute-Deflator-2.2.2/META.yml MooseX-Attribute-Deflator-2.2.2/MANIFEST MooseX-Attribute-Deflator-2.2.2/Build.PL MooseX-Attribute-Deflator-2.2.2/META.json MooseX-Attribute-Deflator-2.2.2/README.pod MooseX-Attribute-Deflator-2.2.2/t/coerce.t MooseX-Attribute-Deflator-2.2.2/benchmark.pl MooseX-Attribute-Deflator-2.2.2/t/synopsis.t MooseX-Attribute-Deflator-2.2.2/t/structured.t MooseX-Attribute-Deflator-2.2.2/t/lib MooseX-Attribute-Deflator-2.2.2/t/lib/Types.pm MooseX-Attribute-Deflator-2.2.2/t/00-compile.t MooseX-Attribute-Deflator-2.2.2/t/basic_types.t MooseX-Attribute-Deflator-2.2.2/t/lazyinflator.t MooseX-Attribute-Deflator-2.2.2/t/moosex_types.t MooseX-Attribute-Deflator-2.2.2/t/parameterizable.t MooseX-Attribute-Deflator-2.2.2/t/release-kwalitee.t MooseX-Attribute-Deflator-2.2.2/t/release-pod-syntax.t MooseX-Attribute-Deflator-2.2.2/t/release-has-version.t MooseX-Attribute-Deflator-2.2.2/t/release-pod-coverage.t MooseX-Attribute-Deflator-2.2.2/t/release-minimum-version.t MooseX-Attribute-Deflator-2.2.2/t/000-report-versions-tiny.t MooseX-Attribute-Deflator-2.2.2/lib/MooseX/Attribute MooseX-Attribute-Deflator-2.2.2/lib/MooseX/Attribute/Deflator.pm MooseX-Attribute-Deflator-2.2.2/lib/MooseX/Attribute/LazyInflator.pm MooseX-Attribute-Deflator-2.2.2/lib/MooseX/Attribute/Deflator MooseX-Attribute-Deflator-2.2.2/lib/MooseX/Attribute/Deflator/Moose.pm MooseX-Attribute-Deflator-2.2.2/lib/MooseX/Attribute/Deflator/Registry.pm MooseX-Attribute-Deflator-2.2.2/lib/MooseX/Attribute/Deflator/Structured.pm MooseX-Attribute-Deflator-2.2.2/lib/MooseX/Attribute/LazyInflator/Role MooseX-Attribute-Deflator-2.2.2/lib/MooseX/Attribute/LazyInflator/Role/Class.pm MooseX-Attribute-Deflator-2.2.2/lib/MooseX/Attribute/LazyInflator/Meta/Role MooseX-Attribute-Deflator-2.2.2/lib/MooseX/Attribute/LazyInflator/Meta/Role/Role.pm MooseX-Attribute-Deflator-2.2.2/lib/MooseX/Attribute/Deflator/Meta/Role MooseX-Attribute-Deflator-2.2.2/lib/MooseX/Attribute/Deflator/Meta/Role/Attribute.pm MooseX-Attribute-Deflator-2.2.2/lib/MooseX/Attribute/LazyInflator/Meta/Role/Attribute.pm MooseX-Attribute-Deflator-2.2.2/lib/MooseX/Attribute/LazyInflator/Meta/Role/Composite.pm MooseX-Attribute-Deflator-2.2.2/lib/MooseX/Attribute/LazyInflator/Meta/Role/Method MooseX-Attribute-Deflator-2.2.2/lib/MooseX/Attribute/LazyInflator/Meta/Role/Method/Accessor.pm MooseX-Attribute-Deflator-2.2.2/lib/MooseX/Attribute/LazyInflator/Meta/Role/ApplicationToRole.pm MooseX-Attribute-Deflator-2.2.2/lib/MooseX/Attribute/LazyInflator/Meta/Role/ApplicationToClass.pm MooseX-Attribute-Deflator-2.2.2/lib/MooseX/Attribute/LazyInflator/Meta/Role/Method/Constructor.pm CPAN.pm: Building P/PE/PERLER/MooseX-Attribute-Deflator-2.2.2.tar.gz >>> C:\Perl64-5.20\bin\perl.exe Build.PL Created MYMETA.yml and MYMETA.json Creating new 'Build' script for 'MooseX-Attribute-Deflator' version '2.2.2' >>> C:\Perl64-5.20\bin\perl.exe ./Build Building MooseX-Attribute-Deflator PERLER/MooseX-Attribute-Deflator-2.2.2.tar.gz C:\Perl64-5.20\bin\perl.exe ./Build -- OK Running Build test >>> C:\Perl64-5.20\bin\perl.exe ./Build test verbose=1 t/00-compile.t ................ 1..14 ok 1 - MooseX::Attribute::Deflator loaded ok ok 2 - MooseX::Attribute::Deflator::Meta::Role::Attribute loaded ok ok 3 - MooseX::Attribute::Deflator::Moose loaded ok ok 4 - MooseX::Attribute::Deflator::Registry loaded ok ok 5 - MooseX::Attribute::Deflator::Structured loaded ok ok 6 - MooseX::Attribute::LazyInflator loaded ok ok 7 - MooseX::Attribute::LazyInflator::Meta::Role::ApplicationToClass loaded ok ok 8 - MooseX::Attribute::LazyInflator::Meta::Role::ApplicationToRole loaded ok ok 9 - MooseX::Attribute::LazyInflator::Meta::Role::Attribute loaded ok ok 10 - MooseX::Attribute::LazyInflator::Meta::Role::Composite loaded ok ok 11 - MooseX::Attribute::LazyInflator::Meta::Role::Method::Accessor loaded ok ok 12 - MooseX::Attribute::LazyInflator::Meta::Role::Method::Constructor loaded ok ok 13 - MooseX::Attribute::LazyInflator::Meta::Role::Role loaded ok ok 14 - MooseX::Attribute::LazyInflator::Role::Class loaded ok ok # # # perl: v5.20.1 (wanted any version) on MSWin32 from C:\Perl64-5.20\bin\perl.exe # # DateTime => 1.12 (want any version) # Devel::PartialDump => 0.17 (want any version) # File::Find => 1.27 (want any version) # File::Temp => 0.2304 (want any version) # JSON => 2.90 (want any version) # Module::Build => 0.4208 (want 0.3601) # Moose => 2.1213 (want 1.25) # Moose::Util::TypeConstraints => 2.1213 (want any version) # MooseX::Types => 0.45 (want 0.30) # MooseX::Types::Moose => 0.45 (want any version) # MooseX::Types::Structured => 0.30 (want any version) # Test::More => 1.001006 (want 0.88) # Try::Tiny => 0.22 (want any version) # # Thanks for using my code. I hope it works for you. # If not, please try and include this output in the bug report. # That will help me reproduce the issue and solve you problem. # t/000-report-versions-tiny.t .. ok 1 - we really didn't test anything, just reporting data 1..1 ok # making immutable t/basic_types.t ............... ok 1 - work on attribute datetimearrayref ok 2 - result is [1412046051,1412049651] ok 3 - inflates [1412046051,1412049651] correctly ok 4 - deflator inlined ok 5 - inflator inlined ok 6 - work on attribute not_inlined ok 7 - result is [1] ok 8 - inflates [1] correctly ok 9 - work on attribute bool ok 10 - result is 1 ok 11 - inflates 1 correctly ok 12 - deflator inlined ok 13 - inflator inlined ok 14 - work on attribute no_type ok 15 - result is no_type ok 16 - inflates no_type correctly ok 17 - deflator inlined ok 18 - inflator inlined ok 19 - work on attribute scalarint ok 20 - result is 1 ok 21 - inflates 1 correctly ok 22 - deflator inlined ok 23 - inflator inlined ok 24 - work on attribute hashrefarray ok 25 - result is {"foo":"[\"{\\\"foo\\\":\\\"bar\\\"}\"]"} ok 26 - inflates {"foo":"[\"{\\\"foo\\\":\\\"bar\\\"}\"]"} correctly ok 27 - deflator inlined ok 28 - inflator inlined ok 29 - work on attribute datetime ok 30 - result is 1412046051 ok 31 - inflates 1412046051 correctly ok 32 - deflator inlined ok 33 - inflator inlined ok 34 - work on attribute hashref ok 35 - attribute has no value ok 36 - result is {"foo":"bar"} ok 37 - deflate sets object value ok 38 - inflates {"foo":"bar"} correctly ok 39 - deflator inlined ok 40 - inflator inlined ok 41 - deflate with optional value ok 42 - work on attribute not_inlined ok 43 - result is [1] ok 44 - inflates [1] correctly ok 45 - work on attribute datetimearrayref ok 46 - result is [1412046051,1412049651] ok 47 - inflates [1412046051,1412049651] correctly ok 48 - deflator inlined ok 49 - inflator inlined ok 50 - work on attribute no_type ok 51 - result is no_type ok 52 - inflates no_type correctly ok 53 - deflator inlined ok 54 - inflator inlined ok 55 - work on attribute bool ok 56 - result is 1 ok 57 - inflates 1 correctly ok 58 - deflator inlined ok 59 - inflator inlined ok 60 - work on attribute scalarint ok 61 - result is 1 ok 62 - inflates 1 correctly ok 63 - deflator inlined ok 64 - inflator inlined ok 65 - work on attribute hashref ok 66 - attribute has no value ok 67 - result is {"foo":"bar"} ok 68 - deflate sets object value ok 69 - inflates {"foo":"bar"} correctly ok 70 - deflator inlined ok 71 - inflator inlined ok 72 - work on attribute hashrefarray ok 73 - result is {"foo":"[\"{\\\"foo\\\":\\\"bar\\\"}\"]"} ok 74 - inflates {"foo":"[\"{\\\"foo\\\":\\\"bar\\\"}\"]"} correctly ok 75 - deflator inlined ok 76 - inflator inlined ok 77 - work on attribute datetime ok 78 - result is 1412046051 ok 79 - inflates 1412046051 correctly ok 80 - deflator inlined ok 81 - inflator inlined ok 82 - deflate with optional value 1..82 ok t/coerce.t .................... ok 1 - raw value is arrayref ok 2 - attribute has been coerced ok 3 ok 4 - raw value is arrayref ok 5 - attribute has been coerced ok 6 ok 7 - raw value is arrayref ok 8 - attribute has been coerced ok 9 ok 10 - raw value is arrayref ok 11 - attribute has been coerced ok 12 1..12 ok # making immutable t/lazyinflator.t .............. ok 1 - Attribute has value ok 2 - Raw value is raw ok 3 - Value has been inflated ok 4 - Attribute is_inflated ok 5 - Value has not been inflated again ok 6 - Value has been inflated through accessor ok 7 - Attribute is lazy ok 8 - Attribute has no value ok 9 - Raw value is undef ok 10 - get_value calls builder ok 11 - Builder works on accessor ok 12 - Value has been inflated through accessor ok 13 - deflator calls builder ok 14 - Attribute is inflated ok 15 - ScalarRef attribute is not inflated ok 16 - Attribute has value ok 17 - Raw value is raw ok 18 - Value has been inflated ok 19 - Attribute is_inflated ok 20 - Value has not been inflated again ok 21 - Value has been inflated through accessor ok 22 - Attribute is lazy ok 23 - Attribute has no value ok 24 - Raw value is undef ok 25 - get_value calls builder ok 26 - Builder works on accessor ok 27 - Value has been inflated through accessor ok 28 - deflator calls builder ok 29 - Attribute is inflated ok 30 - ScalarRef attribute is not inflated 1..30 ok t/moosex_types.t .............. ok 1 ok 2 ok 3 - throws error ok 1..3 ok t/parameterizable.t ........... ok 1 - found correct type ok 2 - no inlined code ok 3 - found Item type deflator for Str type ok 4 - found inline code as well 1..4 ok t/release-has-version.t ....... skipped: these tests are for release candidate testing t/release-kwalitee.t .......... skipped: these tests are for release candidate testing t/release-minimum-version.t ... skipped: these tests are for release candidate testing t/release-pod-coverage.t ...... skipped: these tests are for release candidate testing t/release-pod-syntax.t ........ skipped: these tests are for release candidate testing # making immutable # making immutable # making immutable t/role.t ...................... ok 1 - Attribute has value ok 2 - Raw value is raw ok 3 - Value has been inflated ok 4 - Value has not been inflated again ok 5 - Value has been inflated through accessor ok 6 - Attribute is lazy ok 7 - Attribute has no value ok 8 - Raw value is undef ok 9 - get_value calls builder ok 10 - Builder works on accessor ok 11 - Value has been inflated through accessor ok 12 - Attribute is inflated ok 13 - ScalarRef attribute is not inflated ok 14 - Attribute has value ok 15 - Raw value is raw ok 16 - Value has been inflated ok 17 - Value has not been inflated again ok 18 - Value has been inflated through accessor ok 19 - Attribute is lazy ok 20 - Attribute has no value ok 21 - Raw value is undef ok 22 - get_value calls builder ok 23 - Builder works on accessor ok 24 - Value has been inflated through accessor ok 25 - Attribute is inflated ok 26 - ScalarRef attribute is not inflated ok 27 - Attribute has value ok 28 - Raw value is raw ok 29 - Value has been inflated ok 30 - Value has not been inflated again ok 31 - Value has been inflated through accessor ok 32 - Attribute is lazy ok 33 - Attribute has no value ok 34 - Raw value is undef ok 35 - get_value calls builder ok 36 - Builder works on accessor ok 37 - Value has been inflated through accessor ok 38 - Attribute is inflated ok 39 - ScalarRef attribute is not inflated ok 40 - Attribute has value ok 41 - Raw value is raw ok 42 - Value has been inflated ok 43 - Value has not been inflated again ok 44 - Value has been inflated through accessor ok 45 - Attribute is lazy ok 46 - Attribute has no value ok 47 - Raw value is undef ok 48 - get_value calls builder ok 49 - Builder works on accessor ok 50 - Value has been inflated through accessor ok 51 - Attribute is inflated ok 52 - ScalarRef attribute is not inflated ok 53 - Attribute has value ok 54 - Raw value is raw ok 55 - Value has been inflated ok 56 - Value has not been inflated again ok 57 - Value has been inflated through accessor ok 58 - Attribute is lazy ok 59 - Attribute has no value ok 60 - Raw value is undef ok 61 - get_value calls builder ok 62 - Builder works on accessor ok 63 - Value has been inflated through accessor ok 64 - Attribute is inflated ok 65 - ScalarRef attribute is not inflated ok 66 - Attribute has value ok 67 - Raw value is raw ok 68 - Value has been inflated ok 69 - Value has not been inflated again ok 70 - Value has been inflated through accessor ok 71 - Attribute is lazy ok 72 - Attribute has no value ok 73 - Raw value is undef ok 74 - get_value calls builder ok 75 - Builder works on accessor ok 76 - Value has been inflated through accessor ok 77 - Attribute is inflated ok 78 - ScalarRef attribute is not inflated 1..78 ok t/structured.t ................ ok 1 - inlined deflator ok 2 - inlined inflator ok 3 - value of fullname is set correctly ok 4 - deflation of fullname works ok 5 - inflation of fullname works ok 6 - inlined deflator ok 7 - inlined inflator ok 8 - value of tuple is set correctly ok 9 - deflation of tuple works ok 10 - inflation of tuple works ok 11 - inlined deflator ok 12 - inlined inflator ok 13 - value of person is set correctly ok 14 - deflation of person works ok 15 - inflation of person works ok 16 - inlined deflator ok 17 - inlined inflator ok 18 - value of person2 is set correctly ok 19 - deflation of person2 works ok 20 - inflation of person2 works ok 21 - inlined deflator ok 22 - inlined inflator ok 23 - value of map is set correctly ok 24 - deflation of map works ok 25 - inflation of map works 1..25 ok t/synopsis.t .................. ok 1 ok 2 - An object of class 'DateTime' isa 'DateTime' ok 3 ok 4 ok 5 - deflate object method works as well ok 6 ok 7 - throws on wrong type ok 8 ok 9 - throws on wrong type 1..9 ok All tests successful. Files=15, Tests=258, 17 wallclock secs ( 0.16 usr + 0.00 sys = 0.16 CPU) Result: PASS PERLER/MooseX-Attribute-Deflator-2.2.2.tar.gz C:\Perl64-5.20\bin\perl.exe ./Build test verbose=1 -- OK Fetching with LWP: http://cpan.nas1.activestate.com/authors/id/P/PE/PERLER/CHECKSUMS Moritz Onken <onken@netcubed.de> Deflate and inflate Moose attribute values >>> (cd C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P && tar cvf - MooseX-Attribute-Deflator-2.2.2.ppd blib) | gzip -c >C:/cpanfly-5.20/var/REPO/P/PE/PERLER/MooseX-Attribute-Deflator-2.2.2.tar.gz MooseX-Attribute-Deflator-2.2.2.ppd blib/ blib/lib/ blib/lib/MooseX/ blib/lib/MooseX/Attribute/ blib/lib/MooseX/Attribute/Deflator/ blib/lib/MooseX/Attribute/Deflator/Meta/ blib/lib/MooseX/Attribute/Deflator/Meta/Role/ blib/lib/MooseX/Attribute/Deflator/Meta/Role/Attribute.pm blib/lib/MooseX/Attribute/Deflator/Moose.pm blib/lib/MooseX/Attribute/Deflator/Registry.pm blib/lib/MooseX/Attribute/Deflator/Structured.pm blib/lib/MooseX/Attribute/Deflator.pm blib/lib/MooseX/Attribute/LazyInflator/ blib/lib/MooseX/Attribute/LazyInflator/Meta/ blib/lib/MooseX/Attribute/LazyInflator/Meta/Role/ blib/lib/MooseX/Attribute/LazyInflator/Meta/Role/ApplicationToClass.pm blib/lib/MooseX/Attribute/LazyInflator/Meta/Role/ApplicationToRole.pm blib/lib/MooseX/Attribute/LazyInflator/Meta/Role/Attribute.pm blib/lib/MooseX/Attribute/LazyInflator/Meta/Role/Composite.pm blib/lib/MooseX/Attribute/LazyInflator/Meta/Role/Method/ blib/lib/MooseX/Attribute/LazyInflator/Meta/Role/Method/Accessor.pm blib/lib/MooseX/Attribute/LazyInflator/Meta/Role/Method/Constructor.pm blib/lib/MooseX/Attribute/LazyInflator/Meta/Role/Role.pm blib/lib/MooseX/Attribute/LazyInflator/Role/ blib/lib/MooseX/Attribute/LazyInflator/Role/Class.pm blib/lib/MooseX/Attribute/LazyInflator.pm >>> mv C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/MooseX-Attribute-Deflator-2.2.2.ppd C:/cpanfly-5.20/var/REPO/P/PE/PERLER Running Build for P/PE/PERLER/ElasticSearchX-Model-0.1.7.tar.gz Prepending C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib to PERL5LIB for 'get' Has already been unwrapped into directory C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki Prepending C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib to PERL5LIB for 'make' CPAN.pm: Building P/PE/PERLER/ElasticSearchX-Model-0.1.7.tar.gz Warning: Prerequisite 'MooseX::Types::ElasticSearch => v0.0.2' for 'PERLER/ElasticSearchX-Model-0.1.7.tar.gz' failed when processing 'PERLER/MooseX-Types-ElasticSearch-0.0.4.tar.gz' with 'make_test => NO one dependency not OK (Search::Elasticsearch); additionally test harness failed'. Continuing, but chances to succeed are limited. >>> C:\Perl64-5.20\bin\perl.exe ./Build Building ElasticSearchX-Model PERLER/ElasticSearchX-Model-0.1.7.tar.gz C:\Perl64-5.20\bin\perl.exe ./Build -- OK Prepending C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib to PERL5LIB for 'test' Running Build test >>> C:\Perl64-5.20\bin\perl.exe ./Build test verbose=1 # Failed test 'ElasticSearchX/Model.pm loaded ok' # at t/00-compile.t line 53. # got: '512' # expected: '0' Can't locate ElasticSearch.pm in @INC (you may need to install the ElasticSearch module) (@INC contains: C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Index.pm line 17. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Index.pm line 17. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model.pm line 18. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model.pm line 18. Compilation failed in require at -e line 1. # Failed test 'ElasticSearchX/Model/Document.pm loaded ok' # at t/00-compile.t line 53. # got: '512' # expected: '0' Can't locate ElasticSearch.pm in @INC (you may need to install the ElasticSearch module) (@INC contains: C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Trait/Attribute.pm line 21. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Trait/Attribute.pm line 21. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document.pm line 21. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document.pm line 21. Compilation failed in require at -e line 1. # Failed test 'ElasticSearchX/Model/Document/Set.pm loaded ok' # at t/00-compile.t line 53. # got: '512' # expected: '0' Can't locate ElasticSearch/ScrolledSearch.pm in @INC (you may need to install the ElasticSearch::ScrolledSearch module) (@INC contains: C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Scroll.pm line 15. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Scroll.pm line 15. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Set.pm line 19. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Set.pm line 19. Compilation failed in require at -e line 1. # Failed test 'ElasticSearchX/Model/Document/Trait/Attribute.pm loaded ok' # at t/00-compile.t line 53. # got: '512' # expected: '0' Can't locate ElasticSearch.pm in @INC (you may need to install the ElasticSearch module) (@INC contains: C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Trait/Attribute.pm line 21. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Trait/Attribute.pm line 21. Compilation failed in require at -e line 1. # Failed test 'ElasticSearchX/Model/Document/Trait/Field/ID.pm loaded ok' # at t/00-compile.t line 53. # got: '512' # expected: '0' Can't locate ElasticSearch.pm in @INC (you may need to install the ElasticSearch module) (@INC contains: C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Trait/Field/ID.pm line 15. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Trait/Field/ID.pm line 15. Compilation failed in require at -e line 1. # Failed test 'ElasticSearchX/Model/Document/Trait/Field/TTL.pm loaded ok' # at t/00-compile.t line 53. # got: '512' # expected: '0' Can't locate ElasticSearch.pm in @INC (you may need to install the ElasticSearch module) (@INC contains: C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Trait/Field/TTL.pm line 15. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Trait/Field/TTL.pm line 15. Compilation failed in require at -e line 1. # Failed test 'ElasticSearchX/Model/Document/Trait/Field/Timestamp.pm loaded ok' # at t/00-compile.t line 53. # got: '512' # expected: '0' Can't locate ElasticSearch.pm in @INC (you may need to install the ElasticSearch module) (@INC contains: C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Trait/Field/Timestamp.pm line 15. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Trait/Field/Timestamp.pm line 15. Compilation failed in require at -e line 1. # Failed test 'ElasticSearchX/Model/Document/Trait/Field/Version.pm loaded ok' # at t/00-compile.t line 53. # got: '512' # expected: '0' Can't locate ElasticSearch.pm in @INC (you may need to install the ElasticSearch module) (@INC contains: C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Trait/Field/Version.pm line 15. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Trait/Field/Version.pm line 15. Compilation failed in require at -e line 1. # Failed test 'ElasticSearchX/Model/Document/Types.pm loaded ok' # at t/00-compile.t line 53. # got: '512' # expected: '0' Can't locate ElasticSearch.pm in @INC (you may need to install the ElasticSearch module) (@INC contains: C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. Compilation failed in require at -e line 1. # Failed test 'ElasticSearchX/Model/Index.pm loaded ok' # at t/00-compile.t line 53. # got: '512' # expected: '0' Can't locate ElasticSearch.pm in @INC (you may need to install the ElasticSearch module) (@INC contains: C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Index.pm line 17. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Index.pm line 17. Compilation failed in require at -e line 1. # Failed test 'ElasticSearchX/Model/Role.pm loaded ok' # at t/00-compile.t line 53. # got: '512' # expected: '0' Can't locate ElasticSearch.pm in @INC (you may need to install the ElasticSearch module) (@INC contains: C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Role.pm line 15. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Role.pm line 15. Compilation failed in require at -e line 1. # Failed test 'ElasticSearchX/Model/Scroll.pm loaded ok' # at t/00-compile.t line 53. # got: '512' # expected: '0' Can't locate ElasticSearch/ScrolledSearch.pm in @INC (you may need to install the ElasticSearch::ScrolledSearch module) (@INC contains: C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Scroll.pm line 15. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Scroll.pm line 15. Compilation failed in require at -e line 1. # Looks like you failed 12 tests of 19. t/00-compile.t ................ 1..19 not ok 1 - ElasticSearchX/Model.pm loaded ok ok 2 - ElasticSearchX/Model/Bulk.pm loaded ok not ok 3 - ElasticSearchX/Model/Document.pm loaded ok ok 4 - ElasticSearchX/Model/Document/Mapping.pm loaded ok ok 5 - ElasticSearchX/Model/Document/Role.pm loaded ok not ok 6 - ElasticSearchX/Model/Document/Set.pm loaded ok not ok 7 - ElasticSearchX/Model/Document/Trait/Attribute.pm loaded ok ok 8 - ElasticSearchX/Model/Document/Trait/Class.pm loaded ok not ok 9 - ElasticSearchX/Model/Document/Trait/Field/ID.pm loaded ok not ok 10 - ElasticSearchX/Model/Document/Trait/Field/TTL.pm loaded ok not ok 11 - ElasticSearchX/Model/Document/Trait/Field/Timestamp.pm loaded ok not ok 12 - ElasticSearchX/Model/Document/Trait/Field/Version.pm loaded ok not ok 13 - ElasticSearchX/Model/Document/Types.pm loaded ok not ok 14 - ElasticSearchX/Model/Index.pm loaded ok not ok 15 - ElasticSearchX/Model/Role.pm loaded ok not ok 16 - ElasticSearchX/Model/Scroll.pm loaded ok ok 17 - ElasticSearchX/Model/Trait/Class.pm loaded ok ok 18 - ElasticSearchX/Model/Tutorial.pm loaded ok ok 19 - ElasticSearchX/Model/Util.pm loaded ok Dubious, test returned 12 (wstat 3072, 0xc00) Failed 12/19 subtests # # # Generated by Dist::Zilla::Plugin::ReportVersions::Tiny v1.10 # perl: 5.020001 (wanted any version) on MSWin32 from C:\Perl64-5.20\bin\perl.exe # # Carp => 1.3301 (want any version) # Class::Load => 0.22 (want any version) # DateTime => 1.12 (want any version) # DateTime::Format::Epoch::Unix => 0.13 (want any version) # DateTime::Format::ISO8601 => 0.08 (want any version) # Digest::SHA1 => 2.13 (want any version) # ElasticSearch => module not found. (want 0.65) # File::Find => 1.27 (want any version) # File::Spec => 3.47 (want any version) # File::Temp => 0.2304 (want any version) # IO::Handle => 1.35 (want any version) # IO::Socket::INET => 1.35 (want any version) # IPC::Open3 => 1.16 (want any version) # JSON => 2.90 (want any version) # List::MoreUtils => 0.33 (want any version) # List::Util => 1.41 (want any version) # Module::Build => 0.4208 (want 0.3601) # Module::Find => 0.12 (want any version) # Moose => 2.1213 (want 2.02) # MooseX::Attribute::Chained => 1.0.1 (want v1.0.1) # MooseX::Attribute::Deflator => 2.2.2 (want v2.2.0) # MooseX::Types => 0.45 (want any version) # MooseX::Types::Common::String => 0.001012 (want any version) # MooseX::Types::ElasticSearch => module not found. (want v0.0.2) # MooseX::Types::Structured => 0.30 (want any version) # Scalar::Util => 1.41 (want any version) # Sub::Exporter => 0.987 (want any version) # Test::MockObject::Extends => 1.20140408 (want any version) # Test::More => 1.001006 (want 0.88) # Test::Most => 0.34 (want any version) # # Thanks for using my code. I hope it works for you. # If not, please try and include this output in the bug report. # That will help me reproduce the issue and solve your problem. # t/000-report-versions-tiny.t .. ok 1 - we really didn't test anything, just reporting data 1..1 ok Can't locate ElasticSearch.pm in @INC (you may need to install the ElasticSearch module) (@INC contains: C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Trait/Attribute.pm line 21. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Trait/Attribute.pm line 21. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document.pm line 21. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document.pm line 21. Compilation failed in require at t/bulk.t line 3. BEGIN failed--compilation aborted at t/bulk.t line 3. t/bulk.t ...................... Dubious, test returned 2 (wstat 512, 0x200) No subtests run Can't locate ElasticSearch.pm in @INC (you may need to install the ElasticSearch module) (@INC contains: C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Trait/Attribute.pm line 21. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Trait/Attribute.pm line 21. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document.pm line 21. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document.pm line 21. Compilation failed in require at t/document/class.t line 3. BEGIN failed--compilation aborted at t/document/class.t line 3. t/document/class.t ............ Dubious, test returned 2 (wstat 512, 0x200) No subtests run Can't locate ElasticSearch.pm in @INC (you may need to install the ElasticSearch module) (@INC contains: C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Trait/Attribute.pm line 21. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Trait/Attribute.pm line 21. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document.pm line 21. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document.pm line 21. Compilation failed in require at t/document/get_data.t line 3. BEGIN failed--compilation aborted at t/document/get_data.t line 3. t/document/get_data.t ......... Dubious, test returned 2 (wstat 512, 0x200) No subtests run Can't locate ElasticSearch.pm in @INC (you may need to install the ElasticSearch module) (@INC contains: C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Trait/Attribute.pm line 21. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Trait/Attribute.pm line 21. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document.pm line 21. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document.pm line 21. Compilation failed in require at t/document/mapping.t line 3. BEGIN failed--compilation aborted at t/document/mapping.t line 3. t/document/mapping.t .......... Dubious, test returned 2 (wstat 512, 0x200) No subtests run Can't locate ElasticSearch.pm in @INC (you may need to install the ElasticSearch module) (@INC contains: C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. Compilation failed in require at t/document/types.t line 4. BEGIN failed--compilation aborted at t/document/types.t line 4. t/document/types.t ............ Dubious, test returned 2 (wstat 512, 0x200) No subtests run Can't locate ElasticSearch.pm in @INC (you may need to install the ElasticSearch module) (@INC contains: t/lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Index.pm line 17. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Index.pm line 17. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model.pm line 18. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model.pm line 18. Compilation failed in require at t/lib/MyModel.pm line 14. BEGIN failed--compilation aborted at t/lib/MyModel.pm line 14. Compilation failed in require at t/document/update.t line 4. BEGIN failed--compilation aborted at t/document/update.t line 4. t/document/update.t ........... Dubious, test returned 2 (wstat 512, 0x200) No subtests run Can't locate ElasticSearch.pm in @INC (you may need to install the ElasticSearch module) (@INC contains: t/lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Index.pm line 17. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Index.pm line 17. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model.pm line 18. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model.pm line 18. Compilation failed in require at t/lib/MyModel.pm line 14. BEGIN failed--compilation aborted at t/lib/MyModel.pm line 14. Compilation failed in require at t/es/delete.t line 4. BEGIN failed--compilation aborted at t/es/delete.t line 4. t/es/delete.t ................. Dubious, test returned 2 (wstat 512, 0x200) No subtests run Can't locate ElasticSearch.pm in @INC (you may need to install the ElasticSearch module) (@INC contains: t/lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Index.pm line 17. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Index.pm line 17. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model.pm line 18. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model.pm line 18. Compilation failed in require at t/lib/MyModel.pm line 14. BEGIN failed--compilation aborted at t/lib/MyModel.pm line 14. Compilation failed in require at t/es/fields.t line 4. BEGIN failed--compilation aborted at t/es/fields.t line 4. t/es/fields.t ................. Dubious, test returned 2 (wstat 512, 0x200) No subtests run Can't locate ElasticSearch.pm in @INC (you may need to install the ElasticSearch module) (@INC contains: t/lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Index.pm line 17. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Index.pm line 17. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model.pm line 18. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model.pm line 18. Compilation failed in require at t/lib/MyModel.pm line 14. BEGIN failed--compilation aborted at t/lib/MyModel.pm line 14. Compilation failed in require at t/es/timestamp.t line 4. BEGIN failed--compilation aborted at t/es/timestamp.t line 4. t/es/timestamp.t .............. Dubious, test returned 2 (wstat 512, 0x200) No subtests run Can't locate ElasticSearch.pm in @INC (you may need to install the ElasticSearch module) (@INC contains: t/lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Index.pm line 17. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Index.pm line 17. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model.pm line 18. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model.pm line 18. Compilation failed in require at t/lib/MyModel.pm line 14. BEGIN failed--compilation aborted at t/lib/MyModel.pm line 14. Compilation failed in require at t/es/version.t line 4. BEGIN failed--compilation aborted at t/es/version.t line 4. t/es/version.t ................ Dubious, test returned 2 (wstat 512, 0x200) No subtests run Can't locate ElasticSearch.pm in @INC (you may need to install the ElasticSearch module) (@INC contains: t/lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Index.pm line 17. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Index.pm line 17. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model.pm line 18. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model.pm line 18. Compilation failed in require at t/lib/MyModel.pm line 14. BEGIN failed--compilation aborted at t/lib/MyModel.pm line 14. Compilation failed in require at t/model/es_version.t line 6. BEGIN failed--compilation aborted at t/model/es_version.t line 6. t/model/es_version.t .......... Dubious, test returned 2 (wstat 512, 0x200) No subtests run Can't locate ElasticSearch.pm in @INC (you may need to install the ElasticSearch module) (@INC contains: C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Trait/Attribute.pm line 21. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Trait/Attribute.pm line 21. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document.pm line 21. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document.pm line 21. Compilation failed in require at t/model/minimal.t line 3. BEGIN failed--compilation aborted at t/model/minimal.t line 3. t/model/minimal.t ............. Dubious, test returned 2 (wstat 512, 0x200) No subtests run Can't locate ElasticSearch.pm in @INC (you may need to install the ElasticSearch module) (@INC contains: C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Trait/Attribute.pm line 21. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Trait/Attribute.pm line 21. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document.pm line 21. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document.pm line 21. Compilation failed in require at t/model/model.t line 3. BEGIN failed--compilation aborted at t/model/model.t line 3. t/model/model.t ............... Dubious, test returned 2 (wstat 512, 0x200) No subtests run t/release-has-version.t ....... skipped: these tests are for release candidate testing t/release-kwalitee.t .......... skipped: these tests are for release candidate testing t/release-minimum-version.t ... skipped: these tests are for release candidate testing t/release-pod-coverage.t ...... skipped: these tests are for release candidate testing t/release-pod-syntax.t ........ skipped: these tests are for release candidate testing Can't locate ElasticSearch.pm in @INC (you may need to install the ElasticSearch module) (@INC contains: t/lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\arch C:\cpanfly-5.20\var\megalib C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/arch C:\cpanfly-5.20\var\cpan\build\MooseX-Attribute-Deflator-2.2.2-e33_1P/blib/lib C:/cpanfly-5.20/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Document/Types.pm line 17. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Index.pm line 17. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model/Index.pm line 17. Compilation failed in require at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model.pm line 18. BEGIN failed--compilation aborted at C:\cpanfly-5.20\var\cpan\build\ElasticSearchX-Model-0.1.7-Whopki\blib\lib/ElasticSearchX/Model.pm line 18. Compilation failed in require at t/lib/MyModel.pm line 14. BEGIN failed--compilation aborted at t/lib/MyModel.pm line 14. Compilation failed in require at t/tutorial.t line 4. BEGIN failed--compilation aborted at t/tutorial.t line 4. t/tutorial.t .................. Dubious, test returned 2 (wstat 512, 0x200) No subtests run Test Summary Report ------------------- t/00-compile.t (Wstat: 3072 Tests: 19 Failed: 12) Failed tests: 1, 3, 6-7, 9-16 Non-zero exit status: 12 t/bulk.t (Wstat: 512 Tests: 0 Failed: 0) Non-zero exit status: 2 Parse errors: No plan found in TAP output t/document/class.t (Wstat: 512 Tests: 0 Failed: 0) Non-zero exit status: 2 Parse errors: No plan found in TAP output t/document/get_data.t (Wstat: 512 Tests: 0 Failed: 0) Non-zero exit status: 2 Parse errors: No plan found in TAP output t/document/mapping.t (Wstat: 512 Tests: 0 Failed: 0) Non-zero exit status: 2 Parse errors: No plan found in TAP output t/document/types.t (Wstat: 512 Tests: 0 Failed: 0) Non-zero exit status: 2 Parse errors: No plan found in TAP output t/document/update.t (Wstat: 512 Tests: 0 Failed: 0) Non-zero exit status: 2 Parse errors: No plan found in TAP output t/es/delete.t (Wstat: 512 Tests: 0 Failed: 0) Non-zero exit status: 2 Parse errors: No plan found in TAP output t/es/fields.t (Wstat: 512 Tests: 0 Failed: 0) Non-zero exit status: 2 Parse errors: No plan found in TAP output t/es/timestamp.t (Wstat: 512 Tests: 0 Failed: 0) Non-zero exit status: 2 Parse errors: No plan found in TAP output t/es/version.t (Wstat: 512 Tests: 0 Failed: 0) Non-zero exit status: 2 Parse errors: No plan found in TAP output t/model/es_version.t (Wstat: 512 Tests: 0 Failed: 0) Non-zero exit status: 2 Parse errors: No plan found in TAP output t/model/minimal.t (Wstat: 512 Tests: 0 Failed: 0) Non-zero exit status: 2 Parse errors: No plan found in TAP output t/model/model.t (Wstat: 512 Tests: 0 Failed: 0) Non-zero exit status: 2 Parse errors: No plan found in TAP output t/tutorial.t (Wstat: 512 Tests: 0 Failed: 0) Non-zero exit status: 2 Parse errors: No plan found in TAP output Files=21, Tests=20, 30 wallclock secs ( 0.09 usr + 0.01 sys = 0.11 CPU) Result: FAIL Failed 15/21 test programs. 12/20 subtests failed. PERLER/ElasticSearchX-Model-0.1.7.tar.gz 2 dependencies missing (ElasticSearch,MooseX::Types::ElasticSearch); additionally test harness failed C:\Perl64-5.20\bin\perl.exe ./Build test verbose=1 -- NOT OK //hint// to see the cpan-testers results for installing this module, try: reports PERLER/ElasticSearchX-Model-0.1.7.tar.gz Finished 2014-09-29T20:01:30