From 80693af7d935fd54e5a15b951be3acd90d3a0d10 Mon Sep 17 00:00:00 2001 From: Stanley Fujimoto Date: Mon, 3 Feb 2020 21:51:30 -0700 Subject: [PATCH] handle ambig chars (#31) * handle ambig chars * fix data types * udpate pybind11 version * skip ambiguous characters * additional test scripts * change to invalid_argument exception * Added check for ambiguous characters in test_counter (#32) Co-authored-by: Cole Lyman --- CMakeLists.txt | 11 +- inc/Kcontainer.h | 278 +++-- inc/Kcounter.h | 11 +- inc/Kdict.h | 2 - inc/helper.h | 21 +- kcollections/src/Kcounter.cc | 10 +- kcollections/src/Kset.cc | 1 - kcollections/src/TestCounterSerial.cpp | 89 ++ .../.appveyor.yml | 0 .../.gitignore | 0 .../.gitmodules | 0 .../.readthedocs.yml | 0 .../.travis.yml | 31 +- .../CMakeLists.txt | 0 .../CONTRIBUTING.md | 0 .../ISSUE_TEMPLATE.md | 0 .../LICENSE | 0 .../MANIFEST.in | 0 .../README.md | 2 + .../docs/Doxyfile | 0 .../docs/_static/theme_overrides.css | 0 .../docs/advanced/cast/chrono.rst | 2 +- .../docs/advanced/cast/custom.rst | 0 .../docs/advanced/cast/eigen.rst | 0 .../docs/advanced/cast/functional.rst | 0 .../docs/advanced/cast/index.rst | 0 .../docs/advanced/cast/overview.rst | 0 .../docs/advanced/cast/stl.rst | 0 .../docs/advanced/cast/strings.rst | 0 .../docs/advanced/classes.rst | 1 + .../docs/advanced/embedding.rst | 0 .../docs/advanced/exceptions.rst | 0 .../docs/advanced/functions.rst | 0 .../docs/advanced/misc.rst | 0 .../docs/advanced/pycpp/index.rst | 0 .../docs/advanced/pycpp/numpy.rst | 0 .../docs/advanced/pycpp/object.rst | 0 .../docs/advanced/pycpp/utilities.rst | 0 .../docs/advanced/smart_ptrs.rst | 0 .../docs/basics.rst | 0 .../docs/benchmark.py | 0 .../docs/benchmark.rst | 0 .../docs/changelog.rst | 82 +- .../docs/classes.rst | 11 + .../docs/compiling.rst | 0 .../docs/conf.py | 4 +- .../docs/faq.rst | 0 .../docs/index.rst | 0 .../docs/intro.rst | 0 .../docs/limitations.rst | 0 .../docs/pybind11-logo.png | Bin .../docs/pybind11_vs_boost_python1.png | Bin .../docs/pybind11_vs_boost_python1.svg | 0 .../docs/pybind11_vs_boost_python2.png | Bin .../docs/pybind11_vs_boost_python2.svg | 0 .../docs/reference.rst | 0 .../docs/release.rst | 4 - .../docs/requirements.txt | 0 .../docs/upgrade.rst | 0 .../include/pybind11/attr.h | 0 .../include/pybind11/buffer_info.h | 0 .../include/pybind11/cast.h | 10 +- .../include/pybind11/chrono.h | 32 +- .../include/pybind11/common.h | 0 .../include/pybind11/complex.h | 0 .../include/pybind11/detail/class.h | 9 + .../include/pybind11/detail/common.h | 23 +- .../include/pybind11/detail/descr.h | 0 .../include/pybind11/detail/init.h | 0 .../include/pybind11/detail/internals.h | 107 +- .../include/pybind11/detail/typeid.h | 0 .../include/pybind11/eigen.h | 0 .../include/pybind11/embed.h | 0 .../include/pybind11/eval.h | 0 .../include/pybind11/functional.h | 17 +- .../include/pybind11/iostream.h | 2 + .../include/pybind11/numpy.h | 48 +- .../include/pybind11/operators.h | 0 .../include/pybind11/options.h | 0 .../include/pybind11/pybind11.h | 32 +- .../include/pybind11/pytypes.h | 19 +- .../include/pybind11/stl.h | 0 .../include/pybind11/stl_bind.h | 65 +- .../pybind11/__init__.py | 8 + .../pybind11/__main__.py | 0 .../pybind11/_version.py | 2 +- .../setup.cfg | 0 .../setup.py | 0 .../tests/CMakeLists.txt | 20 + .../tests/conftest.py | 5 + .../tests/constructor_stats.h | 0 .../tests/cross_module_gil_utils.cpp | 73 ++ .../tests/local_bindings.h | 0 .../tests/object.h | 0 .../tests/pybind11_cross_module_tests.cpp | 0 .../tests/pybind11_tests.cpp | 0 .../tests/pybind11_tests.h | 0 .../tests/pytest.ini | 0 libs/pybind11-2.4.3/tests/test_async.cpp | 26 + libs/pybind11-2.4.3/tests/test_async.py | 23 + .../tests/test_buffers.cpp | 2 +- .../tests/test_buffers.py | 0 .../tests/test_builtin_casters.cpp | 0 .../tests/test_builtin_casters.py | 0 .../tests/test_call_policies.cpp | 0 .../tests/test_call_policies.py | 0 .../tests/test_callbacks.cpp | 0 .../tests/test_callbacks.py | 0 .../tests/test_chrono.cpp | 8 + .../tests/test_chrono.py | 75 ++ .../tests/test_class.cpp | 0 .../tests/test_class.py | 0 .../tests/test_cmake_build/CMakeLists.txt | 0 .../tests/test_cmake_build/embed.cpp | 0 .../installed_embed/CMakeLists.txt | 0 .../installed_function/CMakeLists.txt | 0 .../installed_target/CMakeLists.txt | 0 .../tests/test_cmake_build/main.cpp | 0 .../subdirectory_embed/CMakeLists.txt | 0 .../subdirectory_function/CMakeLists.txt | 0 .../subdirectory_target/CMakeLists.txt | 0 .../tests/test_cmake_build/test.py | 0 .../tests/test_constants_and_functions.cpp | 0 .../tests/test_constants_and_functions.py | 0 .../tests/test_copy_move.cpp | 0 .../tests/test_copy_move.py | 0 .../tests/test_docstring_options.cpp | 0 .../tests/test_docstring_options.py | 0 .../tests/test_eigen.cpp | 0 .../tests/test_eigen.py | 4 +- .../tests/test_embed/CMakeLists.txt | 0 .../tests/test_embed/catch.cpp | 0 .../tests/test_embed/external_module.cpp | 0 .../tests/test_embed/test_interpreter.cpp | 0 .../tests/test_embed/test_interpreter.py | 0 .../tests/test_enum.cpp | 4 +- .../tests/test_enum.py | 59 +- .../tests/test_eval.cpp | 0 .../tests/test_eval.py | 0 .../tests/test_eval_call.py | 0 .../tests/test_exceptions.cpp | 0 .../tests/test_exceptions.py | 0 .../tests/test_factory_constructors.cpp | 0 .../tests/test_factory_constructors.py | 0 .../tests/test_gil_scoped.cpp | 8 + .../tests/test_gil_scoped.py | 5 + .../tests/test_iostream.cpp | 0 .../tests/test_iostream.py | 0 .../tests/test_kwargs_and_defaults.cpp | 0 .../tests/test_kwargs_and_defaults.py | 0 .../tests/test_local_bindings.cpp | 0 .../tests/test_local_bindings.py | 4 +- .../tests/test_methods_and_attributes.cpp | 18 +- .../tests/test_methods_and_attributes.py | 16 +- .../tests/test_modules.cpp | 0 .../tests/test_modules.py | 0 .../tests/test_multiple_inheritance.cpp | 0 .../tests/test_multiple_inheritance.py | 0 .../tests/test_numpy_array.cpp | 81 ++ .../tests/test_numpy_array.py | 26 + .../tests/test_numpy_dtypes.cpp | 8 + .../tests/test_numpy_dtypes.py | 0 .../tests/test_numpy_vectorize.cpp | 0 .../tests/test_numpy_vectorize.py | 0 .../tests/test_opaque_types.cpp | 0 .../tests/test_opaque_types.py | 0 .../tests/test_operator_overloading.cpp | 2 + .../tests/test_operator_overloading.py | 16 +- .../tests/test_pickling.cpp | 0 .../tests/test_pickling.py | 0 .../tests/test_pytypes.cpp | 14 + .../tests/test_pytypes.py | 16 +- .../tests/test_sequences_and_iterators.cpp | 0 .../tests/test_sequences_and_iterators.py | 0 .../tests/test_smart_ptr.cpp | 0 .../tests/test_smart_ptr.py | 3 +- .../tests/test_stl.cpp | 0 .../tests/test_stl.py | 0 .../tests/test_stl_binders.cpp | 0 .../tests/test_stl_binders.py | 10 + .../tests/test_tagbased_polymorphic.cpp | 0 .../tests/test_tagbased_polymorphic.py | 0 .../tests/test_union.cpp | 0 .../tests/test_union.py | 0 .../tests/test_virtual_functions.cpp | 0 .../tests/test_virtual_functions.py | 0 .../tools/FindCatch.cmake | 0 .../tools/FindEigen3.cmake | 0 .../tools/FindPythonLibsNew.cmake | 2 +- .../tools/check-style.sh | 0 .../tools/libsize.py | 0 .../tools/mkdoc.py | 0 .../tools/pybind11Config.cmake.in | 0 .../tools/pybind11Tools.cmake | 2 +- scripts/ambig.fa | 1000 +++++++++++++++++ scripts/ambig_3.fa | 1000 +++++++++++++++++ scripts/ambig_4.fa | 1000 +++++++++++++++++ scripts/ambig_middle.fa | 1000 +++++++++++++++++ scripts/test_ambig.py | 67 ++ scripts/test_counter.py | 20 +- scripts/test_counter_p3.py | 52 + scripts/test_counter_parallel.py | 58 + scripts/test_counter_seq.py | 58 + scripts/test_counter_seq_ignore_n.py | 60 + 204 files changed, 5496 insertions(+), 283 deletions(-) create mode 100644 kcollections/src/TestCounterSerial.cpp rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/.appveyor.yml (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/.gitignore (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/.gitmodules (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/.readthedocs.yml (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/.travis.yml (88%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/CMakeLists.txt (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/CONTRIBUTING.md (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/ISSUE_TEMPLATE.md (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/LICENSE (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/MANIFEST.in (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/README.md (99%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/Doxyfile (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/_static/theme_overrides.css (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/advanced/cast/chrono.rst (97%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/advanced/cast/custom.rst (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/advanced/cast/eigen.rst (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/advanced/cast/functional.rst (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/advanced/cast/index.rst (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/advanced/cast/overview.rst (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/advanced/cast/stl.rst (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/advanced/cast/strings.rst (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/advanced/classes.rst (99%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/advanced/embedding.rst (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/advanced/exceptions.rst (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/advanced/functions.rst (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/advanced/misc.rst (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/advanced/pycpp/index.rst (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/advanced/pycpp/numpy.rst (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/advanced/pycpp/object.rst (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/advanced/pycpp/utilities.rst (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/advanced/smart_ptrs.rst (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/basics.rst (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/benchmark.py (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/benchmark.rst (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/changelog.rst (93%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/classes.rst (96%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/compiling.rst (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/conf.py (99%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/faq.rst (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/index.rst (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/intro.rst (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/limitations.rst (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/pybind11-logo.png (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/pybind11_vs_boost_python1.png (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/pybind11_vs_boost_python1.svg (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/pybind11_vs_boost_python2.png (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/pybind11_vs_boost_python2.svg (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/reference.rst (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/release.rst (75%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/requirements.txt (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/docs/upgrade.rst (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/include/pybind11/attr.h (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/include/pybind11/buffer_info.h (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/include/pybind11/cast.h (99%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/include/pybind11/chrono.h (82%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/include/pybind11/common.h (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/include/pybind11/complex.h (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/include/pybind11/detail/class.h (98%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/include/pybind11/detail/common.h (98%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/include/pybind11/detail/descr.h (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/include/pybind11/detail/init.h (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/include/pybind11/detail/internals.h (78%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/include/pybind11/detail/typeid.h (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/include/pybind11/eigen.h (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/include/pybind11/embed.h (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/include/pybind11/eval.h (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/include/pybind11/functional.h (83%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/include/pybind11/iostream.h (99%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/include/pybind11/numpy.h (97%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/include/pybind11/operators.h (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/include/pybind11/options.h (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/include/pybind11/pybind11.h (98%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/include/pybind11/pytypes.h (98%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/include/pybind11/stl.h (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/include/pybind11/stl_bind.h (93%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/pybind11/__init__.py (75%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/pybind11/__main__.py (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/pybind11/_version.py (65%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/setup.cfg (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/setup.py (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/CMakeLists.txt (92%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/conftest.py (97%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/constructor_stats.h (100%) create mode 100644 libs/pybind11-2.4.3/tests/cross_module_gil_utils.cpp rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/local_bindings.h (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/object.h (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/pybind11_cross_module_tests.cpp (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/pybind11_tests.cpp (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/pybind11_tests.h (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/pytest.ini (100%) create mode 100644 libs/pybind11-2.4.3/tests/test_async.cpp create mode 100644 libs/pybind11-2.4.3/tests/test_async.py rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_buffers.cpp (99%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_buffers.py (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_builtin_casters.cpp (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_builtin_casters.py (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_call_policies.cpp (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_call_policies.py (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_callbacks.cpp (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_callbacks.py (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_chrono.cpp (87%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_chrono.py (56%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_class.cpp (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_class.py (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_cmake_build/CMakeLists.txt (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_cmake_build/embed.cpp (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_cmake_build/installed_embed/CMakeLists.txt (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_cmake_build/installed_function/CMakeLists.txt (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_cmake_build/installed_target/CMakeLists.txt (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_cmake_build/main.cpp (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_cmake_build/subdirectory_embed/CMakeLists.txt (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_cmake_build/subdirectory_function/CMakeLists.txt (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_cmake_build/subdirectory_target/CMakeLists.txt (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_cmake_build/test.py (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_constants_and_functions.cpp (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_constants_and_functions.py (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_copy_move.cpp (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_copy_move.py (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_docstring_options.cpp (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_docstring_options.py (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_eigen.cpp (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_eigen.py (99%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_embed/CMakeLists.txt (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_embed/catch.cpp (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_embed/external_module.cpp (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_embed/test_interpreter.cpp (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_embed/test_interpreter.py (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_enum.cpp (96%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_enum.py (77%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_eval.cpp (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_eval.py (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_eval_call.py (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_exceptions.cpp (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_exceptions.py (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_factory_constructors.cpp (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_factory_constructors.py (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_gil_scoped.cpp (78%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_gil_scoped.py (93%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_iostream.cpp (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_iostream.py (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_kwargs_and_defaults.cpp (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_kwargs_and_defaults.py (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_local_bindings.cpp (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_local_bindings.py (98%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_methods_and_attributes.cpp (96%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_methods_and_attributes.py (97%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_modules.cpp (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_modules.py (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_multiple_inheritance.cpp (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_multiple_inheritance.py (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_numpy_array.cpp (82%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_numpy_array.py (94%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_numpy_dtypes.cpp (98%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_numpy_dtypes.py (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_numpy_vectorize.cpp (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_numpy_vectorize.py (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_opaque_types.cpp (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_opaque_types.py (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_operator_overloading.cpp (98%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_operator_overloading.py (82%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_pickling.cpp (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_pickling.py (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_pytypes.cpp (94%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_pytypes.py (93%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_sequences_and_iterators.cpp (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_sequences_and_iterators.py (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_smart_ptr.cpp (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_smart_ptr.py (98%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_stl.cpp (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_stl.py (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_stl_binders.cpp (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_stl_binders.py (94%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_tagbased_polymorphic.cpp (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_tagbased_polymorphic.py (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_union.cpp (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_union.py (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_virtual_functions.cpp (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tests/test_virtual_functions.py (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tools/FindCatch.cmake (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tools/FindEigen3.cmake (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tools/FindPythonLibsNew.cmake (99%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tools/check-style.sh (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tools/libsize.py (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tools/mkdoc.py (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tools/pybind11Config.cmake.in (100%) rename libs/{pybind11-2.3.0 => pybind11-2.4.3}/tools/pybind11Tools.cmake (99%) create mode 100644 scripts/ambig.fa create mode 100644 scripts/ambig_3.fa create mode 100644 scripts/ambig_4.fa create mode 100644 scripts/ambig_middle.fa create mode 100644 scripts/test_ambig.py create mode 100644 scripts/test_counter_p3.py create mode 100644 scripts/test_counter_parallel.py create mode 100644 scripts/test_counter_seq.py create mode 100644 scripts/test_counter_seq_ignore_n.py diff --git a/CMakeLists.txt b/CMakeLists.txt index ea0c287..482d0d8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -35,6 +35,8 @@ set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) set(CMAKE_CXX_STANDARD 14) +#set(CMAKE_CXX_STANDARD_REQUIRED ON) +#set(CMAKE_CXX_EXTENSIONS OFF) # Add inc directories include_directories(inc) @@ -59,10 +61,10 @@ option(PYTHON "compile the python bindings") if (${PYTHON}) message("compiling python bindings") # pybind11 library - add_subdirectory(libs/pybind11-2.3.0) + add_subdirectory(libs/pybind11-2.4.3) set(PYBIND11_PYTHON_VERSION ${PYTHON_VERSION}) include_directories(${PYTHON_INCLUDE_DIR}) - include_directories(libs/pybind11-2.3.0/include) + include_directories(libs/pybind11-2.4.3/include) pybind11_add_module(_Kset ${kcollections_src} "${SOURCE_DIR}/Kset.cc" "${SOURCE_DIR}/Kcollections.cc" ${uint256_src}) target_link_libraries(_Kset PRIVATE pybind11::module) @@ -97,6 +99,11 @@ else() target_link_libraries(counterbulktest Threads::Threads Kcounter) set_target_properties(counterbulktest PROPERTIES COMPILE_DEFINITIONS "KCOUNTER") + # Testing kcounter serial + add_executable(counterserialtest "${SOURCE_DIR}/TestCounterSerial.cpp" $) + target_link_libraries(counterserialtest Threads::Threads Kcounter) + set_target_properties(counterserialtest PROPERTIES COMPILE_DEFINITIONS "KCOUNTER") + # Testing Kdict add_executable(dictbulktest "${SOURCE_DIR}/TestDictBulk.cpp" $) target_link_libraries(dictbulktest Threads::Threads Kdict) diff --git a/inc/Kcontainer.h b/inc/Kcontainer.h index 3134cf5..36ec3bf 100644 --- a/inc/Kcontainer.h +++ b/inc/Kcontainer.h @@ -25,17 +25,6 @@ namespace py = pybind11; template #endif -struct ThreadInfo{ - int thread_id; -#if defined(KDICT) || defined(KCOUNTER) - std::function* merge_func; -#endif -}; - -#if defined(KDICT) || defined(KCOUNTER) -template -#endif - struct ThreadGlobals { #if defined(KSET) std::vector>>* kmers; @@ -44,6 +33,7 @@ struct ThreadGlobals { #endif #if defined(KDICT) || defined(KCOUNTER) + std::function* merge_func; Vertex** v; #else Vertex** v; @@ -54,12 +44,6 @@ struct ThreadGlobals { sem_t** rsignal; int bk, k, nthreads; pthread_t* p_threads; - //int* bin_ids; -#if defined(KDICT) || defined(KCOUNTER) - ThreadInfo* bin_ids; -#else - ThreadInfo* bin_ids; -#endif int* wbin; int* rbin; int work_queues; @@ -67,32 +51,37 @@ struct ThreadGlobals { size_t MAX_BIN_SIZE; }; - #if defined(KDICT) || defined(KCOUNTER) template #endif -class Kcontainer { +struct ThreadInfo{ + int thread_id; +#if defined(KDICT) || defined(KCOUNTER) + ThreadGlobals* tg; +#else + ThreadGlobals* tg; +#endif +}; + -protected: #if defined(KDICT) || defined(KCOUNTER) - static ThreadGlobals* tg; -#elif defined(KSET) - static ThreadGlobals* tg; +template #endif +class Kcontainer { public: Kcontainer(const int k) : k(k) { -#if defined(KDICT) || defined(KCOUNTER) - //v = new Vertex(); -#else - //v = new Vertex(); -#endif - //std::cout << "vertex size: " << sizeof(v) << std::endl; + tg = NULL; + ti = NULL; } ~Kcontainer() { - //delete v; - free(tg); + if(ti != NULL) { + free(ti); + } + if(tg != NULL) { + free(tg); + } } class KcontainerIterator { @@ -171,7 +160,6 @@ class Kcontainer { } private: - int depth, k; #if defined(KDICT) || defined(KCOUNTER) std::pair kmer; @@ -294,8 +282,13 @@ class Kcontainer { bool kcontainer_contains(const char* kmer) { uint8_t* bseq = (uint8_t*) calloc(k, sizeof(uint8_t)); - serialize_kmer(kmer, k, bseq); - bool res = v.vertex_contains(bseq, k); + int ret = serialize_kmer(kmer, k, bseq); + bool res = false; + if(ret != -1) { + free(bseq); + throw std::invalid_argument("Contains op: Could not serialize kmer, ambiguity bases present."); + } + res = v.vertex_contains(bseq, k); free(bseq); return res; } @@ -303,7 +296,11 @@ class Kcontainer { void kcontainer_remove(const char* kmer) { uint8_t* bseq = (uint8_t*) calloc(k, sizeof(uint8_t)); - serialize_kmer(kmer, k, bseq); + int ret = serialize_kmer(kmer, k, bseq); + if(ret != -1) { + free(bseq); + throw std::invalid_argument("Remove op: Could not serialize kmer, ambiguity bases present."); + } v.vertex_remove(bseq, k); free(bseq); } @@ -315,7 +312,12 @@ class Kcontainer { #endif { uint8_t* bseq = (uint8_t*) calloc(k, sizeof(uint8_t)); - serialize_kmer(kmer, k, bseq); + int ret = serialize_kmer(kmer, k, bseq); + if(ret != -1) { + free(bseq); + throw std::invalid_argument("Add op: Could not serialize kmer, ambiguity bases present."); + } + #if defined(KDICT) || defined(KCOUNTER) v.vertex_insert(bseq, k, obj, merge_func); #elif KSET @@ -326,13 +328,17 @@ class Kcontainer { #if defined KDICT || defined KCOUNTER #if defined KDICT - T& kcontainer_get(char* kmer) + T& kcontainer_get(const char* kmer) #elif defined KCOUNTER - T kcontainer_get(char* kmer) + T kcontainer_get(const char* kmer) #endif { uint8_t* bseq = (uint8_t*) calloc(k, sizeof(uint8_t)); - serialize_kmer(kmer, k, bseq); + int ret = serialize_kmer(kmer, k, bseq); + if(ret != -1) { + free(bseq); + throw std::invalid_argument("Get op: Could not serialize kmer, ambiguity bases present."); + } else { #if defined KDICT T& res = v.vertex_get(bseq, k); #elif defined KCOUNTER @@ -340,6 +346,7 @@ class Kcontainer { #endif free(bseq); return res; + } } #endif @@ -373,7 +380,12 @@ class Kcontainer { uint8_t last_index = (k - 1) % 4; // serialize the first kmer - serialize_kmer(seq, k, bseq8); + int ret = serialize_kmer(seq, k, bseq8); + int start = 0; + while(ret != -1 && start + ret + k < length) { + start += ret + 1; + ret = serialize_kmer(&seq[start], k, bseq8); + } #if KSET v.vertex_insert(bseq8, k); @@ -389,21 +401,33 @@ class Kcontainer { #endif #endif - //std::cout << strlen(seq) << std::endl; - for(uint32_t j = k; j < length; j++) { - //std::cout << j << "\t" << seq[j] << std::endl; - // shift all the bits over - //bseq8[0] <<= 2; + for(uint32_t j = start + k; j < length; j++) { bseq64[0] >>= 2; - //std::cout << "shifting\t" << deserialize_kmer(k, bseq8) << std::endl; - //for(int i = 1; i < bk; i++) { for(int i = 1; i < size64; i++) { bseq64[i - 1] |= (bseq64[i] << 62); bseq64[i] >>= 2; - //std::cout << "shifting\t" << deserialize_kmer(k, bseq8) << std::endl; } - serialize_position(j, bk - 1, last_index, bseq8, seq); + ret = serialize_position(j, bk - 1, last_index, bseq8, seq); + + if(ret != -1) { + start = j - k + 1; + ret = k - 1; + + while(ret != -1 && start + ret + k < length) { + // NOTE: can't big shift part of it since a lot of could be wrong + start += ret + 1; + memset(bseq64, 0, sizeof(uint64_t) * size64); + ret = serialize_kmer(&seq[start], k, bseq8); + } + + if(ret != -1) { + break; + } + + j = start + k - 1; + } + #if KSET v.vertex_insert(bseq8, k); #elif defined(KCOUNTER) @@ -421,12 +445,8 @@ class Kcontainer { free(bseq64); } -#if defined(KSET) - void parallel_kcontainer_add_init(int threads) -#elif defined(KDICT) || defined(KCOUNTER) - void parallel_kcontainer_add_init(int threads, const std::function &f) -#endif - { + + void tg_init(int threads) { tg->MAX_BIN_SIZE = 500; tg->work_queues = 10; @@ -446,12 +466,6 @@ class Kcontainer { tg->rsignal = (sem_t**) calloc(threads, sizeof(sem_t*)); tg->p_threads = (pthread_t*) calloc(threads, sizeof(pthread_t)); -#if defined(KDICT) || defined(KCOUNTER) - tg->bin_ids = (ThreadInfo*) calloc(threads, sizeof(ThreadInfo)); -#else - tg->bin_ids = (ThreadInfo*) calloc(threads, sizeof(ThreadInfo)); -#endif - tg->wbin = (int*) calloc(threads, sizeof(int)); tg->rbin = (int*) calloc(threads, sizeof(int)); @@ -459,9 +473,9 @@ class Kcontainer { std::string appName = "kcollections"; #if defined(KDICT) || defined(KCOUNTER) - tg->kmers = (std::vector>>>*) calloc(threads, sizeof(std::vector>>*)); + tg->kmers = new std::vector>>>(); #elif defined(KSET) - tg->kmers = (std::vector>>*) calloc(threads, sizeof(std::vector>>*)); + tg->kmers = new std::vector>>(); #endif // NOTE: initialize per thread variables // NOTE: initialize mutexes @@ -490,13 +504,44 @@ class Kcontainer { #endif tg->rsignal[i] = sem_open((appName + std::to_string(getpid()) + std::to_string(i)).c_str(), O_CREAT, 0600, 0); - tg->bin_ids[i].thread_id = i; -#if defined(KDICT) || defined(KCOUNTER) - tg->bin_ids[i].merge_func = new std::function(f); + } + } + + void ti_init(int threads) { + for(int i = 0; i < threads; i++) { + ti[i].thread_id = i; + ti[i].tg = tg; + } + } + + +#if defined(KSET) + void parallel_kcontainer_add_init(int threads) +#elif defined(KDICT) || defined(KCOUNTER) + void parallel_kcontainer_add_init(int threads, const std::function &f) #endif + { +#if defined(KDICT) + ti = (ThreadInfo*) calloc(threads, sizeof(ThreadInfo)); + tg = (ThreadGlobals*) calloc(1, sizeof(ThreadGlobals)); + tg->merge_func = new std::function(f); +#elif defined(KCOUNTER) + ti = (ThreadInfo*) calloc(threads, sizeof(ThreadInfo)); + tg = (ThreadGlobals*) calloc(1, sizeof(ThreadGlobals)); + tg->merge_func = new std::function(f); +#else + ti = (ThreadInfo*) calloc(threads, sizeof(ThreadInfo)); + tg = (ThreadGlobals*) calloc(1, sizeof(ThreadGlobals)); +#endif + + tg_init(threads); + ti_init(threads); + + + for(int i = 0; i < threads; i++) { // NOTE: spin up worker threads - pthread_create(&tg->p_threads[i], NULL, parallel_kcontainer_add_consumer, &tg->bin_ids[i]); + pthread_create(&tg->p_threads[i], NULL, parallel_kcontainer_add_consumer, &ti[i]); } } @@ -563,78 +608,80 @@ class Kcontainer { delete tg->v[i]; free(tg->blocks[i]); (*tg->kmers)[i].clear(); -#if defined(KDICT) || defined(KCOUNTER) - delete tg->bin_ids[i].merge_func; -#endif } - //std::cout << "cleaning" << std::endl; - free(tg->v); free(tg->signal_b); free(tg->rsignal); free(tg->p_threads); - free(tg->bin_ids); free(tg->wbin); free(tg->rbin); free(tg->blocks); - tg->kmers->clear(); + delete tg->kmers; +#if defined(KDICT) || defined(KCOUNTER) + delete tg->merge_func; +#endif - // NOTE: merge all vertices together + free(tg); + free(ti); + + tg = NULL; + ti = NULL; } static void* parallel_kcontainer_add_consumer(void* bin_ptr) { //int bin = *((int*) bin_ptr); #if defined(KDICT) || defined(KCOUNTER) - ThreadInfo* ti = (ThreadInfo*) bin_ptr; + ThreadInfo* cti = (ThreadInfo*) bin_ptr; + ThreadGlobals* ctg = cti->tg; #else - ThreadInfo* ti = (ThreadInfo*) bin_ptr; + ThreadInfo* cti = (ThreadInfo*) bin_ptr; + ThreadGlobals* ctg = cti->tg; #endif - int bin = ti->thread_id; + int bin = cti->thread_id; int cur_rbin; while(true) { - sem_wait(tg->rsignal[bin]); - cur_rbin = tg->rbin[bin]; - pthread_mutex_lock(&tg->blocks[bin][cur_rbin]); + sem_wait(ctg->rsignal[bin]); + cur_rbin = ctg->rbin[bin]; + pthread_mutex_lock(&ctg->blocks[bin][cur_rbin]); // NOTE: release mutex // NOTE: if the list is empty we're done - if((*tg->kmers)[bin][cur_rbin].size() == 0) { - pthread_mutex_unlock(&tg->blocks[bin][cur_rbin]); + if((*ctg->kmers)[bin][cur_rbin].size() == 0) { + pthread_mutex_unlock(&ctg->blocks[bin][cur_rbin]); break; } // NOTE: insert all kmers int kmer_idx = 0; - for(auto i : (*tg->kmers)[bin][cur_rbin]) { + for(auto i : (*ctg->kmers)[bin][cur_rbin]) { kmer_idx++; #if KSET - tg->v[bin]->vertex_insert(i, tg->k); + ctg->v[bin]->vertex_insert(i, ctg->k); free(i); #elif defined(KDICT) || defined(KCOUNTER) - tg->v[bin]->vertex_insert(i.first, tg->k, i.second, *ti->merge_func); + ctg->v[bin]->vertex_insert(i.first, ctg->k, i.second, *ctg->merge_func); free(i.first); #endif } // NOTE: clear the vector - (*tg->kmers)[bin][cur_rbin].clear(); - pthread_mutex_unlock(&tg->blocks[bin][cur_rbin]); - tg->rbin[bin]++; - if(tg->rbin[bin] == tg->work_queues) { - tg->rbin[bin] = 0; + (*ctg->kmers)[bin][cur_rbin].clear(); + pthread_mutex_unlock(&ctg->blocks[bin][cur_rbin]); + ctg->rbin[bin]++; + if(ctg->rbin[bin] == ctg->work_queues) { + ctg->rbin[bin] = 0; } } #if defined(KDICT) || defined(KCOUNTER) - tg->v[bin]->burst_uc(tg->k, *ti->merge_func); + ctg->v[bin]->burst_uc(ctg->k, *ctg->merge_func); #else - tg->v[bin]->burst_uc(tg->k); + ctg->v[bin]->burst_uc(ctg->k); #endif - //delete v[bin]->get_uc(); return NULL; } @@ -646,7 +693,11 @@ class Kcontainer { #endif { uint8_t* pbseq = (uint8_t*) calloc(tg->bk, sizeof(uint8_t)); - serialize_kmer(kmer, k, pbseq); + int ret = serialize_kmer(kmer, k, pbseq); + if(ret != -1) { + free(pbseq); + throw std::invalid_argument("Parallel add op: Could not serialize kmer, ambiguity bases present."); + } #if defined(KSET) parallel_kcontainer_add_bseq(pbseq); #elif defined(KDICT) @@ -682,7 +733,13 @@ class Kcontainer { uint8_t last_index = (tg->k - 1) % 4; // serialize the first kmer - serialize_kmer(seq, tg->k, bseq8); + int ret = serialize_kmer(seq, k, bseq8); + int start = 0; + while(ret != -1 && start + ret + k < length) { + start += ret + 1; + ret = serialize_kmer(&seq[start], k, bseq8); + } + for(i = 0; i < size64; i++) { bseq64_sub[i] = bseq64[i]; } @@ -695,8 +752,6 @@ class Kcontainer { #if defined(PYTHON) auto iter = py::iter(values); - //auto handle_value = *iter; - //T value = handle_value.cast(); auto value = iter->cast(); #else auto iter = values.begin(); @@ -706,14 +761,33 @@ class Kcontainer { #endif - for(uint32_t j = tg->k; j < length; j++) { + for(uint32_t j = start + tg->k; j < length; j++) { bseq64[0] >>= 2; for(int i = 1; i < size64; i++) { bseq64[i - 1] |= (bseq64[i] << 62); bseq64[i] >>= 2; } - serialize_position(j, tg->bk - 1, last_index, bseq8, seq); + ret = serialize_position(j, tg->bk - 1, last_index, bseq8, seq); + + if(ret != -1) { + start = j - k + 1; + ret = k - 1; + + while(ret != -1 && start + ret + k < length) { + // NOTE: can't big shift part of it since a lot of could be wrong + start += ret + 1; + memset(bseq64, 0, sizeof(uint64_t) * size64); + ret = serialize_kmer(&seq[start], k, bseq8); + } + + if(ret != -1) { + break; + } + + j = start + k - 1; + } + //std::cout << "inserting: " << deserialize_kmer(k, bseq8) << std::endl; bseq64_sub = (uint64_t*) calloc(size64, sizeof(uint64_t)); bseq8_sub = (uint8_t*) bseq64_sub; @@ -798,7 +872,11 @@ class Kcontainer { #if defined(KDICT) || defined(KCOUNTER) Vertex v; + ThreadInfo* ti; + ThreadGlobals* tg; #else + ThreadInfo* ti; + ThreadGlobals* tg; Vertex v; #endif }; diff --git a/inc/Kcounter.h b/inc/Kcounter.h index 04bfa3a..af17f61 100644 --- a/inc/Kcounter.h +++ b/inc/Kcounter.h @@ -16,13 +16,13 @@ class Kcounter public: Kcounter( const int k ); ~Kcounter(); - void insert( char* kmer, count_dtype count ); - bool contains( char* kmer ); + void insert( const char* kmer, count_dtype count ); + bool contains( const char* kmer ); void clear(); uint64_t size(); - void remove( char* kmer ); + void remove( const char* kmer ); void add_seq(const char* seq); - count_dtype get( char* kmer ); + count_dtype get( const char* kmer ); int get_k() { return m_k; } Kcontainer* get_kc() { return kc; } void parallel_add_init(int threads) { @@ -70,5 +70,4 @@ class Kcounter return kc->end(); } }; -template -ThreadGlobals* Kcontainer::tg = (ThreadGlobals*) calloc(1, sizeof(ThreadGlobals)); + diff --git a/inc/Kdict.h b/inc/Kdict.h index 18d5c1d..b2c1a87 100644 --- a/inc/Kdict.h +++ b/inc/Kdict.h @@ -129,5 +129,3 @@ class Kdict } }; -template -ThreadGlobals* Kcontainer::tg = (ThreadGlobals*) calloc(1, sizeof(ThreadGlobals)); diff --git a/inc/helper.h b/inc/helper.h index 03c2e65..15fffa7 100644 --- a/inc/helper.h +++ b/inc/helper.h @@ -71,7 +71,7 @@ static const uint8_t MASK_INSERT[ 4 ][ 4 ] = { static const char COMP_TO_ASCII[4] = {'A', 'C', 'G', 'T'}; -static void serialize_position(uint32_t kmerPos, int arrPos, int bitPos, uint8_t* bseq, const char* kmer) { +static int serialize_position(int kmerPos, int arrPos, int bitPos, uint8_t* bseq, const char* kmer) { switch( kmer[kmerPos] ) { case 'a': break; @@ -83,17 +83,24 @@ static void serialize_position(uint32_t kmerPos, int arrPos, int bitPos, uint8_t case 't': bseq[ arrPos ] |= MASK_INSERT[ 3 ][ bitPos ]; break; case 'T': bseq[ arrPos ] |= MASK_INSERT[ 3 ][ bitPos ]; break; default: - bseq[ arrPos ] |= MASK_INSERT[ rand() % 4 ][ bitPos ]; break; - //throw std::runtime_error( "Could not serialize kmer." ); + //bseq[ arrPos ] |= MASK_INSERT[ rand() % 4 ][ bitPos ]; break; + //throw std::runtime_error("Could not serialize kmer."); + return kmerPos; } + return -1; } -static void serialize_kmer( const char* kmer, int k, uint8_t* bseq ) +static int serialize_kmer( const char* kmer, int k, uint8_t* bseq ) { - for( int pos = 0; pos < k; pos++ ) - { - serialize_position(pos, pos / 4, pos % 4, bseq, kmer); + for(int pos = 0; pos < k; pos++) + { + int ret = serialize_position(pos, pos / 4, pos % 4, bseq, kmer); + if(ret != -1) { + return pos; } + } + + return -1; } static char* deserialize_kmer( int k, uint8_t* bseq ) diff --git a/kcollections/src/Kcounter.cc b/kcollections/src/Kcounter.cc index 5148f89..56cde6e 100644 --- a/kcollections/src/Kcounter.cc +++ b/kcollections/src/Kcounter.cc @@ -18,19 +18,21 @@ void Kcounter::clear() kc = new Kcontainer(m_k); } -void Kcounter::insert(char* kmer, count_dtype count) +void Kcounter::insert(const char* kmer, count_dtype count) { + //std::cout << "insert " << kmer << std::endl; CHECK_KMER_LENGTH(kmer, m_k, "Kcounter"); kc->kcontainer_add(kmer, count, overwrite_merge_func ); } -count_dtype Kcounter::get(char* kmer) +count_dtype Kcounter::get(const char* kmer) { + //std::cout << "get " << kmer << std::endl; CHECK_KMER_LENGTH(kmer, m_k, "Kcounter"); return kc->kcontainer_get(kmer); } -bool Kcounter::contains(char* kmer) +bool Kcounter::contains(const char* kmer) { CHECK_KMER_LENGTH(kmer, m_k, "Kcounter"); return kc->kcontainer_contains(kmer); @@ -41,7 +43,7 @@ uint64_t Kcounter::size() return kc->kcontainer_size(); } -void Kcounter::remove(char* kmer) +void Kcounter::remove(const char* kmer) { CHECK_KMER_LENGTH(kmer, m_k, "Kcounter"); kc->kcontainer_remove(kmer); diff --git a/kcollections/src/Kset.cc b/kcollections/src/Kset.cc index 22e0d20..ba0931f 100644 --- a/kcollections/src/Kset.cc +++ b/kcollections/src/Kset.cc @@ -49,4 +49,3 @@ void Kset::parallel_add_seq(const char* seq) { kc->parallel_kcontainer_add_seq(seq, strlen(seq)); } -ThreadGlobals* Kcontainer::tg = (ThreadGlobals*) calloc(1, sizeof(ThreadGlobals)); diff --git a/kcollections/src/TestCounterSerial.cpp b/kcollections/src/TestCounterSerial.cpp new file mode 100644 index 0000000..063db61 --- /dev/null +++ b/kcollections/src/TestCounterSerial.cpp @@ -0,0 +1,89 @@ +#include +#include "Kcounter.h" +#include +#include +#include + +using namespace std; + +int main(int argc, char* argv[]) { + int k = atoi(argv[1]); + char* file_path = argv[2]; + + string line; + string seq; + ifstream fh(file_path); + Kcounter* kc = new Kcounter(k); + //kc->parallel_add_init(4); + std::map cmp; + + int c = 0; + if(fh.is_open()) { + while(getline(fh, line)) { + //std::cout << "inserting: " << line << std::endl; + //kc->add(line.c_str()); + if(line.c_str()[0] == '>') { + continue; + } + seq.append(line); + } + + fh.close(); + std::cout << "seq size: " << seq.size() << std::endl; + //std::cout << seq << std::endl; + for(int i = 0; i < seq.size() - k + 1; i++) { + string kmer = seq.substr(i, k); + //std::cout << i << " " << kmer << std::endl; + if(cmp.find(kmer) != cmp.end()){ + cmp[kmer] += 1; + } else { + cmp[kmer] = 1; + } + try { + int old = kc->get(kmer.c_str()); + //std::cout << kmer << "\t" << old << std::endl; + kc->insert(kmer.c_str(), old + 1); + } + catch (const runtime_error& error) { + std::cout << "runtime error" << std::endl; + } + } + //kc->parallel_add_seq(seq.c_str()); + + } else { + std::cout << "Could not open file: " << file_path << std::endl; + } + + //kc->parallel_add_join(); + + std::cout << "Kmer set contains " << kc->size() << " kmers" << std::endl; + std::cout << "cmp size " << cmp.size() << std::endl; + + int count = 0; + int total = kc->size(); + + std::cout << "Printing all kmers!" << std::endl; + for(auto& it : *kc) { + if(*it.second != cmp[string(it.first)]) { + std::cout << "mismatch " << it.first << "\t" << *it.second << "\t" << cmp[string(it.first)] << std::endl; + } + if(*it.second > 1) { + std::cout << count << " / " << total << "\tkmer: " << it.first << ":\t" << *it.second << std::endl; + } + count += 1; + } + + /*fh.open(file_path); + if(fh.is_open()) { + while(getline(fh, line)) { + kc->remove(line.c_str()); + //std::cout << "kcet size: " << kc->size() << std::endl; + } + }*/ + + std::cout << "\tDone printing all kmers!" << std::endl; + std::cout << "Kmer set contains " << kc->size() << " kmers" << std::endl; + delete kc; + + return 0; +} diff --git a/libs/pybind11-2.3.0/.appveyor.yml b/libs/pybind11-2.4.3/.appveyor.yml similarity index 100% rename from libs/pybind11-2.3.0/.appveyor.yml rename to libs/pybind11-2.4.3/.appveyor.yml diff --git a/libs/pybind11-2.3.0/.gitignore b/libs/pybind11-2.4.3/.gitignore similarity index 100% rename from libs/pybind11-2.3.0/.gitignore rename to libs/pybind11-2.4.3/.gitignore diff --git a/libs/pybind11-2.3.0/.gitmodules b/libs/pybind11-2.4.3/.gitmodules similarity index 100% rename from libs/pybind11-2.3.0/.gitmodules rename to libs/pybind11-2.4.3/.gitmodules diff --git a/libs/pybind11-2.3.0/.readthedocs.yml b/libs/pybind11-2.4.3/.readthedocs.yml similarity index 100% rename from libs/pybind11-2.3.0/.readthedocs.yml rename to libs/pybind11-2.4.3/.readthedocs.yml diff --git a/libs/pybind11-2.3.0/.travis.yml b/libs/pybind11-2.4.3/.travis.yml similarity index 88% rename from libs/pybind11-2.3.0/.travis.yml rename to libs/pybind11-2.4.3/.travis.yml index 4cc5cf0..28f35f9 100644 --- a/libs/pybind11-2.3.0/.travis.yml +++ b/libs/pybind11-2.4.3/.travis.yml @@ -61,7 +61,7 @@ matrix: - os: linux dist: trusty env: PYTHON=2.7 CPP=14 GCC=6 CMAKE=1 - name: Python 2.7, c++14, gcc 4.8, CMake test + name: Python 2.7, c++14, gcc 6, CMake test addons: apt: sources: @@ -106,6 +106,33 @@ matrix: - lld-7 - libc++-7-dev - libc++abi-7-dev # Why is this necessary??? + - os: linux + dist: xenial + env: PYTHON=3.8 CPP=17 GCC=7 + name: Python 3.8, c++17, gcc 7 (w/o numpy/scipy) # TODO: update build name when the numpy/scipy wheels become available + addons: + apt: + sources: + - deadsnakes + - ubuntu-toolchain-r-test + packages: + - g++-7 + - python3.8-dev + - python3.8-venv + # Currently there is no numpy/scipy wheels available for python3.8 + # TODO: remove next before_install, install and script clause when the wheels become available + before_install: + - pyenv global $(pyenv whence 2to3) # activate all python versions + - PY_CMD=python3 + - $PY_CMD -m pip install --user --upgrade pip wheel setuptools + install: + - $PY_CMD -m pip install --user --upgrade pytest + script: + - | + # Barebones build + cmake -DCMAKE_BUILD_TYPE=Debug -DPYBIND11_WERROR=ON -DDOWNLOAD_CATCH=ON -DPYTHON_EXECUTABLE=$(which $PY_CMD) . + make pytest -j 2 + make cpptest -j 2 - os: osx name: Python 2.7, c++14, AppleClang 7.3, CMake test osx_image: xcode7.3 @@ -130,7 +157,7 @@ matrix: dist: trusty services: docker env: DOCKER=i386/debian:stretch PYTHON=3.5 CPP=14 GCC=6 INSTALL=1 - name: Python 3.4, c++14, gcc 6, 32-bit + name: Python 3.5, c++14, gcc 6, 32-bit script: - | # Consolidated 32-bit Docker Build + Install diff --git a/libs/pybind11-2.3.0/CMakeLists.txt b/libs/pybind11-2.4.3/CMakeLists.txt similarity index 100% rename from libs/pybind11-2.3.0/CMakeLists.txt rename to libs/pybind11-2.4.3/CMakeLists.txt diff --git a/libs/pybind11-2.3.0/CONTRIBUTING.md b/libs/pybind11-2.4.3/CONTRIBUTING.md similarity index 100% rename from libs/pybind11-2.3.0/CONTRIBUTING.md rename to libs/pybind11-2.4.3/CONTRIBUTING.md diff --git a/libs/pybind11-2.3.0/ISSUE_TEMPLATE.md b/libs/pybind11-2.4.3/ISSUE_TEMPLATE.md similarity index 100% rename from libs/pybind11-2.3.0/ISSUE_TEMPLATE.md rename to libs/pybind11-2.4.3/ISSUE_TEMPLATE.md diff --git a/libs/pybind11-2.3.0/LICENSE b/libs/pybind11-2.4.3/LICENSE similarity index 100% rename from libs/pybind11-2.3.0/LICENSE rename to libs/pybind11-2.4.3/LICENSE diff --git a/libs/pybind11-2.3.0/MANIFEST.in b/libs/pybind11-2.4.3/MANIFEST.in similarity index 100% rename from libs/pybind11-2.3.0/MANIFEST.in rename to libs/pybind11-2.4.3/MANIFEST.in diff --git a/libs/pybind11-2.3.0/README.md b/libs/pybind11-2.4.3/README.md similarity index 99% rename from libs/pybind11-2.3.0/README.md rename to libs/pybind11-2.4.3/README.md index 135f9e1..35d2d76 100644 --- a/libs/pybind11-2.3.0/README.md +++ b/libs/pybind11-2.4.3/README.md @@ -105,6 +105,7 @@ In addition to the core functionality, pybind11 provides some extra goodies: This project was created by [Wenzel Jakob](http://rgl.epfl.ch/people/wjakob). Significant features and/or improvements to the code were contributed by Jonas Adler, +Lori A. Burns, Sylvain Corlay, Trent Houliston, Axel Huebl, @@ -117,6 +118,7 @@ Ben Pritchard, Jason Rhinelander, Boris Schäling, Pim Schellart, +Henry Schreiner, Ivan Smirnov, and Patrick Stewart. diff --git a/libs/pybind11-2.3.0/docs/Doxyfile b/libs/pybind11-2.4.3/docs/Doxyfile similarity index 100% rename from libs/pybind11-2.3.0/docs/Doxyfile rename to libs/pybind11-2.4.3/docs/Doxyfile diff --git a/libs/pybind11-2.3.0/docs/_static/theme_overrides.css b/libs/pybind11-2.4.3/docs/_static/theme_overrides.css similarity index 100% rename from libs/pybind11-2.3.0/docs/_static/theme_overrides.css rename to libs/pybind11-2.4.3/docs/_static/theme_overrides.css diff --git a/libs/pybind11-2.3.0/docs/advanced/cast/chrono.rst b/libs/pybind11-2.4.3/docs/advanced/cast/chrono.rst similarity index 97% rename from libs/pybind11-2.3.0/docs/advanced/cast/chrono.rst rename to libs/pybind11-2.4.3/docs/advanced/cast/chrono.rst index 8c6b3d7..fbd4605 100644 --- a/libs/pybind11-2.3.0/docs/advanced/cast/chrono.rst +++ b/libs/pybind11-2.4.3/docs/advanced/cast/chrono.rst @@ -59,7 +59,7 @@ Provided conversions .. rubric:: Python to C++ -- ``datetime.datetime`` → ``std::chrono::system_clock::time_point`` +- ``datetime.datetime`` or ``datetime.date`` or ``datetime.time`` → ``std::chrono::system_clock::time_point`` Date/time objects are converted into system clock timepoints. Any timezone information is ignored and the type is treated as a naive object. diff --git a/libs/pybind11-2.3.0/docs/advanced/cast/custom.rst b/libs/pybind11-2.4.3/docs/advanced/cast/custom.rst similarity index 100% rename from libs/pybind11-2.3.0/docs/advanced/cast/custom.rst rename to libs/pybind11-2.4.3/docs/advanced/cast/custom.rst diff --git a/libs/pybind11-2.3.0/docs/advanced/cast/eigen.rst b/libs/pybind11-2.4.3/docs/advanced/cast/eigen.rst similarity index 100% rename from libs/pybind11-2.3.0/docs/advanced/cast/eigen.rst rename to libs/pybind11-2.4.3/docs/advanced/cast/eigen.rst diff --git a/libs/pybind11-2.3.0/docs/advanced/cast/functional.rst b/libs/pybind11-2.4.3/docs/advanced/cast/functional.rst similarity index 100% rename from libs/pybind11-2.3.0/docs/advanced/cast/functional.rst rename to libs/pybind11-2.4.3/docs/advanced/cast/functional.rst diff --git a/libs/pybind11-2.3.0/docs/advanced/cast/index.rst b/libs/pybind11-2.4.3/docs/advanced/cast/index.rst similarity index 100% rename from libs/pybind11-2.3.0/docs/advanced/cast/index.rst rename to libs/pybind11-2.4.3/docs/advanced/cast/index.rst diff --git a/libs/pybind11-2.3.0/docs/advanced/cast/overview.rst b/libs/pybind11-2.4.3/docs/advanced/cast/overview.rst similarity index 100% rename from libs/pybind11-2.3.0/docs/advanced/cast/overview.rst rename to libs/pybind11-2.4.3/docs/advanced/cast/overview.rst diff --git a/libs/pybind11-2.3.0/docs/advanced/cast/stl.rst b/libs/pybind11-2.4.3/docs/advanced/cast/stl.rst similarity index 100% rename from libs/pybind11-2.3.0/docs/advanced/cast/stl.rst rename to libs/pybind11-2.4.3/docs/advanced/cast/stl.rst diff --git a/libs/pybind11-2.3.0/docs/advanced/cast/strings.rst b/libs/pybind11-2.4.3/docs/advanced/cast/strings.rst similarity index 100% rename from libs/pybind11-2.3.0/docs/advanced/cast/strings.rst rename to libs/pybind11-2.4.3/docs/advanced/cast/strings.rst diff --git a/libs/pybind11-2.3.0/docs/advanced/classes.rst b/libs/pybind11-2.4.3/docs/advanced/classes.rst similarity index 99% rename from libs/pybind11-2.3.0/docs/advanced/classes.rst rename to libs/pybind11-2.4.3/docs/advanced/classes.rst index c9a0da5..ae5907d 100644 --- a/libs/pybind11-2.3.0/docs/advanced/classes.rst +++ b/libs/pybind11-2.4.3/docs/advanced/classes.rst @@ -662,6 +662,7 @@ to Python. .def(py::self *= float()) .def(float() * py::self) .def(py::self * float()) + .def(-py::self) .def("__repr__", &Vector2::toString); } diff --git a/libs/pybind11-2.3.0/docs/advanced/embedding.rst b/libs/pybind11-2.4.3/docs/advanced/embedding.rst similarity index 100% rename from libs/pybind11-2.3.0/docs/advanced/embedding.rst rename to libs/pybind11-2.4.3/docs/advanced/embedding.rst diff --git a/libs/pybind11-2.3.0/docs/advanced/exceptions.rst b/libs/pybind11-2.4.3/docs/advanced/exceptions.rst similarity index 100% rename from libs/pybind11-2.3.0/docs/advanced/exceptions.rst rename to libs/pybind11-2.4.3/docs/advanced/exceptions.rst diff --git a/libs/pybind11-2.3.0/docs/advanced/functions.rst b/libs/pybind11-2.4.3/docs/advanced/functions.rst similarity index 100% rename from libs/pybind11-2.3.0/docs/advanced/functions.rst rename to libs/pybind11-2.4.3/docs/advanced/functions.rst diff --git a/libs/pybind11-2.3.0/docs/advanced/misc.rst b/libs/pybind11-2.4.3/docs/advanced/misc.rst similarity index 100% rename from libs/pybind11-2.3.0/docs/advanced/misc.rst rename to libs/pybind11-2.4.3/docs/advanced/misc.rst diff --git a/libs/pybind11-2.3.0/docs/advanced/pycpp/index.rst b/libs/pybind11-2.4.3/docs/advanced/pycpp/index.rst similarity index 100% rename from libs/pybind11-2.3.0/docs/advanced/pycpp/index.rst rename to libs/pybind11-2.4.3/docs/advanced/pycpp/index.rst diff --git a/libs/pybind11-2.3.0/docs/advanced/pycpp/numpy.rst b/libs/pybind11-2.4.3/docs/advanced/pycpp/numpy.rst similarity index 100% rename from libs/pybind11-2.3.0/docs/advanced/pycpp/numpy.rst rename to libs/pybind11-2.4.3/docs/advanced/pycpp/numpy.rst diff --git a/libs/pybind11-2.3.0/docs/advanced/pycpp/object.rst b/libs/pybind11-2.4.3/docs/advanced/pycpp/object.rst similarity index 100% rename from libs/pybind11-2.3.0/docs/advanced/pycpp/object.rst rename to libs/pybind11-2.4.3/docs/advanced/pycpp/object.rst diff --git a/libs/pybind11-2.3.0/docs/advanced/pycpp/utilities.rst b/libs/pybind11-2.4.3/docs/advanced/pycpp/utilities.rst similarity index 100% rename from libs/pybind11-2.3.0/docs/advanced/pycpp/utilities.rst rename to libs/pybind11-2.4.3/docs/advanced/pycpp/utilities.rst diff --git a/libs/pybind11-2.3.0/docs/advanced/smart_ptrs.rst b/libs/pybind11-2.4.3/docs/advanced/smart_ptrs.rst similarity index 100% rename from libs/pybind11-2.3.0/docs/advanced/smart_ptrs.rst rename to libs/pybind11-2.4.3/docs/advanced/smart_ptrs.rst diff --git a/libs/pybind11-2.3.0/docs/basics.rst b/libs/pybind11-2.4.3/docs/basics.rst similarity index 100% rename from libs/pybind11-2.3.0/docs/basics.rst rename to libs/pybind11-2.4.3/docs/basics.rst diff --git a/libs/pybind11-2.3.0/docs/benchmark.py b/libs/pybind11-2.4.3/docs/benchmark.py similarity index 100% rename from libs/pybind11-2.3.0/docs/benchmark.py rename to libs/pybind11-2.4.3/docs/benchmark.py diff --git a/libs/pybind11-2.3.0/docs/benchmark.rst b/libs/pybind11-2.4.3/docs/benchmark.rst similarity index 100% rename from libs/pybind11-2.3.0/docs/benchmark.rst rename to libs/pybind11-2.4.3/docs/benchmark.rst diff --git a/libs/pybind11-2.3.0/docs/changelog.rst b/libs/pybind11-2.4.3/docs/changelog.rst similarity index 93% rename from libs/pybind11-2.3.0/docs/changelog.rst rename to libs/pybind11-2.4.3/docs/changelog.rst index 8f0f8ef..d65c2d8 100644 --- a/libs/pybind11-2.3.0/docs/changelog.rst +++ b/libs/pybind11-2.4.3/docs/changelog.rst @@ -6,6 +6,87 @@ Changelog Starting with version 1.8.0, pybind11 releases use a `semantic versioning `_ policy. +v2.4.3 (Oct 15, 2019) +----------------------------------------------------- + +* Adapt pybind11 to a C API convention change in Python 3.8. `#1950 + `_. + +v2.4.2 (Sep 21, 2019) +----------------------------------------------------- + +* Replaced usage of a C++14 only construct. `#1929 + `_. + +* Made an ifdef future-proof for Python >= 4. `f3109d + `_. + +v2.4.1 (Sep 20, 2019) +----------------------------------------------------- + +* Fixed a problem involving implicit conversion from enumerations to integers + on Python 3.8. `#1780 `_. + +v2.4.0 (Sep 19, 2019) +----------------------------------------------------- + +* Try harder to keep pybind11-internal data structures separate when there + are potential ABI incompatibilities. Fixes crashes that occurred when loading + multiple pybind11 extensions that were e.g. compiled by GCC (libstdc++) + and Clang (libc++). + `#1588 `_ and + `c9f5a `_. + +* Added support for ``__await__``, ``__aiter__``, and ``__anext__`` protocols. + `#1842 `_. + +* ``pybind11_add_module()``: don't strip symbols when compiling in + ``RelWithDebInfo`` mode. `#1980 + `_. + +* ``enum_``: Reproduce Python behavior when comparing against invalid values + (e.g. ``None``, strings, etc.). Add back support for ``__invert__()``. + `#1912 `_, + `#1907 `_. + +* List insertion operation for ``py::list``. + Added ``.empty()`` to all collection types. + Added ``py::set::contains()`` and ``py::dict::contains()``. + `#1887 `_, + `#1884 `_, + `#1888 `_. + +* ``py::details::overload_cast_impl`` is available in C++11 mode, can be used + like ``overload_cast`` with an additional set of parantheses. + `#1581 `_. + +* Fixed ``get_include()`` on Conda. + `#1877 `_. + +* ``stl_bind.h``: negative indexing support. + `#1882 `_. + +* Minor CMake fix to add MinGW compatibility. + `#1851 `_. + +* GIL-related fixes. + `#1836 `_, + `8b90b `_. + +* Other very minor/subtle fixes and improvements. + `#1329 `_, + `#1910 `_, + `#1863 `_, + `#1847 `_, + `#1890 `_, + `#1860 `_, + `#1848 `_, + `#1821 `_, + `#1837 `_, + `#1833 `_, + `#1748 `_, + `#1852 `_. + v2.3.0 (June 11, 2019) ----------------------------------------------------- @@ -99,7 +180,6 @@ v2.3.0 (June 11, 2019) `#1744 `_, `#1670 `_. - v2.2.4 (September 11, 2018) ----------------------------------------------------- diff --git a/libs/pybind11-2.3.0/docs/classes.rst b/libs/pybind11-2.4.3/docs/classes.rst similarity index 96% rename from libs/pybind11-2.3.0/docs/classes.rst rename to libs/pybind11-2.4.3/docs/classes.rst index 1deec9b..a63f6a1 100644 --- a/libs/pybind11-2.3.0/docs/classes.rst +++ b/libs/pybind11-2.4.3/docs/classes.rst @@ -422,6 +422,17 @@ on constness, the ``py::const_`` tag should be used: .def("foo_mutable", py::overload_cast(&Widget::foo)) .def("foo_const", py::overload_cast(&Widget::foo, py::const_)); +If you prefer the ``py::overload_cast`` syntax but have a C++11 compatible compiler only, +you can use ``py::detail::overload_cast_impl`` with an additional set of parentheses: + +.. code-block:: cpp + + template + using overload_cast_ = pybind11::detail::overload_cast_impl; + + py::class_(m, "Pet") + .def("set", overload_cast_()(&Pet::set), "Set the pet's age") + .def("set", overload_cast_()(&Pet::set), "Set the pet's name"); .. [#cpp14] A compiler which supports the ``-std=c++14`` flag or Visual Studio 2015 Update 2 and newer. diff --git a/libs/pybind11-2.3.0/docs/compiling.rst b/libs/pybind11-2.4.3/docs/compiling.rst similarity index 100% rename from libs/pybind11-2.3.0/docs/compiling.rst rename to libs/pybind11-2.4.3/docs/compiling.rst diff --git a/libs/pybind11-2.3.0/docs/conf.py b/libs/pybind11-2.4.3/docs/conf.py similarity index 99% rename from libs/pybind11-2.3.0/docs/conf.py rename to libs/pybind11-2.4.3/docs/conf.py index 0a65333..c438546 100644 --- a/libs/pybind11-2.3.0/docs/conf.py +++ b/libs/pybind11-2.4.3/docs/conf.py @@ -61,9 +61,9 @@ # built documents. # # The short X.Y version. -version = '2.3' +version = '2.4' # The full version, including alpha/beta/rc tags. -release = '2.3.0' +release = '2.4.3' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/libs/pybind11-2.3.0/docs/faq.rst b/libs/pybind11-2.4.3/docs/faq.rst similarity index 100% rename from libs/pybind11-2.3.0/docs/faq.rst rename to libs/pybind11-2.4.3/docs/faq.rst diff --git a/libs/pybind11-2.3.0/docs/index.rst b/libs/pybind11-2.4.3/docs/index.rst similarity index 100% rename from libs/pybind11-2.3.0/docs/index.rst rename to libs/pybind11-2.4.3/docs/index.rst diff --git a/libs/pybind11-2.3.0/docs/intro.rst b/libs/pybind11-2.4.3/docs/intro.rst similarity index 100% rename from libs/pybind11-2.3.0/docs/intro.rst rename to libs/pybind11-2.4.3/docs/intro.rst diff --git a/libs/pybind11-2.3.0/docs/limitations.rst b/libs/pybind11-2.4.3/docs/limitations.rst similarity index 100% rename from libs/pybind11-2.3.0/docs/limitations.rst rename to libs/pybind11-2.4.3/docs/limitations.rst diff --git a/libs/pybind11-2.3.0/docs/pybind11-logo.png b/libs/pybind11-2.4.3/docs/pybind11-logo.png similarity index 100% rename from libs/pybind11-2.3.0/docs/pybind11-logo.png rename to libs/pybind11-2.4.3/docs/pybind11-logo.png diff --git a/libs/pybind11-2.3.0/docs/pybind11_vs_boost_python1.png b/libs/pybind11-2.4.3/docs/pybind11_vs_boost_python1.png similarity index 100% rename from libs/pybind11-2.3.0/docs/pybind11_vs_boost_python1.png rename to libs/pybind11-2.4.3/docs/pybind11_vs_boost_python1.png diff --git a/libs/pybind11-2.3.0/docs/pybind11_vs_boost_python1.svg b/libs/pybind11-2.4.3/docs/pybind11_vs_boost_python1.svg similarity index 100% rename from libs/pybind11-2.3.0/docs/pybind11_vs_boost_python1.svg rename to libs/pybind11-2.4.3/docs/pybind11_vs_boost_python1.svg diff --git a/libs/pybind11-2.3.0/docs/pybind11_vs_boost_python2.png b/libs/pybind11-2.4.3/docs/pybind11_vs_boost_python2.png similarity index 100% rename from libs/pybind11-2.3.0/docs/pybind11_vs_boost_python2.png rename to libs/pybind11-2.4.3/docs/pybind11_vs_boost_python2.png diff --git a/libs/pybind11-2.3.0/docs/pybind11_vs_boost_python2.svg b/libs/pybind11-2.4.3/docs/pybind11_vs_boost_python2.svg similarity index 100% rename from libs/pybind11-2.3.0/docs/pybind11_vs_boost_python2.svg rename to libs/pybind11-2.4.3/docs/pybind11_vs_boost_python2.svg diff --git a/libs/pybind11-2.3.0/docs/reference.rst b/libs/pybind11-2.4.3/docs/reference.rst similarity index 100% rename from libs/pybind11-2.3.0/docs/reference.rst rename to libs/pybind11-2.4.3/docs/reference.rst diff --git a/libs/pybind11-2.3.0/docs/release.rst b/libs/pybind11-2.4.3/docs/release.rst similarity index 75% rename from libs/pybind11-2.3.0/docs/release.rst rename to libs/pybind11-2.4.3/docs/release.rst index b31bbe9..9846f97 100644 --- a/libs/pybind11-2.3.0/docs/release.rst +++ b/libs/pybind11-2.4.3/docs/release.rst @@ -13,10 +13,6 @@ To release a new version of pybind11: - ``git push --tags``. - ``python setup.py sdist upload``. - ``python setup.py bdist_wheel upload``. -- Update conda-forge (https://github.com/conda-forge/pybind11-feedstock) via PR - - download release package from Github: ``wget https://github.com/pybind/pybind11/archive/vX.Y.Z.tar.gz`` - - compute checksum: ``shasum -a 256 vX.Y.Z.tar.gz`` - - change version number and checksum in ``recipe/meta.yml`` - Get back to work - Update ``_version.py`` (add 'dev' and increment minor). - Update version in ``docs/conf.py`` diff --git a/libs/pybind11-2.3.0/docs/requirements.txt b/libs/pybind11-2.4.3/docs/requirements.txt similarity index 100% rename from libs/pybind11-2.3.0/docs/requirements.txt rename to libs/pybind11-2.4.3/docs/requirements.txt diff --git a/libs/pybind11-2.3.0/docs/upgrade.rst b/libs/pybind11-2.4.3/docs/upgrade.rst similarity index 100% rename from libs/pybind11-2.3.0/docs/upgrade.rst rename to libs/pybind11-2.4.3/docs/upgrade.rst diff --git a/libs/pybind11-2.3.0/include/pybind11/attr.h b/libs/pybind11-2.4.3/include/pybind11/attr.h similarity index 100% rename from libs/pybind11-2.3.0/include/pybind11/attr.h rename to libs/pybind11-2.4.3/include/pybind11/attr.h diff --git a/libs/pybind11-2.3.0/include/pybind11/buffer_info.h b/libs/pybind11-2.4.3/include/pybind11/buffer_info.h similarity index 100% rename from libs/pybind11-2.3.0/include/pybind11/buffer_info.h rename to libs/pybind11-2.4.3/include/pybind11/buffer_info.h diff --git a/libs/pybind11-2.3.0/include/pybind11/cast.h b/libs/pybind11-2.4.3/include/pybind11/cast.h similarity index 99% rename from libs/pybind11-2.3.0/include/pybind11/cast.h rename to libs/pybind11-2.4.3/include/pybind11/cast.h index 8d0fd5d..605acb3 100644 --- a/libs/pybind11-2.3.0/include/pybind11/cast.h +++ b/libs/pybind11-2.4.3/include/pybind11/cast.h @@ -775,7 +775,9 @@ template struct is_copy_constructible : std // so, copy constructability depends on whether the value_type is copy constructible. template struct is_copy_constructible, - std::is_same + std::is_same, + // Avoid infinite recursion + negation> >::value>> : is_copy_constructible {}; #if !defined(PYBIND11_CPP17) @@ -995,9 +997,11 @@ struct type_caster::value && !is_std_char_t } bool py_err = py_value == (py_type) -1 && PyErr_Occurred(); + + // Protect std::numeric_limits::min/max with parentheses if (py_err || (std::is_integral::value && sizeof(py_type) != sizeof(T) && - (py_value < (py_type) std::numeric_limits::min() || - py_value > (py_type) std::numeric_limits::max()))) { + (py_value < (py_type) (std::numeric_limits::min)() || + py_value > (py_type) (std::numeric_limits::max)()))) { bool type_error = py_err && PyErr_ExceptionMatches( #if PY_VERSION_HEX < 0x03000000 && !defined(PYPY_VERSION) PyExc_SystemError diff --git a/libs/pybind11-2.3.0/include/pybind11/chrono.h b/libs/pybind11-2.4.3/include/pybind11/chrono.h similarity index 82% rename from libs/pybind11-2.3.0/include/pybind11/chrono.h rename to libs/pybind11-2.4.3/include/pybind11/chrono.h index 95ada76..ea777e6 100644 --- a/libs/pybind11-2.3.0/include/pybind11/chrono.h +++ b/libs/pybind11-2.4.3/include/pybind11/chrono.h @@ -106,8 +106,11 @@ template class type_caster class type_caster &src, return_value_policy /* policy */, handle /* parent */) { @@ -128,7 +150,7 @@ template class type_caster(src)); // this function uses static memory so it's best to copy it out asap just in case // otherwise other code that is using localtime may break this (not just python code) std::tm localtime = *std::localtime(&tt); diff --git a/libs/pybind11-2.3.0/include/pybind11/common.h b/libs/pybind11-2.4.3/include/pybind11/common.h similarity index 100% rename from libs/pybind11-2.3.0/include/pybind11/common.h rename to libs/pybind11-2.4.3/include/pybind11/common.h diff --git a/libs/pybind11-2.3.0/include/pybind11/complex.h b/libs/pybind11-2.4.3/include/pybind11/complex.h similarity index 100% rename from libs/pybind11-2.3.0/include/pybind11/complex.h rename to libs/pybind11-2.4.3/include/pybind11/complex.h diff --git a/libs/pybind11-2.3.0/include/pybind11/detail/class.h b/libs/pybind11-2.4.3/include/pybind11/detail/class.h similarity index 98% rename from libs/pybind11-2.3.0/include/pybind11/detail/class.h rename to libs/pybind11-2.4.3/include/pybind11/detail/class.h index b1916fc..230ae81 100644 --- a/libs/pybind11-2.3.0/include/pybind11/detail/class.h +++ b/libs/pybind11-2.4.3/include/pybind11/detail/class.h @@ -350,6 +350,7 @@ extern "C" inline void pybind11_object_dealloc(PyObject *self) { auto type = Py_TYPE(self); type->tp_free(self); +#if PY_VERSION_HEX < 0x03080000 // `type->tp_dealloc != pybind11_object_dealloc` means that we're being called // as part of a derived type's dealloc, in which case we're not allowed to decref // the type here. For cross-module compatibility, we shouldn't compare directly @@ -357,6 +358,11 @@ extern "C" inline void pybind11_object_dealloc(PyObject *self) { auto pybind11_object_type = (PyTypeObject *) get_internals().instance_base; if (type->tp_dealloc == pybind11_object_type->tp_dealloc) Py_DECREF(type); +#else + // This was not needed before Python 3.8 (Python issue 35810) + // https://github.com/pybind/pybind11/issues/1946 + Py_DECREF(type); +#endif } /** Create the type which can be used as a common base for all classes. This is @@ -586,6 +592,9 @@ inline PyObject* make_new_python_type(const type_record &rec) { type->tp_as_number = &heap_type->as_number; type->tp_as_sequence = &heap_type->as_sequence; type->tp_as_mapping = &heap_type->as_mapping; +#if PY_VERSION_HEX >= 0x03050000 + type->tp_as_async = &heap_type->as_async; +#endif /* Flags */ type->tp_flags |= Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HEAPTYPE; diff --git a/libs/pybind11-2.3.0/include/pybind11/detail/common.h b/libs/pybind11-2.4.3/include/pybind11/detail/common.h similarity index 98% rename from libs/pybind11-2.3.0/include/pybind11/detail/common.h rename to libs/pybind11-2.4.3/include/pybind11/detail/common.h index bec8ccf..6da5470 100644 --- a/libs/pybind11-2.3.0/include/pybind11/detail/common.h +++ b/libs/pybind11-2.4.3/include/pybind11/detail/common.h @@ -93,8 +93,8 @@ #endif #define PYBIND11_VERSION_MAJOR 2 -#define PYBIND11_VERSION_MINOR 3 -#define PYBIND11_VERSION_PATCH 0 +#define PYBIND11_VERSION_MINOR 4 +#define PYBIND11_VERSION_PATCH 3 /// Include Python header, disable linking to pythonX_d.lib on Windows in debug mode #if defined(_MSC_VER) @@ -113,10 +113,6 @@ #include #include -#if defined(_WIN32) && (defined(min) || defined(max)) -# error Macro clash with min and max -- define NOMINMAX when compiling your program on Windows -#endif - #if defined(isalnum) # undef isalnum # undef isalpha @@ -168,7 +164,9 @@ #define PYBIND11_STR_TYPE ::pybind11::str #define PYBIND11_BOOL_ATTR "__bool__" #define PYBIND11_NB_BOOL(ptr) ((ptr)->nb_bool) +// Providing a separate declaration to make Clang's -Wmissing-prototypes happy #define PYBIND11_PLUGIN_IMPL(name) \ + extern "C" PYBIND11_EXPORT PyObject *PyInit_##name(); \ extern "C" PYBIND11_EXPORT PyObject *PyInit_##name() #else @@ -192,8 +190,10 @@ #define PYBIND11_STR_TYPE ::pybind11::bytes #define PYBIND11_BOOL_ATTR "__nonzero__" #define PYBIND11_NB_BOOL(ptr) ((ptr)->nb_nonzero) +// Providing a separate PyInit decl to make Clang's -Wmissing-prototypes happy #define PYBIND11_PLUGIN_IMPL(name) \ static PyObject *pybind11_init_wrapper(); \ + extern "C" PYBIND11_EXPORT void init##name(); \ extern "C" PYBIND11_EXPORT void init##name() { \ (void)pybind11_init_wrapper(); \ } \ @@ -673,6 +673,7 @@ PYBIND11_RUNTIME_EXCEPTION(index_error, PyExc_IndexError) PYBIND11_RUNTIME_EXCEPTION(key_error, PyExc_KeyError) PYBIND11_RUNTIME_EXCEPTION(value_error, PyExc_ValueError) PYBIND11_RUNTIME_EXCEPTION(type_error, PyExc_TypeError) +PYBIND11_RUNTIME_EXCEPTION(buffer_error, PyExc_BufferError) PYBIND11_RUNTIME_EXCEPTION(cast_error, PyExc_RuntimeError) /// Thrown when pybind11::cast or handle::call fail due to a type casting error PYBIND11_RUNTIME_EXCEPTION(reference_cast_error, PyExc_RuntimeError) /// Used internally @@ -719,10 +720,6 @@ struct error_scope { /// Dummy destructor wrapper that can be used to expose classes with a private destructor struct nodelete { template void operator()(T*) { } }; -// overload_cast requires variable templates: C++14 -#if defined(PYBIND11_CPP14) -#define PYBIND11_OVERLOAD_CAST 1 - NAMESPACE_BEGIN(detail) template struct overload_cast_impl { @@ -742,19 +739,23 @@ struct overload_cast_impl { }; NAMESPACE_END(detail) +// overload_cast requires variable templates: C++14 +#if defined(PYBIND11_CPP14) +#define PYBIND11_OVERLOAD_CAST 1 /// Syntax sugar for resolving overloaded function pointers: /// - regular: static_cast(&Class::func) /// - sweet: overload_cast(&Class::func) template static constexpr detail::overload_cast_impl overload_cast = {}; // MSVC 2015 only accepts this particular initialization syntax for this variable template. +#endif /// Const member function selector for overload_cast /// - regular: static_cast(&Class::func) /// - sweet: overload_cast(&Class::func, const_) static constexpr auto const_ = std::true_type{}; -#else // no overload_cast: providing something that static_assert-fails: +#if !defined(PYBIND11_CPP14) // no overload_cast: providing something that static_assert-fails: template struct overload_cast { static_assert(detail::deferred_t::value, "pybind11::overload_cast<...> requires compiling in C++14 mode"); diff --git a/libs/pybind11-2.3.0/include/pybind11/detail/descr.h b/libs/pybind11-2.4.3/include/pybind11/detail/descr.h similarity index 100% rename from libs/pybind11-2.3.0/include/pybind11/detail/descr.h rename to libs/pybind11-2.4.3/include/pybind11/detail/descr.h diff --git a/libs/pybind11-2.3.0/include/pybind11/detail/init.h b/libs/pybind11-2.4.3/include/pybind11/detail/init.h similarity index 100% rename from libs/pybind11-2.3.0/include/pybind11/detail/init.h rename to libs/pybind11-2.4.3/include/pybind11/detail/init.h diff --git a/libs/pybind11-2.3.0/include/pybind11/detail/internals.h b/libs/pybind11-2.4.3/include/pybind11/detail/internals.h similarity index 78% rename from libs/pybind11-2.3.0/include/pybind11/detail/internals.h rename to libs/pybind11-2.4.3/include/pybind11/detail/internals.h index f1dd387..067780c 100644 --- a/libs/pybind11-2.3.0/include/pybind11/detail/internals.h +++ b/libs/pybind11-2.4.3/include/pybind11/detail/internals.h @@ -140,12 +140,47 @@ struct type_info { /// Tracks the `internals` and `type_info` ABI version independent of the main library version #define PYBIND11_INTERNALS_VERSION 3 -#if defined(_DEBUG) +/// On MSVC, debug and release builds are not ABI-compatible! +#if defined(_MSC_VER) && defined(_DEBUG) # define PYBIND11_BUILD_TYPE "_debug" #else # define PYBIND11_BUILD_TYPE "" #endif +/// Let's assume that different compilers are ABI-incompatible. +#if defined(_MSC_VER) +# define PYBIND11_COMPILER_TYPE "_msvc" +#elif defined(__INTEL_COMPILER) +# define PYBIND11_COMPILER_TYPE "_icc" +#elif defined(__clang__) +# define PYBIND11_COMPILER_TYPE "_clang" +#elif defined(__PGI) +# define PYBIND11_COMPILER_TYPE "_pgi" +#elif defined(__MINGW32__) +# define PYBIND11_COMPILER_TYPE "_mingw" +#elif defined(__CYGWIN__) +# define PYBIND11_COMPILER_TYPE "_gcc_cygwin" +#elif defined(__GNUC__) +# define PYBIND11_COMPILER_TYPE "_gcc" +#else +# define PYBIND11_COMPILER_TYPE "_unknown" +#endif + +#if defined(_LIBCPP_VERSION) +# define PYBIND11_STDLIB "_libcpp" +#elif defined(__GLIBCXX__) || defined(__GLIBCPP__) +# define PYBIND11_STDLIB "_libstdcpp" +#else +# define PYBIND11_STDLIB "" +#endif + +/// On Linux/OSX, changes in __GXX_ABI_VERSION__ indicate ABI incompatibility. +#if defined(__GXX_ABI_VERSION) +# define PYBIND11_BUILD_ABI "_cxxabi" PYBIND11_TOSTRING(__GXX_ABI_VERSION) +#else +# define PYBIND11_BUILD_ABI "" +#endif + #if defined(WITH_THREAD) # define PYBIND11_INTERNALS_KIND "" #else @@ -153,10 +188,10 @@ struct type_info { #endif #define PYBIND11_INTERNALS_ID "__pybind11_internals_v" \ - PYBIND11_TOSTRING(PYBIND11_INTERNALS_VERSION) PYBIND11_INTERNALS_KIND PYBIND11_BUILD_TYPE "__" + PYBIND11_TOSTRING(PYBIND11_INTERNALS_VERSION) PYBIND11_INTERNALS_KIND PYBIND11_COMPILER_TYPE PYBIND11_STDLIB PYBIND11_BUILD_ABI PYBIND11_BUILD_TYPE "__" #define PYBIND11_MODULE_LOCAL_ID "__pybind11_module_local_v" \ - PYBIND11_TOSTRING(PYBIND11_INTERNALS_VERSION) PYBIND11_INTERNALS_KIND PYBIND11_BUILD_TYPE "__" + PYBIND11_TOSTRING(PYBIND11_INTERNALS_VERSION) PYBIND11_INTERNALS_KIND PYBIND11_COMPILER_TYPE PYBIND11_STDLIB PYBIND11_BUILD_ABI PYBIND11_BUILD_TYPE "__" /// Each module locally stores a pointer to the `internals` data. The data /// itself is shared among modules with the same `PYBIND11_INTERNALS_ID`. @@ -165,12 +200,48 @@ inline internals **&get_internals_pp() { return internals_pp; } +inline void translate_exception(std::exception_ptr p) { + try { + if (p) std::rethrow_exception(p); + } catch (error_already_set &e) { e.restore(); return; + } catch (const builtin_exception &e) { e.set_error(); return; + } catch (const std::bad_alloc &e) { PyErr_SetString(PyExc_MemoryError, e.what()); return; + } catch (const std::domain_error &e) { PyErr_SetString(PyExc_ValueError, e.what()); return; + } catch (const std::invalid_argument &e) { PyErr_SetString(PyExc_ValueError, e.what()); return; + } catch (const std::length_error &e) { PyErr_SetString(PyExc_ValueError, e.what()); return; + } catch (const std::out_of_range &e) { PyErr_SetString(PyExc_IndexError, e.what()); return; + } catch (const std::range_error &e) { PyErr_SetString(PyExc_ValueError, e.what()); return; + } catch (const std::exception &e) { PyErr_SetString(PyExc_RuntimeError, e.what()); return; + } catch (...) { + PyErr_SetString(PyExc_RuntimeError, "Caught an unknown exception!"); + return; + } +} + +#if !defined(__GLIBCXX__) +inline void translate_local_exception(std::exception_ptr p) { + try { + if (p) std::rethrow_exception(p); + } catch (error_already_set &e) { e.restore(); return; + } catch (const builtin_exception &e) { e.set_error(); return; + } +} +#endif + /// Return a reference to the current `internals` data PYBIND11_NOINLINE inline internals &get_internals() { auto **&internals_pp = get_internals_pp(); if (internals_pp && *internals_pp) return **internals_pp; + // Ensure that the GIL is held since we will need to make Python calls. + // Cannot use py::gil_scoped_acquire here since that constructor calls get_internals. + struct gil_scoped_acquire_local { + gil_scoped_acquire_local() : state (PyGILState_Ensure()) {} + ~gil_scoped_acquire_local() { PyGILState_Release(state); } + const PyGILState_STATE state; + } gil; + constexpr auto *id = PYBIND11_INTERNALS_ID; auto builtins = handle(PyEval_GetBuiltins()); if (builtins.contains(id) && isinstance(builtins[id])) { @@ -182,15 +253,7 @@ PYBIND11_NOINLINE inline internals &get_internals() { // // libstdc++ doesn't require this (types there are identified only by name) #if !defined(__GLIBCXX__) - (*internals_pp)->registered_exception_translators.push_front( - [](std::exception_ptr p) -> void { - try { - if (p) std::rethrow_exception(p); - } catch (error_already_set &e) { e.restore(); return; - } catch (const builtin_exception &e) { e.set_error(); return; - } - } - ); + (*internals_pp)->registered_exception_translators.push_front(&translate_local_exception); #endif } else { if (!internals_pp) internals_pp = new internals*(); @@ -213,25 +276,7 @@ PYBIND11_NOINLINE inline internals &get_internals() { internals_ptr->istate = tstate->interp; #endif builtins[id] = capsule(internals_pp); - internals_ptr->registered_exception_translators.push_front( - [](std::exception_ptr p) -> void { - try { - if (p) std::rethrow_exception(p); - } catch (error_already_set &e) { e.restore(); return; - } catch (const builtin_exception &e) { e.set_error(); return; - } catch (const std::bad_alloc &e) { PyErr_SetString(PyExc_MemoryError, e.what()); return; - } catch (const std::domain_error &e) { PyErr_SetString(PyExc_ValueError, e.what()); return; - } catch (const std::invalid_argument &e) { PyErr_SetString(PyExc_ValueError, e.what()); return; - } catch (const std::length_error &e) { PyErr_SetString(PyExc_ValueError, e.what()); return; - } catch (const std::out_of_range &e) { PyErr_SetString(PyExc_IndexError, e.what()); return; - } catch (const std::range_error &e) { PyErr_SetString(PyExc_ValueError, e.what()); return; - } catch (const std::exception &e) { PyErr_SetString(PyExc_RuntimeError, e.what()); return; - } catch (...) { - PyErr_SetString(PyExc_RuntimeError, "Caught an unknown exception!"); - return; - } - } - ); + internals_ptr->registered_exception_translators.push_front(&translate_exception); internals_ptr->static_property_type = make_static_property_type(); internals_ptr->default_metaclass = make_default_metaclass(); internals_ptr->instance_base = make_object_base_type(internals_ptr->default_metaclass); diff --git a/libs/pybind11-2.3.0/include/pybind11/detail/typeid.h b/libs/pybind11-2.4.3/include/pybind11/detail/typeid.h similarity index 100% rename from libs/pybind11-2.3.0/include/pybind11/detail/typeid.h rename to libs/pybind11-2.4.3/include/pybind11/detail/typeid.h diff --git a/libs/pybind11-2.3.0/include/pybind11/eigen.h b/libs/pybind11-2.4.3/include/pybind11/eigen.h similarity index 100% rename from libs/pybind11-2.3.0/include/pybind11/eigen.h rename to libs/pybind11-2.4.3/include/pybind11/eigen.h diff --git a/libs/pybind11-2.3.0/include/pybind11/embed.h b/libs/pybind11-2.4.3/include/pybind11/embed.h similarity index 100% rename from libs/pybind11-2.3.0/include/pybind11/embed.h rename to libs/pybind11-2.4.3/include/pybind11/embed.h diff --git a/libs/pybind11-2.3.0/include/pybind11/eval.h b/libs/pybind11-2.4.3/include/pybind11/eval.h similarity index 100% rename from libs/pybind11-2.3.0/include/pybind11/eval.h rename to libs/pybind11-2.4.3/include/pybind11/eval.h diff --git a/libs/pybind11-2.3.0/include/pybind11/functional.h b/libs/pybind11-2.4.3/include/pybind11/functional.h similarity index 83% rename from libs/pybind11-2.3.0/include/pybind11/functional.h rename to libs/pybind11-2.4.3/include/pybind11/functional.h index 7a0988a..f8bda64 100644 --- a/libs/pybind11-2.3.0/include/pybind11/functional.h +++ b/libs/pybind11-2.4.3/include/pybind11/functional.h @@ -65,12 +65,19 @@ struct type_caster> { } }; - value = [hfunc = func_handle(std::move(func))](Args... args) -> Return { - gil_scoped_acquire acq; - object retval(hfunc.f(std::forward(args)...)); - /* Visual studio 2015 parser issue: need parentheses around this expression */ - return (retval.template cast()); + // to emulate 'move initialization capture' in C++11 + struct func_wrapper { + func_handle hfunc; + func_wrapper(func_handle&& hf): hfunc(std::move(hf)) {} + Return operator()(Args... args) const { + gil_scoped_acquire acq; + object retval(hfunc.f(std::forward(args)...)); + /* Visual studio 2015 parser issue: need parentheses around this expression */ + return (retval.template cast()); + } }; + + value = func_wrapper(func_handle(std::move(func))); return true; } diff --git a/libs/pybind11-2.3.0/include/pybind11/iostream.h b/libs/pybind11-2.4.3/include/pybind11/iostream.h similarity index 99% rename from libs/pybind11-2.3.0/include/pybind11/iostream.h rename to libs/pybind11-2.4.3/include/pybind11/iostream.h index 72baef8..c43b7c9 100644 --- a/libs/pybind11-2.3.0/include/pybind11/iostream.h +++ b/libs/pybind11-2.4.3/include/pybind11/iostream.h @@ -64,6 +64,8 @@ class pythonbuf : public std::streambuf { setp(d_buffer.get(), d_buffer.get() + buf_size - 1); } + pythonbuf(pythonbuf&&) = default; + /// Sync before destroy ~pythonbuf() { sync(); diff --git a/libs/pybind11-2.3.0/include/pybind11/numpy.h b/libs/pybind11-2.4.3/include/pybind11/numpy.h similarity index 97% rename from libs/pybind11-2.3.0/include/pybind11/numpy.h rename to libs/pybind11-2.4.3/include/pybind11/numpy.h index b2a02e0..ba41a22 100644 --- a/libs/pybind11-2.3.0/include/pybind11/numpy.h +++ b/libs/pybind11-2.4.3/include/pybind11/numpy.h @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -108,6 +109,18 @@ inline numpy_internals& get_numpy_internals() { return *ptr; } +template struct same_size { + template using as = bool_constant; +}; + +template constexpr int platform_lookup() { return -1; } + +// Lookup a type according to its size, and return a value corresponding to the NumPy typenum. +template +constexpr int platform_lookup(int I, Ints... Is) { + return sizeof(Concrete) == sizeof(T) ? I : platform_lookup(Is...); +} + struct npy_api { enum constants { NPY_ARRAY_C_CONTIGUOUS_ = 0x0001, @@ -126,7 +139,23 @@ struct npy_api { NPY_FLOAT_, NPY_DOUBLE_, NPY_LONGDOUBLE_, NPY_CFLOAT_, NPY_CDOUBLE_, NPY_CLONGDOUBLE_, NPY_OBJECT_ = 17, - NPY_STRING_, NPY_UNICODE_, NPY_VOID_ + NPY_STRING_, NPY_UNICODE_, NPY_VOID_, + // Platform-dependent normalization + NPY_INT8_ = NPY_BYTE_, + NPY_UINT8_ = NPY_UBYTE_, + NPY_INT16_ = NPY_SHORT_, + NPY_UINT16_ = NPY_USHORT_, + // `npy_common.h` defines the integer aliases. In order, it checks: + // NPY_BITSOF_LONG, NPY_BITSOF_LONGLONG, NPY_BITSOF_INT, NPY_BITSOF_SHORT, NPY_BITSOF_CHAR + // and assigns the alias to the first matching size, so we should check in this order. + NPY_INT32_ = platform_lookup( + NPY_LONG_, NPY_INT_, NPY_SHORT_), + NPY_UINT32_ = platform_lookup( + NPY_ULONG_, NPY_UINT_, NPY_USHORT_), + NPY_INT64_ = platform_lookup( + NPY_LONG_, NPY_LONGLONG_, NPY_INT_), + NPY_UINT64_ = platform_lookup( + NPY_ULONG_, NPY_ULONGLONG_, NPY_UINT_), }; typedef struct { @@ -1004,8 +1033,8 @@ struct npy_format_descriptor(ptr); + return reinterpret_steal(ptr); pybind11_fail("Unsupported buffer format!"); } }; @@ -1066,8 +1095,14 @@ inline PYBIND11_NOINLINE void register_structured_dtype( if (numpy_internals.get_type_info(tinfo, false)) pybind11_fail("NumPy: dtype is already registered"); + // Use ordered fields because order matters as of NumPy 1.14: + // https://docs.scipy.org/doc/numpy/release.html#multiple-field-indexing-assignment-of-structured-arrays + std::vector ordered_fields(std::move(fields)); + std::sort(ordered_fields.begin(), ordered_fields.end(), + [](const field_descriptor &a, const field_descriptor &b) { return a.offset < b.offset; }); + list names, formats, offsets; - for (auto field : *fields) { + for (auto& field : ordered_fields) { if (!field.descr) pybind11_fail(std::string("NumPy: unsupported field dtype: `") + field.name + "` @ " + tinfo.name()); @@ -1084,9 +1119,6 @@ inline PYBIND11_NOINLINE void register_structured_dtype( // - https://github.com/numpy/numpy/pull/7798 // Because of this, we won't use numpy's logic to generate buffer format // strings and will just do it ourselves. - std::vector ordered_fields(std::move(fields)); - std::sort(ordered_fields.begin(), ordered_fields.end(), - [](const field_descriptor &a, const field_descriptor &b) { return a.offset < b.offset; }); ssize_t offset = 0; std::ostringstream oss; // mark the structure as unaligned with '^', because numpy and C++ don't diff --git a/libs/pybind11-2.3.0/include/pybind11/operators.h b/libs/pybind11-2.4.3/include/pybind11/operators.h similarity index 100% rename from libs/pybind11-2.3.0/include/pybind11/operators.h rename to libs/pybind11-2.4.3/include/pybind11/operators.h diff --git a/libs/pybind11-2.3.0/include/pybind11/options.h b/libs/pybind11-2.4.3/include/pybind11/options.h similarity index 100% rename from libs/pybind11-2.3.0/include/pybind11/options.h rename to libs/pybind11-2.4.3/include/pybind11/options.h diff --git a/libs/pybind11-2.3.0/include/pybind11/pybind11.h b/libs/pybind11-2.4.3/include/pybind11/pybind11.h similarity index 98% rename from libs/pybind11-2.3.0/include/pybind11/pybind11.h rename to libs/pybind11-2.4.3/include/pybind11/pybind11.h index f1d91c7..c623705 100644 --- a/libs/pybind11-2.3.0/include/pybind11/pybind11.h +++ b/libs/pybind11-2.4.3/include/pybind11/pybind11.h @@ -41,16 +41,15 @@ # endif #endif -#if defined(__GNUG__) && !defined(__clang__) - #include -#endif - - #include "attr.h" #include "options.h" #include "detail/class.h" #include "detail/init.h" +#if defined(__GNUG__) && !defined(__clang__) +# include +#endif + NAMESPACE_BEGIN(PYBIND11_NAMESPACE) /// Wraps an arbitrary C++ function/method/lambda function/.. into a callable Python object @@ -496,7 +495,7 @@ class cpp_function : public function { function_call call(func, parent); - size_t args_to_copy = std::min(pos_args, n_args_in); + size_t args_to_copy = (std::min)(pos_args, n_args_in); // Protect std::min with parentheses size_t args_copied = 0; // 0. Inject new-style `self` argument @@ -1470,9 +1469,17 @@ struct enum_base { }, \ is_method(m_base)) + #define PYBIND11_ENUM_OP_CONV_LHS(op, expr) \ + m_base.attr(op) = cpp_function( \ + [](object a_, object b) { \ + int_ a(a_); \ + return expr; \ + }, \ + is_method(m_base)) + if (is_convertible) { - PYBIND11_ENUM_OP_CONV("__eq__", !b.is_none() && a.equal(b)); - PYBIND11_ENUM_OP_CONV("__ne__", b.is_none() || !a.equal(b)); + PYBIND11_ENUM_OP_CONV_LHS("__eq__", !b.is_none() && a.equal(b)); + PYBIND11_ENUM_OP_CONV_LHS("__ne__", b.is_none() || !a.equal(b)); if (is_arithmetic) { PYBIND11_ENUM_OP_CONV("__lt__", a < b); @@ -1485,6 +1492,8 @@ struct enum_base { PYBIND11_ENUM_OP_CONV("__ror__", a | b); PYBIND11_ENUM_OP_CONV("__xor__", a ^ b); PYBIND11_ENUM_OP_CONV("__rxor__", a ^ b); + m_base.attr("__invert__") = cpp_function( + [](object arg) { return ~(int_(arg)); }, is_method(m_base)); } } else { PYBIND11_ENUM_OP_STRICT("__eq__", int_(a).equal(int_(b)), return false); @@ -1500,6 +1509,7 @@ struct enum_base { } } + #undef PYBIND11_ENUM_OP_CONV_LHS #undef PYBIND11_ENUM_OP_CONV #undef PYBIND11_ENUM_OP_STRICT @@ -1556,6 +1566,10 @@ template class enum_ : public class_ { #if PY_MAJOR_VERSION < 3 def("__long__", [](Type value) { return (Scalar) value; }); #endif + #if PY_MAJOR_VERSION > 3 || (PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION >= 8) + def("__index__", [](Type value) { return (Scalar) value; }); + #endif + cpp_function setstate( [](Type &value, Scalar arg) { value = static_cast(arg); }, is_method(*this)); @@ -1999,8 +2013,8 @@ class gil_scoped_release { }; error_already_set::~error_already_set() { if (m_type) { - error_scope scope; gil_scoped_acquire gil; + error_scope scope; m_type.release().dec_ref(); m_value.release().dec_ref(); m_trace.release().dec_ref(); diff --git a/libs/pybind11-2.3.0/include/pybind11/pytypes.h b/libs/pybind11-2.4.3/include/pybind11/pytypes.h similarity index 98% rename from libs/pybind11-2.3.0/include/pybind11/pytypes.h rename to libs/pybind11-2.4.3/include/pybind11/pytypes.h index 2d573df..96eab96 100644 --- a/libs/pybind11-2.3.0/include/pybind11/pytypes.h +++ b/libs/pybind11-2.4.3/include/pybind11/pytypes.h @@ -1202,6 +1202,7 @@ class tuple : public object { if (!m_ptr) pybind11_fail("Could not allocate tuple object!"); } size_t size() const { return (size_t) PyTuple_Size(m_ptr); } + bool empty() const { return size() == 0; } detail::tuple_accessor operator[](size_t index) const { return {*this, index}; } detail::item_accessor operator[](handle h) const { return object::operator[](h); } detail::tuple_iterator begin() const { return {*this, 0}; } @@ -1221,11 +1222,13 @@ class dict : public object { explicit dict(Args &&...args) : dict(collector(std::forward(args)...).kwargs()) { } size_t size() const { return (size_t) PyDict_Size(m_ptr); } + bool empty() const { return size() == 0; } detail::dict_iterator begin() const { return {*this, 0}; } detail::dict_iterator end() const { return {}; } void clear() const { PyDict_Clear(ptr()); } - bool contains(handle key) const { return PyDict_Contains(ptr(), key.ptr()) == 1; } - bool contains(const char *key) const { return PyDict_Contains(ptr(), pybind11::str(key).ptr()) == 1; } + template bool contains(T &&key) const { + return PyDict_Contains(m_ptr, detail::object_or_cast(std::forward(key)).ptr()) == 1; + } private: /// Call the `dict` Python type -- always returns a new reference @@ -1240,6 +1243,7 @@ class sequence : public object { public: PYBIND11_OBJECT_DEFAULT(sequence, object, PySequence_Check) size_t size() const { return (size_t) PySequence_Size(m_ptr); } + bool empty() const { return size() == 0; } detail::sequence_accessor operator[](size_t index) const { return {*this, index}; } detail::item_accessor operator[](handle h) const { return object::operator[](h); } detail::sequence_iterator begin() const { return {*this, 0}; } @@ -1253,6 +1257,7 @@ class list : public object { if (!m_ptr) pybind11_fail("Could not allocate list object!"); } size_t size() const { return (size_t) PyList_Size(m_ptr); } + bool empty() const { return size() == 0; } detail::list_accessor operator[](size_t index) const { return {*this, index}; } detail::item_accessor operator[](handle h) const { return object::operator[](h); } detail::list_iterator begin() const { return {*this, 0}; } @@ -1260,6 +1265,10 @@ class list : public object { template void append(T &&val) const { PyList_Append(m_ptr, detail::object_or_cast(std::forward(val)).ptr()); } + template void insert(size_t index, T &&val) const { + PyList_Insert(m_ptr, static_cast(index), + detail::object_or_cast(std::forward(val)).ptr()); + } }; class args : public tuple { PYBIND11_OBJECT_DEFAULT(args, tuple, PyTuple_Check) }; @@ -1272,10 +1281,14 @@ class set : public object { if (!m_ptr) pybind11_fail("Could not allocate set object!"); } size_t size() const { return (size_t) PySet_Size(m_ptr); } + bool empty() const { return size() == 0; } template bool add(T &&val) const { return PySet_Add(m_ptr, detail::object_or_cast(std::forward(val)).ptr()) == 0; } void clear() const { PySet_Clear(m_ptr); } + template bool contains(T &&val) const { + return PySet_Contains(m_ptr, detail::object_or_cast(std::forward(val)).ptr()) == 1; + } }; class function : public object { @@ -1299,7 +1312,7 @@ class buffer : public object { public: PYBIND11_OBJECT_DEFAULT(buffer, object, PyObject_CheckBuffer) - buffer_info request(bool writable = false) { + buffer_info request(bool writable = false) const { int flags = PyBUF_STRIDES | PyBUF_FORMAT; if (writable) flags |= PyBUF_WRITABLE; Py_buffer *view = new Py_buffer(); diff --git a/libs/pybind11-2.3.0/include/pybind11/stl.h b/libs/pybind11-2.4.3/include/pybind11/stl.h similarity index 100% rename from libs/pybind11-2.3.0/include/pybind11/stl.h rename to libs/pybind11-2.4.3/include/pybind11/stl.h diff --git a/libs/pybind11-2.3.0/include/pybind11/stl_bind.h b/libs/pybind11-2.4.3/include/pybind11/stl_bind.h similarity index 93% rename from libs/pybind11-2.3.0/include/pybind11/stl_bind.h rename to libs/pybind11-2.4.3/include/pybind11/stl_bind.h index 1f87252..d3adaed 100644 --- a/libs/pybind11-2.3.0/include/pybind11/stl_bind.h +++ b/libs/pybind11-2.4.3/include/pybind11/stl_bind.h @@ -115,6 +115,14 @@ void vector_modifiers(enable_if_t= n) + throw index_error(); + return i; + }; + cl.def("append", [](Vector &v, const T &value) { v.push_back(value); }, arg("x"), @@ -159,10 +167,13 @@ void vector_modifiers(enable_if_t v.size()) + [](Vector &v, DiffType i, const T &x) { + // Can't use wrap_i; i == v.size() is OK + if (i < 0) + i += v.size(); + if (i < 0 || (SizeType)i > v.size()) throw index_error(); - v.insert(v.begin() + (DiffType) i, x); + v.insert(v.begin() + i, x); }, arg("i") , arg("x"), "Insert an item at a given position." @@ -180,11 +191,10 @@ void vector_modifiers(enable_if_t= v.size()) - throw index_error(); - T t = v[i]; - v.erase(v.begin() + (DiffType) i); + [wrap_i](Vector &v, DiffType i) { + i = wrap_i(i, v.size()); + T t = v[(SizeType) i]; + v.erase(v.begin() + i); return t; }, arg("i"), @@ -192,10 +202,9 @@ void vector_modifiers(enable_if_t= v.size()) - throw index_error(); - v[i] = t; + [wrap_i](Vector &v, DiffType i, const T &t) { + i = wrap_i(i, v.size()); + v[(SizeType)i] = t; } ); @@ -238,10 +247,9 @@ void vector_modifiers(enable_if_t= v.size()) - throw index_error(); - v.erase(v.begin() + DiffType(i)); + [wrap_i](Vector &v, DiffType i) { + i = wrap_i(i, v.size()); + v.erase(v.begin() + i); }, "Delete the list elements at index ``i``" ); @@ -277,13 +285,21 @@ template void vector_accessor(enable_if_t::value, Class_> &cl) { using T = typename Vector::value_type; using SizeType = typename Vector::size_type; + using DiffType = typename Vector::difference_type; using ItType = typename Vector::iterator; + auto wrap_i = [](DiffType i, SizeType n) { + if (i < 0) + i += n; + if (i < 0 || (SizeType)i >= n) + throw index_error(); + return i; + }; + cl.def("__getitem__", - [](Vector &v, SizeType i) -> T & { - if (i >= v.size()) - throw index_error(); - return v[i]; + [wrap_i](Vector &v, DiffType i) -> T & { + i = wrap_i(i, v.size()); + return v[(SizeType)i]; }, return_value_policy::reference_internal // ref + keepalive ); @@ -303,12 +319,15 @@ template void vector_accessor(enable_if_t::value, Class_> &cl) { using T = typename Vector::value_type; using SizeType = typename Vector::size_type; + using DiffType = typename Vector::difference_type; using ItType = typename Vector::iterator; cl.def("__getitem__", - [](const Vector &v, SizeType i) -> T { - if (i >= v.size()) + [](const Vector &v, DiffType i) -> T { + if (i < 0 && (i += v.size()) < 0) + throw index_error(); + if ((SizeType)i >= v.size()) throw index_error(); - return v[i]; + return v[(SizeType)i]; } ); diff --git a/libs/pybind11-2.3.0/pybind11/__init__.py b/libs/pybind11-2.4.3/pybind11/__init__.py similarity index 75% rename from libs/pybind11-2.3.0/pybind11/__init__.py rename to libs/pybind11-2.4.3/pybind11/__init__.py index 5782ffe..c625e8c 100644 --- a/libs/pybind11-2.3.0/pybind11/__init__.py +++ b/libs/pybind11-2.4.3/pybind11/__init__.py @@ -10,9 +10,17 @@ def get_include(user=False): virtualenv = hasattr(sys, 'real_prefix') or \ sys.prefix != getattr(sys, "base_prefix", sys.prefix) + # Are we running in a conda environment? + conda = os.path.exists(os.path.join(sys.prefix, 'conda-meta')) + if virtualenv: return os.path.join(sys.prefix, 'include', 'site', 'python' + sys.version[:3]) + elif conda: + if os.name == 'nt': + return os.path.join(sys.prefix, 'Library', 'include') + else: + return os.path.join(sys.prefix, 'include') else: dist = Distribution({'name': 'pybind11'}) dist.parse_config_files() diff --git a/libs/pybind11-2.3.0/pybind11/__main__.py b/libs/pybind11-2.4.3/pybind11/__main__.py similarity index 100% rename from libs/pybind11-2.3.0/pybind11/__main__.py rename to libs/pybind11-2.4.3/pybind11/__main__.py diff --git a/libs/pybind11-2.3.0/pybind11/_version.py b/libs/pybind11-2.4.3/pybind11/_version.py similarity index 65% rename from libs/pybind11-2.3.0/pybind11/_version.py rename to libs/pybind11-2.4.3/pybind11/_version.py index 6874145..2709cc5 100644 --- a/libs/pybind11-2.3.0/pybind11/_version.py +++ b/libs/pybind11-2.4.3/pybind11/_version.py @@ -1,2 +1,2 @@ -version_info = (2, 3, 0) +version_info = (2, 4, 3) __version__ = '.'.join(map(str, version_info)) diff --git a/libs/pybind11-2.3.0/setup.cfg b/libs/pybind11-2.4.3/setup.cfg similarity index 100% rename from libs/pybind11-2.3.0/setup.cfg rename to libs/pybind11-2.4.3/setup.cfg diff --git a/libs/pybind11-2.3.0/setup.py b/libs/pybind11-2.4.3/setup.py similarity index 100% rename from libs/pybind11-2.3.0/setup.py rename to libs/pybind11-2.4.3/setup.py diff --git a/libs/pybind11-2.3.0/tests/CMakeLists.txt b/libs/pybind11-2.4.3/tests/CMakeLists.txt similarity index 92% rename from libs/pybind11-2.3.0/tests/CMakeLists.txt rename to libs/pybind11-2.4.3/tests/CMakeLists.txt index 9a70110..765c47a 100644 --- a/libs/pybind11-2.3.0/tests/CMakeLists.txt +++ b/libs/pybind11-2.4.3/tests/CMakeLists.txt @@ -26,6 +26,7 @@ endif() # Full set of test files (you can override these; see below) set(PYBIND11_TEST_FILES + test_async.cpp test_buffers.cpp test_builtin_casters.cpp test_call_policies.cpp @@ -71,6 +72,13 @@ if (PYBIND11_TEST_OVERRIDE) set(PYBIND11_TEST_FILES ${PYBIND11_TEST_OVERRIDE}) endif() +# Skip test_async for Python < 3.5 +list(FIND PYBIND11_TEST_FILES test_async.cpp PYBIND11_TEST_FILES_ASYNC_I) +if((PYBIND11_TEST_FILES_ASYNC_I GREATER -1) AND ("${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}" VERSION_LESS 3.5)) + message(STATUS "Skipping test_async because Python version ${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR} < 3.5") + list(REMOVE_AT PYBIND11_TEST_FILES ${PYBIND11_TEST_FILES_ASYNC_I}) +endif() + string(REPLACE ".cpp" ".py" PYBIND11_PYTEST_FILES "${PYBIND11_TEST_FILES}") # Contains the set of test files that require pybind11_cross_module_tests to be @@ -83,6 +91,10 @@ set(PYBIND11_CROSS_MODULE_TESTS test_stl_binders.py ) +set(PYBIND11_CROSS_MODULE_GIL_TESTS + test_gil_scoped.py +) + # Check if Eigen is available; if not, remove from PYBIND11_TEST_FILES (but # keep it in PYBIND11_PYTEST_FILES, so that we get the "eigen is not installed" # skip message). @@ -150,6 +162,14 @@ foreach(t ${PYBIND11_CROSS_MODULE_TESTS}) endif() endforeach() +foreach(t ${PYBIND11_CROSS_MODULE_GIL_TESTS}) + list(FIND PYBIND11_PYTEST_FILES ${t} i) + if (i GREATER -1) + list(APPEND test_targets cross_module_gil_utils) + break() + endif() +endforeach() + set(testdir ${CMAKE_CURRENT_SOURCE_DIR}) foreach(target ${test_targets}) set(test_files ${PYBIND11_TEST_FILES}) diff --git a/libs/pybind11-2.3.0/tests/conftest.py b/libs/pybind11-2.4.3/tests/conftest.py similarity index 97% rename from libs/pybind11-2.3.0/tests/conftest.py rename to libs/pybind11-2.4.3/tests/conftest.py index 55d9d0d..57f681c 100644 --- a/libs/pybind11-2.3.0/tests/conftest.py +++ b/libs/pybind11-2.4.3/tests/conftest.py @@ -17,6 +17,11 @@ _long_marker = re.compile(r'([0-9])L') _hexadecimal = re.compile(r'0x[0-9a-fA-F]+') +# test_async.py requires support for async and await +collect_ignore = [] +if sys.version_info[:2] < (3, 5): + collect_ignore.append("test_async.py") + def _strip_and_dedent(s): """For triple-quote strings""" diff --git a/libs/pybind11-2.3.0/tests/constructor_stats.h b/libs/pybind11-2.4.3/tests/constructor_stats.h similarity index 100% rename from libs/pybind11-2.3.0/tests/constructor_stats.h rename to libs/pybind11-2.4.3/tests/constructor_stats.h diff --git a/libs/pybind11-2.4.3/tests/cross_module_gil_utils.cpp b/libs/pybind11-2.4.3/tests/cross_module_gil_utils.cpp new file mode 100644 index 0000000..07db9f6 --- /dev/null +++ b/libs/pybind11-2.4.3/tests/cross_module_gil_utils.cpp @@ -0,0 +1,73 @@ +/* + tests/cross_module_gil_utils.cpp -- tools for acquiring GIL from a different module + + Copyright (c) 2019 Google LLC + + All rights reserved. Use of this source code is governed by a + BSD-style license that can be found in the LICENSE file. +*/ +#include +#include + +// This file mimics a DSO that makes pybind11 calls but does not define a +// PYBIND11_MODULE. The purpose is to test that such a DSO can create a +// py::gil_scoped_acquire when the running thread is in a GIL-released state. +// +// Note that we define a Python module here for convenience, but in general +// this need not be the case. The typical scenario would be a DSO that implements +// shared logic used internally by multiple pybind11 modules. + +namespace { + +namespace py = pybind11; +void gil_acquire() { py::gil_scoped_acquire gil; } + +constexpr char kModuleName[] = "cross_module_gil_utils"; + +#if PY_MAJOR_VERSION >= 3 +struct PyModuleDef moduledef = { + PyModuleDef_HEAD_INIT, + kModuleName, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL +}; +#else +PyMethodDef module_methods[] = { + {NULL, NULL, 0, NULL} +}; +#endif + +} // namespace + +extern "C" PYBIND11_EXPORT +#if PY_MAJOR_VERSION >= 3 +PyObject* PyInit_cross_module_gil_utils() +#else +void initcross_module_gil_utils() +#endif +{ + + PyObject* m = +#if PY_MAJOR_VERSION >= 3 + PyModule_Create(&moduledef); +#else + Py_InitModule(kModuleName, module_methods); +#endif + + if (m != NULL) { + static_assert( + sizeof(&gil_acquire) == sizeof(void*), + "Function pointer must have the same size as void*"); + PyModule_AddObject(m, "gil_acquire_funcaddr", + PyLong_FromVoidPtr(reinterpret_cast(&gil_acquire))); + } + +#if PY_MAJOR_VERSION >= 3 + return m; +#endif +} diff --git a/libs/pybind11-2.3.0/tests/local_bindings.h b/libs/pybind11-2.4.3/tests/local_bindings.h similarity index 100% rename from libs/pybind11-2.3.0/tests/local_bindings.h rename to libs/pybind11-2.4.3/tests/local_bindings.h diff --git a/libs/pybind11-2.3.0/tests/object.h b/libs/pybind11-2.4.3/tests/object.h similarity index 100% rename from libs/pybind11-2.3.0/tests/object.h rename to libs/pybind11-2.4.3/tests/object.h diff --git a/libs/pybind11-2.3.0/tests/pybind11_cross_module_tests.cpp b/libs/pybind11-2.4.3/tests/pybind11_cross_module_tests.cpp similarity index 100% rename from libs/pybind11-2.3.0/tests/pybind11_cross_module_tests.cpp rename to libs/pybind11-2.4.3/tests/pybind11_cross_module_tests.cpp diff --git a/libs/pybind11-2.3.0/tests/pybind11_tests.cpp b/libs/pybind11-2.4.3/tests/pybind11_tests.cpp similarity index 100% rename from libs/pybind11-2.3.0/tests/pybind11_tests.cpp rename to libs/pybind11-2.4.3/tests/pybind11_tests.cpp diff --git a/libs/pybind11-2.3.0/tests/pybind11_tests.h b/libs/pybind11-2.4.3/tests/pybind11_tests.h similarity index 100% rename from libs/pybind11-2.3.0/tests/pybind11_tests.h rename to libs/pybind11-2.4.3/tests/pybind11_tests.h diff --git a/libs/pybind11-2.3.0/tests/pytest.ini b/libs/pybind11-2.4.3/tests/pytest.ini similarity index 100% rename from libs/pybind11-2.3.0/tests/pytest.ini rename to libs/pybind11-2.4.3/tests/pytest.ini diff --git a/libs/pybind11-2.4.3/tests/test_async.cpp b/libs/pybind11-2.4.3/tests/test_async.cpp new file mode 100644 index 0000000..f0ad0d5 --- /dev/null +++ b/libs/pybind11-2.4.3/tests/test_async.cpp @@ -0,0 +1,26 @@ +/* + tests/test_async.cpp -- __await__ support + + Copyright (c) 2019 Google Inc. + + All rights reserved. Use of this source code is governed by a + BSD-style license that can be found in the LICENSE file. +*/ + +#include "pybind11_tests.h" + +TEST_SUBMODULE(async_module, m) { + struct DoesNotSupportAsync {}; + py::class_(m, "DoesNotSupportAsync") + .def(py::init<>()); + struct SupportsAsync {}; + py::class_(m, "SupportsAsync") + .def(py::init<>()) + .def("__await__", [](const SupportsAsync& self) -> py::object { + static_cast(self); + py::object loop = py::module::import("asyncio.events").attr("get_event_loop")(); + py::object f = loop.attr("create_future")(); + f.attr("set_result")(5); + return f.attr("__await__")(); + }); +} diff --git a/libs/pybind11-2.4.3/tests/test_async.py b/libs/pybind11-2.4.3/tests/test_async.py new file mode 100644 index 0000000..e1c959d --- /dev/null +++ b/libs/pybind11-2.4.3/tests/test_async.py @@ -0,0 +1,23 @@ +import asyncio +import pytest +from pybind11_tests import async_module as m + + +@pytest.fixture +def event_loop(): + loop = asyncio.new_event_loop() + yield loop + loop.close() + + +async def get_await_result(x): + return await x + + +def test_await(event_loop): + assert 5 == event_loop.run_until_complete(get_await_result(m.SupportsAsync())) + + +def test_await_missing(event_loop): + with pytest.raises(TypeError): + event_loop.run_until_complete(get_await_result(m.DoesNotSupportAsync())) diff --git a/libs/pybind11-2.3.0/tests/test_buffers.cpp b/libs/pybind11-2.4.3/tests/test_buffers.cpp similarity index 99% rename from libs/pybind11-2.3.0/tests/test_buffers.cpp rename to libs/pybind11-2.4.3/tests/test_buffers.cpp index 5199cf6..433dfee 100644 --- a/libs/pybind11-2.3.0/tests/test_buffers.cpp +++ b/libs/pybind11-2.4.3/tests/test_buffers.cpp @@ -78,7 +78,7 @@ TEST_SUBMODULE(buffers, m) { py::class_(m, "Matrix", py::buffer_protocol()) .def(py::init()) /// Construct from a buffer - .def(py::init([](py::buffer b) { + .def(py::init([](py::buffer const b) { py::buffer_info info = b.request(); if (info.format != py::format_descriptor::format() || info.ndim != 2) throw std::runtime_error("Incompatible buffer format!"); diff --git a/libs/pybind11-2.3.0/tests/test_buffers.py b/libs/pybind11-2.4.3/tests/test_buffers.py similarity index 100% rename from libs/pybind11-2.3.0/tests/test_buffers.py rename to libs/pybind11-2.4.3/tests/test_buffers.py diff --git a/libs/pybind11-2.3.0/tests/test_builtin_casters.cpp b/libs/pybind11-2.4.3/tests/test_builtin_casters.cpp similarity index 100% rename from libs/pybind11-2.3.0/tests/test_builtin_casters.cpp rename to libs/pybind11-2.4.3/tests/test_builtin_casters.cpp diff --git a/libs/pybind11-2.3.0/tests/test_builtin_casters.py b/libs/pybind11-2.4.3/tests/test_builtin_casters.py similarity index 100% rename from libs/pybind11-2.3.0/tests/test_builtin_casters.py rename to libs/pybind11-2.4.3/tests/test_builtin_casters.py diff --git a/libs/pybind11-2.3.0/tests/test_call_policies.cpp b/libs/pybind11-2.4.3/tests/test_call_policies.cpp similarity index 100% rename from libs/pybind11-2.3.0/tests/test_call_policies.cpp rename to libs/pybind11-2.4.3/tests/test_call_policies.cpp diff --git a/libs/pybind11-2.3.0/tests/test_call_policies.py b/libs/pybind11-2.4.3/tests/test_call_policies.py similarity index 100% rename from libs/pybind11-2.3.0/tests/test_call_policies.py rename to libs/pybind11-2.4.3/tests/test_call_policies.py diff --git a/libs/pybind11-2.3.0/tests/test_callbacks.cpp b/libs/pybind11-2.4.3/tests/test_callbacks.cpp similarity index 100% rename from libs/pybind11-2.3.0/tests/test_callbacks.cpp rename to libs/pybind11-2.4.3/tests/test_callbacks.cpp diff --git a/libs/pybind11-2.3.0/tests/test_callbacks.py b/libs/pybind11-2.4.3/tests/test_callbacks.py similarity index 100% rename from libs/pybind11-2.3.0/tests/test_callbacks.py rename to libs/pybind11-2.4.3/tests/test_callbacks.py diff --git a/libs/pybind11-2.3.0/tests/test_chrono.cpp b/libs/pybind11-2.4.3/tests/test_chrono.cpp similarity index 87% rename from libs/pybind11-2.3.0/tests/test_chrono.cpp rename to libs/pybind11-2.4.3/tests/test_chrono.cpp index 195a93b..899d08d 100644 --- a/libs/pybind11-2.3.0/tests/test_chrono.cpp +++ b/libs/pybind11-2.4.3/tests/test_chrono.cpp @@ -14,6 +14,10 @@ TEST_SUBMODULE(chrono, m) { using system_time = std::chrono::system_clock::time_point; using steady_time = std::chrono::steady_clock::time_point; + + using timespan = std::chrono::duration; + using timestamp = std::chrono::time_point; + // test_chrono_system_clock // Return the current time off the wall clock m.def("test_chrono1", []() { return std::chrono::system_clock::now(); }); @@ -44,4 +48,8 @@ TEST_SUBMODULE(chrono, m) { // Float durations (issue #719) m.def("test_chrono_float_diff", [](std::chrono::duration a, std::chrono::duration b) { return a - b; }); + + m.def("test_nano_timepoint", [](timestamp start, timespan delta) -> timestamp { + return start + delta; + }); } diff --git a/libs/pybind11-2.3.0/tests/test_chrono.py b/libs/pybind11-2.4.3/tests/test_chrono.py similarity index 56% rename from libs/pybind11-2.3.0/tests/test_chrono.py rename to libs/pybind11-2.4.3/tests/test_chrono.py index 2b75bd1..55c9544 100644 --- a/libs/pybind11-2.3.0/tests/test_chrono.py +++ b/libs/pybind11-2.4.3/tests/test_chrono.py @@ -40,6 +40,62 @@ def test_chrono_system_clock_roundtrip(): assert diff.microseconds == 0 +def test_chrono_system_clock_roundtrip_date(): + date1 = datetime.date.today() + + # Roundtrip the time + datetime2 = m.test_chrono2(date1) + date2 = datetime2.date() + time2 = datetime2.time() + + # The returned value should be a datetime + assert isinstance(datetime2, datetime.datetime) + assert isinstance(date2, datetime.date) + assert isinstance(time2, datetime.time) + + # They should be identical (no information lost on roundtrip) + diff = abs(date1 - date2) + assert diff.days == 0 + assert diff.seconds == 0 + assert diff.microseconds == 0 + + # Year, Month & Day should be the same after the round trip + assert date1.year == date2.year + assert date1.month == date2.month + assert date1.day == date2.day + + # There should be no time information + assert time2.hour == 0 + assert time2.minute == 0 + assert time2.second == 0 + assert time2.microsecond == 0 + + +def test_chrono_system_clock_roundtrip_time(): + time1 = datetime.datetime.today().time() + + # Roundtrip the time + datetime2 = m.test_chrono2(time1) + date2 = datetime2.date() + time2 = datetime2.time() + + # The returned value should be a datetime + assert isinstance(datetime2, datetime.datetime) + assert isinstance(date2, datetime.date) + assert isinstance(time2, datetime.time) + + # Hour, Minute, Second & Microsecond should be the same after the round trip + assert time1.hour == time2.hour + assert time1.minute == time2.minute + assert time1.second == time2.second + assert time1.microsecond == time2.microsecond + + # There should be no date information (i.e. date = python base date) + assert date2.year == 1970 + assert date2.month == 1 + assert date2.day == 1 + + def test_chrono_duration_roundtrip(): # Get the difference between two times (a timedelta) @@ -70,6 +126,19 @@ def test_chrono_duration_subtraction_equivalence(): assert cpp_diff.microseconds == diff.microseconds +def test_chrono_duration_subtraction_equivalence_date(): + + date1 = datetime.date.today() + date2 = datetime.date.today() + + diff = date2 - date1 + cpp_diff = m.test_chrono4(date2, date1) + + assert cpp_diff.days == diff.days + assert cpp_diff.seconds == diff.seconds + assert cpp_diff.microseconds == diff.microseconds + + def test_chrono_steady_clock(): time1 = m.test_chrono5() assert isinstance(time1, datetime.timedelta) @@ -99,3 +168,9 @@ def test_floating_point_duration(): diff = m.test_chrono_float_diff(43.789012, 1.123456) assert diff.seconds == 42 assert 665556 <= diff.microseconds <= 665557 + + +def test_nano_timepoint(): + time = datetime.datetime.now() + time1 = m.test_nano_timepoint(time, datetime.timedelta(seconds=60)) + assert(time1 == time + datetime.timedelta(seconds=60)) diff --git a/libs/pybind11-2.3.0/tests/test_class.cpp b/libs/pybind11-2.4.3/tests/test_class.cpp similarity index 100% rename from libs/pybind11-2.3.0/tests/test_class.cpp rename to libs/pybind11-2.4.3/tests/test_class.cpp diff --git a/libs/pybind11-2.3.0/tests/test_class.py b/libs/pybind11-2.4.3/tests/test_class.py similarity index 100% rename from libs/pybind11-2.3.0/tests/test_class.py rename to libs/pybind11-2.4.3/tests/test_class.py diff --git a/libs/pybind11-2.3.0/tests/test_cmake_build/CMakeLists.txt b/libs/pybind11-2.4.3/tests/test_cmake_build/CMakeLists.txt similarity index 100% rename from libs/pybind11-2.3.0/tests/test_cmake_build/CMakeLists.txt rename to libs/pybind11-2.4.3/tests/test_cmake_build/CMakeLists.txt diff --git a/libs/pybind11-2.3.0/tests/test_cmake_build/embed.cpp b/libs/pybind11-2.4.3/tests/test_cmake_build/embed.cpp similarity index 100% rename from libs/pybind11-2.3.0/tests/test_cmake_build/embed.cpp rename to libs/pybind11-2.4.3/tests/test_cmake_build/embed.cpp diff --git a/libs/pybind11-2.3.0/tests/test_cmake_build/installed_embed/CMakeLists.txt b/libs/pybind11-2.4.3/tests/test_cmake_build/installed_embed/CMakeLists.txt similarity index 100% rename from libs/pybind11-2.3.0/tests/test_cmake_build/installed_embed/CMakeLists.txt rename to libs/pybind11-2.4.3/tests/test_cmake_build/installed_embed/CMakeLists.txt diff --git a/libs/pybind11-2.3.0/tests/test_cmake_build/installed_function/CMakeLists.txt b/libs/pybind11-2.4.3/tests/test_cmake_build/installed_function/CMakeLists.txt similarity index 100% rename from libs/pybind11-2.3.0/tests/test_cmake_build/installed_function/CMakeLists.txt rename to libs/pybind11-2.4.3/tests/test_cmake_build/installed_function/CMakeLists.txt diff --git a/libs/pybind11-2.3.0/tests/test_cmake_build/installed_target/CMakeLists.txt b/libs/pybind11-2.4.3/tests/test_cmake_build/installed_target/CMakeLists.txt similarity index 100% rename from libs/pybind11-2.3.0/tests/test_cmake_build/installed_target/CMakeLists.txt rename to libs/pybind11-2.4.3/tests/test_cmake_build/installed_target/CMakeLists.txt diff --git a/libs/pybind11-2.3.0/tests/test_cmake_build/main.cpp b/libs/pybind11-2.4.3/tests/test_cmake_build/main.cpp similarity index 100% rename from libs/pybind11-2.3.0/tests/test_cmake_build/main.cpp rename to libs/pybind11-2.4.3/tests/test_cmake_build/main.cpp diff --git a/libs/pybind11-2.3.0/tests/test_cmake_build/subdirectory_embed/CMakeLists.txt b/libs/pybind11-2.4.3/tests/test_cmake_build/subdirectory_embed/CMakeLists.txt similarity index 100% rename from libs/pybind11-2.3.0/tests/test_cmake_build/subdirectory_embed/CMakeLists.txt rename to libs/pybind11-2.4.3/tests/test_cmake_build/subdirectory_embed/CMakeLists.txt diff --git a/libs/pybind11-2.3.0/tests/test_cmake_build/subdirectory_function/CMakeLists.txt b/libs/pybind11-2.4.3/tests/test_cmake_build/subdirectory_function/CMakeLists.txt similarity index 100% rename from libs/pybind11-2.3.0/tests/test_cmake_build/subdirectory_function/CMakeLists.txt rename to libs/pybind11-2.4.3/tests/test_cmake_build/subdirectory_function/CMakeLists.txt diff --git a/libs/pybind11-2.3.0/tests/test_cmake_build/subdirectory_target/CMakeLists.txt b/libs/pybind11-2.4.3/tests/test_cmake_build/subdirectory_target/CMakeLists.txt similarity index 100% rename from libs/pybind11-2.3.0/tests/test_cmake_build/subdirectory_target/CMakeLists.txt rename to libs/pybind11-2.4.3/tests/test_cmake_build/subdirectory_target/CMakeLists.txt diff --git a/libs/pybind11-2.3.0/tests/test_cmake_build/test.py b/libs/pybind11-2.4.3/tests/test_cmake_build/test.py similarity index 100% rename from libs/pybind11-2.3.0/tests/test_cmake_build/test.py rename to libs/pybind11-2.4.3/tests/test_cmake_build/test.py diff --git a/libs/pybind11-2.3.0/tests/test_constants_and_functions.cpp b/libs/pybind11-2.4.3/tests/test_constants_and_functions.cpp similarity index 100% rename from libs/pybind11-2.3.0/tests/test_constants_and_functions.cpp rename to libs/pybind11-2.4.3/tests/test_constants_and_functions.cpp diff --git a/libs/pybind11-2.3.0/tests/test_constants_and_functions.py b/libs/pybind11-2.4.3/tests/test_constants_and_functions.py similarity index 100% rename from libs/pybind11-2.3.0/tests/test_constants_and_functions.py rename to libs/pybind11-2.4.3/tests/test_constants_and_functions.py diff --git a/libs/pybind11-2.3.0/tests/test_copy_move.cpp b/libs/pybind11-2.4.3/tests/test_copy_move.cpp similarity index 100% rename from libs/pybind11-2.3.0/tests/test_copy_move.cpp rename to libs/pybind11-2.4.3/tests/test_copy_move.cpp diff --git a/libs/pybind11-2.3.0/tests/test_copy_move.py b/libs/pybind11-2.4.3/tests/test_copy_move.py similarity index 100% rename from libs/pybind11-2.3.0/tests/test_copy_move.py rename to libs/pybind11-2.4.3/tests/test_copy_move.py diff --git a/libs/pybind11-2.3.0/tests/test_docstring_options.cpp b/libs/pybind11-2.4.3/tests/test_docstring_options.cpp similarity index 100% rename from libs/pybind11-2.3.0/tests/test_docstring_options.cpp rename to libs/pybind11-2.4.3/tests/test_docstring_options.cpp diff --git a/libs/pybind11-2.3.0/tests/test_docstring_options.py b/libs/pybind11-2.4.3/tests/test_docstring_options.py similarity index 100% rename from libs/pybind11-2.3.0/tests/test_docstring_options.py rename to libs/pybind11-2.4.3/tests/test_docstring_options.py diff --git a/libs/pybind11-2.3.0/tests/test_eigen.cpp b/libs/pybind11-2.4.3/tests/test_eigen.cpp similarity index 100% rename from libs/pybind11-2.3.0/tests/test_eigen.cpp rename to libs/pybind11-2.4.3/tests/test_eigen.cpp diff --git a/libs/pybind11-2.3.0/tests/test_eigen.py b/libs/pybind11-2.4.3/tests/test_eigen.py similarity index 99% rename from libs/pybind11-2.3.0/tests/test_eigen.py rename to libs/pybind11-2.4.3/tests/test_eigen.py index 45f64ca..55d9351 100644 --- a/libs/pybind11-2.3.0/tests/test_eigen.py +++ b/libs/pybind11-2.4.3/tests/test_eigen.py @@ -679,10 +679,10 @@ def test_issue1105(): # These should still fail (incompatible dimensions): with pytest.raises(TypeError) as excinfo: m.iss1105_row(np.ones((7, 1))) - assert "incompatible function arguments" in str(excinfo) + assert "incompatible function arguments" in str(excinfo.value) with pytest.raises(TypeError) as excinfo: m.iss1105_col(np.ones((1, 7))) - assert "incompatible function arguments" in str(excinfo) + assert "incompatible function arguments" in str(excinfo.value) def test_custom_operator_new(): diff --git a/libs/pybind11-2.3.0/tests/test_embed/CMakeLists.txt b/libs/pybind11-2.4.3/tests/test_embed/CMakeLists.txt similarity index 100% rename from libs/pybind11-2.3.0/tests/test_embed/CMakeLists.txt rename to libs/pybind11-2.4.3/tests/test_embed/CMakeLists.txt diff --git a/libs/pybind11-2.3.0/tests/test_embed/catch.cpp b/libs/pybind11-2.4.3/tests/test_embed/catch.cpp similarity index 100% rename from libs/pybind11-2.3.0/tests/test_embed/catch.cpp rename to libs/pybind11-2.4.3/tests/test_embed/catch.cpp diff --git a/libs/pybind11-2.3.0/tests/test_embed/external_module.cpp b/libs/pybind11-2.4.3/tests/test_embed/external_module.cpp similarity index 100% rename from libs/pybind11-2.3.0/tests/test_embed/external_module.cpp rename to libs/pybind11-2.4.3/tests/test_embed/external_module.cpp diff --git a/libs/pybind11-2.3.0/tests/test_embed/test_interpreter.cpp b/libs/pybind11-2.4.3/tests/test_embed/test_interpreter.cpp similarity index 100% rename from libs/pybind11-2.3.0/tests/test_embed/test_interpreter.cpp rename to libs/pybind11-2.4.3/tests/test_embed/test_interpreter.cpp diff --git a/libs/pybind11-2.3.0/tests/test_embed/test_interpreter.py b/libs/pybind11-2.4.3/tests/test_embed/test_interpreter.py similarity index 100% rename from libs/pybind11-2.3.0/tests/test_embed/test_interpreter.py rename to libs/pybind11-2.4.3/tests/test_embed/test_interpreter.py diff --git a/libs/pybind11-2.3.0/tests/test_enum.cpp b/libs/pybind11-2.4.3/tests/test_enum.cpp similarity index 96% rename from libs/pybind11-2.3.0/tests/test_enum.cpp rename to libs/pybind11-2.4.3/tests/test_enum.cpp index 498a00e..3153089 100644 --- a/libs/pybind11-2.3.0/tests/test_enum.cpp +++ b/libs/pybind11-2.4.3/tests/test_enum.cpp @@ -13,11 +13,13 @@ TEST_SUBMODULE(enums, m) { // test_unscoped_enum enum UnscopedEnum { EOne = 1, - ETwo + ETwo, + EThree }; py::enum_(m, "UnscopedEnum", py::arithmetic(), "An unscoped enumeration") .value("EOne", EOne, "Docstring for EOne") .value("ETwo", ETwo, "Docstring for ETwo") + .value("EThree", EThree, "Docstring for EThree") .export_values(); // test_scoped_enum diff --git a/libs/pybind11-2.3.0/tests/test_enum.py b/libs/pybind11-2.4.3/tests/test_enum.py similarity index 77% rename from libs/pybind11-2.3.0/tests/test_enum.py rename to libs/pybind11-2.4.3/tests/test_enum.py index d0989ad..7fe9b61 100644 --- a/libs/pybind11-2.3.0/tests/test_enum.py +++ b/libs/pybind11-2.4.3/tests/test_enum.py @@ -21,7 +21,7 @@ def test_unscoped_enum(): # __members__ property assert m.UnscopedEnum.__members__ == \ - {"EOne": m.UnscopedEnum.EOne, "ETwo": m.UnscopedEnum.ETwo} + {"EOne": m.UnscopedEnum.EOne, "ETwo": m.UnscopedEnum.ETwo, "EThree": m.UnscopedEnum.EThree} # __members__ readonly with pytest.raises(AttributeError): m.UnscopedEnum.__members__ = {} @@ -29,23 +29,18 @@ def test_unscoped_enum(): foo = m.UnscopedEnum.__members__ foo["bar"] = "baz" assert m.UnscopedEnum.__members__ == \ - {"EOne": m.UnscopedEnum.EOne, "ETwo": m.UnscopedEnum.ETwo} + {"EOne": m.UnscopedEnum.EOne, "ETwo": m.UnscopedEnum.ETwo, "EThree": m.UnscopedEnum.EThree} - assert m.UnscopedEnum.__doc__ == \ - '''An unscoped enumeration + for docstring_line in '''An unscoped enumeration Members: EOne : Docstring for EOne - ETwo : Docstring for ETwo''' or m.UnscopedEnum.__doc__ == \ - '''An unscoped enumeration - -Members: - ETwo : Docstring for ETwo - EOne : Docstring for EOne''' + EThree : Docstring for EThree'''.split('\n'): + assert docstring_line in m.UnscopedEnum.__doc__ # Unscoped enums will accept ==/!= int comparisons y = m.UnscopedEnum.ETwo @@ -53,6 +48,38 @@ def test_unscoped_enum(): assert 2 == y assert y != 3 assert 3 != y + # Compare with None + assert (y != None) # noqa: E711 + assert not (y == None) # noqa: E711 + # Compare with an object + assert (y != object()) + assert not (y == object()) + # Compare with string + assert y != "2" + assert "2" != y + assert not ("2" == y) + assert not (y == "2") + + with pytest.raises(TypeError): + y < object() + + with pytest.raises(TypeError): + y <= object() + + with pytest.raises(TypeError): + y > object() + + with pytest.raises(TypeError): + y >= object() + + with pytest.raises(TypeError): + y | object() + + with pytest.raises(TypeError): + y & object() + + with pytest.raises(TypeError): + y ^ object() assert int(m.UnscopedEnum.ETwo) == 2 assert str(m.UnscopedEnum(2)) == "UnscopedEnum.ETwo" @@ -71,6 +98,11 @@ def test_unscoped_enum(): assert not (m.UnscopedEnum.ETwo < m.UnscopedEnum.EOne) assert not (2 < m.UnscopedEnum.EOne) + # arithmetic + assert m.UnscopedEnum.EOne & m.UnscopedEnum.EThree == m.UnscopedEnum.EOne + assert m.UnscopedEnum.EOne | m.UnscopedEnum.ETwo == m.UnscopedEnum.EThree + assert m.UnscopedEnum.EOne ^ m.UnscopedEnum.EThree == m.UnscopedEnum.ETwo + def test_scoped_enum(): assert m.test_scoped_enum(m.ScopedEnum.Three) == "ScopedEnum::Three" @@ -82,6 +114,12 @@ def test_scoped_enum(): assert not 3 == z assert z != 3 assert 3 != z + # Compare with None + assert (z != None) # noqa: E711 + assert not (z == None) # noqa: E711 + # Compare with an object + assert (z != object()) + assert not (z == object()) # Scoped enums will *NOT* accept >, <, >= and <= int comparisons (Will throw exceptions) with pytest.raises(TypeError): z > 3 @@ -140,6 +178,7 @@ def test_binary_operators(): assert int(m.Flags.Read | m.Flags.Execute) == 5 assert int(m.Flags.Write | m.Flags.Execute) == 3 assert int(m.Flags.Write | 1) == 3 + assert ~m.Flags.Write == -3 state = m.Flags.Read | m.Flags.Write assert (state & m.Flags.Read) != 0 diff --git a/libs/pybind11-2.3.0/tests/test_eval.cpp b/libs/pybind11-2.4.3/tests/test_eval.cpp similarity index 100% rename from libs/pybind11-2.3.0/tests/test_eval.cpp rename to libs/pybind11-2.4.3/tests/test_eval.cpp diff --git a/libs/pybind11-2.3.0/tests/test_eval.py b/libs/pybind11-2.4.3/tests/test_eval.py similarity index 100% rename from libs/pybind11-2.3.0/tests/test_eval.py rename to libs/pybind11-2.4.3/tests/test_eval.py diff --git a/libs/pybind11-2.3.0/tests/test_eval_call.py b/libs/pybind11-2.4.3/tests/test_eval_call.py similarity index 100% rename from libs/pybind11-2.3.0/tests/test_eval_call.py rename to libs/pybind11-2.4.3/tests/test_eval_call.py diff --git a/libs/pybind11-2.3.0/tests/test_exceptions.cpp b/libs/pybind11-2.4.3/tests/test_exceptions.cpp similarity index 100% rename from libs/pybind11-2.3.0/tests/test_exceptions.cpp rename to libs/pybind11-2.4.3/tests/test_exceptions.cpp diff --git a/libs/pybind11-2.3.0/tests/test_exceptions.py b/libs/pybind11-2.4.3/tests/test_exceptions.py similarity index 100% rename from libs/pybind11-2.3.0/tests/test_exceptions.py rename to libs/pybind11-2.4.3/tests/test_exceptions.py diff --git a/libs/pybind11-2.3.0/tests/test_factory_constructors.cpp b/libs/pybind11-2.4.3/tests/test_factory_constructors.cpp similarity index 100% rename from libs/pybind11-2.3.0/tests/test_factory_constructors.cpp rename to libs/pybind11-2.4.3/tests/test_factory_constructors.cpp diff --git a/libs/pybind11-2.3.0/tests/test_factory_constructors.py b/libs/pybind11-2.4.3/tests/test_factory_constructors.py similarity index 100% rename from libs/pybind11-2.3.0/tests/test_factory_constructors.py rename to libs/pybind11-2.4.3/tests/test_factory_constructors.py diff --git a/libs/pybind11-2.3.0/tests/test_gil_scoped.cpp b/libs/pybind11-2.4.3/tests/test_gil_scoped.cpp similarity index 78% rename from libs/pybind11-2.3.0/tests/test_gil_scoped.cpp rename to libs/pybind11-2.4.3/tests/test_gil_scoped.cpp index cb0010e..76c17fd 100644 --- a/libs/pybind11-2.3.0/tests/test_gil_scoped.cpp +++ b/libs/pybind11-2.4.3/tests/test_gil_scoped.cpp @@ -41,4 +41,12 @@ TEST_SUBMODULE(gil_scoped, m) { [](VirtClass &virt) { virt.virtual_func(); }); m.def("test_callback_pure_virtual_func", [](VirtClass &virt) { virt.pure_virtual_func(); }); + m.def("test_cross_module_gil", + []() { + auto cm = py::module::import("cross_module_gil_utils"); + auto gil_acquire = reinterpret_cast( + PyLong_AsVoidPtr(cm.attr("gil_acquire_funcaddr").ptr())); + py::gil_scoped_release gil_release; + gil_acquire(); + }); } diff --git a/libs/pybind11-2.3.0/tests/test_gil_scoped.py b/libs/pybind11-2.4.3/tests/test_gil_scoped.py similarity index 93% rename from libs/pybind11-2.3.0/tests/test_gil_scoped.py rename to libs/pybind11-2.4.3/tests/test_gil_scoped.py index 2c72fc6..1548337 100644 --- a/libs/pybind11-2.3.0/tests/test_gil_scoped.py +++ b/libs/pybind11-2.4.3/tests/test_gil_scoped.py @@ -78,3 +78,8 @@ def test_python_to_cpp_to_python_from_process(): This test is for completion, but it was never an issue. """ assert _run_in_process(_python_to_cpp_to_python) == 0 + + +def test_cross_module_gil(): + """Makes sure that the GIL can be acquired by another module from a GIL-released state.""" + m.test_cross_module_gil() # Should not raise a SIGSEGV diff --git a/libs/pybind11-2.3.0/tests/test_iostream.cpp b/libs/pybind11-2.4.3/tests/test_iostream.cpp similarity index 100% rename from libs/pybind11-2.3.0/tests/test_iostream.cpp rename to libs/pybind11-2.4.3/tests/test_iostream.cpp diff --git a/libs/pybind11-2.3.0/tests/test_iostream.py b/libs/pybind11-2.4.3/tests/test_iostream.py similarity index 100% rename from libs/pybind11-2.3.0/tests/test_iostream.py rename to libs/pybind11-2.4.3/tests/test_iostream.py diff --git a/libs/pybind11-2.3.0/tests/test_kwargs_and_defaults.cpp b/libs/pybind11-2.4.3/tests/test_kwargs_and_defaults.cpp similarity index 100% rename from libs/pybind11-2.3.0/tests/test_kwargs_and_defaults.cpp rename to libs/pybind11-2.4.3/tests/test_kwargs_and_defaults.cpp diff --git a/libs/pybind11-2.3.0/tests/test_kwargs_and_defaults.py b/libs/pybind11-2.4.3/tests/test_kwargs_and_defaults.py similarity index 100% rename from libs/pybind11-2.3.0/tests/test_kwargs_and_defaults.py rename to libs/pybind11-2.4.3/tests/test_kwargs_and_defaults.py diff --git a/libs/pybind11-2.3.0/tests/test_local_bindings.cpp b/libs/pybind11-2.4.3/tests/test_local_bindings.cpp similarity index 100% rename from libs/pybind11-2.3.0/tests/test_local_bindings.cpp rename to libs/pybind11-2.4.3/tests/test_local_bindings.cpp diff --git a/libs/pybind11-2.3.0/tests/test_local_bindings.py b/libs/pybind11-2.4.3/tests/test_local_bindings.py similarity index 98% rename from libs/pybind11-2.3.0/tests/test_local_bindings.py rename to libs/pybind11-2.4.3/tests/test_local_bindings.py index b3dc361..b380376 100644 --- a/libs/pybind11-2.3.0/tests/test_local_bindings.py +++ b/libs/pybind11-2.4.3/tests/test_local_bindings.py @@ -220,7 +220,7 @@ def test_cross_module_calls(): c, d = m.MixGL2(3), cm.MixGL2(4) with pytest.raises(TypeError) as excinfo: m.get_gl_value(c) - assert "incompatible function arguments" in str(excinfo) + assert "incompatible function arguments" in str(excinfo.value) with pytest.raises(TypeError) as excinfo: m.get_gl_value(d) - assert "incompatible function arguments" in str(excinfo) + assert "incompatible function arguments" in str(excinfo.value) diff --git a/libs/pybind11-2.3.0/tests/test_methods_and_attributes.cpp b/libs/pybind11-2.4.3/tests/test_methods_and_attributes.cpp similarity index 96% rename from libs/pybind11-2.3.0/tests/test_methods_and_attributes.cpp rename to libs/pybind11-2.4.3/tests/test_methods_and_attributes.cpp index fde152b..c7b82f1 100644 --- a/libs/pybind11-2.3.0/tests/test_methods_and_attributes.cpp +++ b/libs/pybind11-2.4.3/tests/test_methods_and_attributes.cpp @@ -11,6 +11,11 @@ #include "pybind11_tests.h" #include "constructor_stats.h" +#if !defined(PYBIND11_OVERLOAD_CAST) +template +using overload_cast_ = pybind11::detail::overload_cast_impl; +#endif + class ExampleMandA { public: ExampleMandA() { print_default_created(this); } @@ -242,15 +247,16 @@ TEST_SUBMODULE(methods_and_attributes, m) { .def("overloaded_const", py::overload_cast(&ExampleMandA::overloaded, py::const_)) .def("overloaded_const", py::overload_cast(&ExampleMandA::overloaded, py::const_)) #else - .def("overloaded", static_cast(&ExampleMandA::overloaded)) - .def("overloaded", static_cast(&ExampleMandA::overloaded)) - .def("overloaded", static_cast(&ExampleMandA::overloaded)) + // Use both the traditional static_cast method and the C++11 compatible overload_cast_ + .def("overloaded", overload_cast_<>()(&ExampleMandA::overloaded)) + .def("overloaded", overload_cast_()(&ExampleMandA::overloaded)) + .def("overloaded", overload_cast_()(&ExampleMandA::overloaded)) .def("overloaded", static_cast(&ExampleMandA::overloaded)) .def("overloaded", static_cast(&ExampleMandA::overloaded)) .def("overloaded", static_cast(&ExampleMandA::overloaded)) - .def("overloaded_float", static_cast(&ExampleMandA::overloaded)) - .def("overloaded_const", static_cast(&ExampleMandA::overloaded)) - .def("overloaded_const", static_cast(&ExampleMandA::overloaded)) + .def("overloaded_float", overload_cast_()(&ExampleMandA::overloaded)) + .def("overloaded_const", overload_cast_()(&ExampleMandA::overloaded, py::const_)) + .def("overloaded_const", overload_cast_()(&ExampleMandA::overloaded, py::const_)) .def("overloaded_const", static_cast(&ExampleMandA::overloaded)) .def("overloaded_const", static_cast(&ExampleMandA::overloaded)) .def("overloaded_const", static_cast(&ExampleMandA::overloaded)) diff --git a/libs/pybind11-2.3.0/tests/test_methods_and_attributes.py b/libs/pybind11-2.4.3/tests/test_methods_and_attributes.py similarity index 97% rename from libs/pybind11-2.3.0/tests/test_methods_and_attributes.py rename to libs/pybind11-2.4.3/tests/test_methods_and_attributes.py index 86b2c3b..f1c862b 100644 --- a/libs/pybind11-2.3.0/tests/test_methods_and_attributes.py +++ b/libs/pybind11-2.4.3/tests/test_methods_and_attributes.py @@ -100,32 +100,32 @@ def test_properties(): with pytest.raises(AttributeError) as excinfo: dummy = instance.def_property_writeonly # noqa: F841 unused var - assert "unreadable attribute" in str(excinfo) + assert "unreadable attribute" in str(excinfo.value) instance.def_property_writeonly = 4 assert instance.def_property_readonly == 4 with pytest.raises(AttributeError) as excinfo: dummy = instance.def_property_impossible # noqa: F841 unused var - assert "unreadable attribute" in str(excinfo) + assert "unreadable attribute" in str(excinfo.value) with pytest.raises(AttributeError) as excinfo: instance.def_property_impossible = 5 - assert "can't set attribute" in str(excinfo) + assert "can't set attribute" in str(excinfo.value) def test_static_properties(): assert m.TestProperties.def_readonly_static == 1 with pytest.raises(AttributeError) as excinfo: m.TestProperties.def_readonly_static = 2 - assert "can't set attribute" in str(excinfo) + assert "can't set attribute" in str(excinfo.value) m.TestProperties.def_readwrite_static = 2 assert m.TestProperties.def_readwrite_static == 2 with pytest.raises(AttributeError) as excinfo: dummy = m.TestProperties.def_writeonly_static # noqa: F841 unused var - assert "unreadable attribute" in str(excinfo) + assert "unreadable attribute" in str(excinfo.value) m.TestProperties.def_writeonly_static = 3 assert m.TestProperties.def_readonly_static == 3 @@ -133,14 +133,14 @@ def test_static_properties(): assert m.TestProperties.def_property_readonly_static == 3 with pytest.raises(AttributeError) as excinfo: m.TestProperties.def_property_readonly_static = 99 - assert "can't set attribute" in str(excinfo) + assert "can't set attribute" in str(excinfo.value) m.TestProperties.def_property_static = 4 assert m.TestProperties.def_property_static == 4 with pytest.raises(AttributeError) as excinfo: dummy = m.TestProperties.def_property_writeonly_static - assert "unreadable attribute" in str(excinfo) + assert "unreadable attribute" in str(excinfo.value) m.TestProperties.def_property_writeonly_static = 5 assert m.TestProperties.def_property_static == 5 @@ -158,7 +158,7 @@ def test_static_properties(): with pytest.raises(AttributeError) as excinfo: dummy = instance.def_property_writeonly_static # noqa: F841 unused var - assert "unreadable attribute" in str(excinfo) + assert "unreadable attribute" in str(excinfo.value) instance.def_property_writeonly_static = 4 assert instance.def_property_static == 4 diff --git a/libs/pybind11-2.3.0/tests/test_modules.cpp b/libs/pybind11-2.4.3/tests/test_modules.cpp similarity index 100% rename from libs/pybind11-2.3.0/tests/test_modules.cpp rename to libs/pybind11-2.4.3/tests/test_modules.cpp diff --git a/libs/pybind11-2.3.0/tests/test_modules.py b/libs/pybind11-2.4.3/tests/test_modules.py similarity index 100% rename from libs/pybind11-2.3.0/tests/test_modules.py rename to libs/pybind11-2.4.3/tests/test_modules.py diff --git a/libs/pybind11-2.3.0/tests/test_multiple_inheritance.cpp b/libs/pybind11-2.4.3/tests/test_multiple_inheritance.cpp similarity index 100% rename from libs/pybind11-2.3.0/tests/test_multiple_inheritance.cpp rename to libs/pybind11-2.4.3/tests/test_multiple_inheritance.cpp diff --git a/libs/pybind11-2.3.0/tests/test_multiple_inheritance.py b/libs/pybind11-2.4.3/tests/test_multiple_inheritance.py similarity index 100% rename from libs/pybind11-2.3.0/tests/test_multiple_inheritance.py rename to libs/pybind11-2.4.3/tests/test_multiple_inheritance.py diff --git a/libs/pybind11-2.3.0/tests/test_numpy_array.cpp b/libs/pybind11-2.4.3/tests/test_numpy_array.cpp similarity index 82% rename from libs/pybind11-2.3.0/tests/test_numpy_array.cpp rename to libs/pybind11-2.4.3/tests/test_numpy_array.cpp index cdf0b82..156a3bf 100644 --- a/libs/pybind11-2.3.0/tests/test_numpy_array.cpp +++ b/libs/pybind11-2.4.3/tests/test_numpy_array.cpp @@ -14,6 +14,67 @@ #include +// Size / dtype checks. +struct DtypeCheck { + py::dtype numpy{}; + py::dtype pybind11{}; +}; + +template +DtypeCheck get_dtype_check(const char* name) { + py::module np = py::module::import("numpy"); + DtypeCheck check{}; + check.numpy = np.attr("dtype")(np.attr(name)); + check.pybind11 = py::dtype::of(); + return check; +} + +std::vector get_concrete_dtype_checks() { + return { + // Normalization + get_dtype_check("int8"), + get_dtype_check("uint8"), + get_dtype_check("int16"), + get_dtype_check("uint16"), + get_dtype_check("int32"), + get_dtype_check("uint32"), + get_dtype_check("int64"), + get_dtype_check("uint64") + }; +} + +struct DtypeSizeCheck { + std::string name{}; + int size_cpp{}; + int size_numpy{}; + // For debugging. + py::dtype dtype{}; +}; + +template +DtypeSizeCheck get_dtype_size_check() { + DtypeSizeCheck check{}; + check.name = py::type_id(); + check.size_cpp = sizeof(T); + check.dtype = py::dtype::of(); + check.size_numpy = check.dtype.attr("itemsize").template cast(); + return check; +} + +std::vector get_platform_dtype_size_checks() { + return { + get_dtype_size_check(), + get_dtype_size_check(), + get_dtype_size_check(), + get_dtype_size_check(), + get_dtype_size_check(), + get_dtype_size_check(), + get_dtype_size_check(), + get_dtype_size_check(), + }; +} + +// Arrays. using arr = py::array; using arr_t = py::array_t; static_assert(std::is_same::value, ""); @@ -75,6 +136,26 @@ TEST_SUBMODULE(numpy_array, sm) { try { py::module::import("numpy"); } catch (...) { return; } + // test_dtypes + py::class_(sm, "DtypeCheck") + .def_readonly("numpy", &DtypeCheck::numpy) + .def_readonly("pybind11", &DtypeCheck::pybind11) + .def("__repr__", [](const DtypeCheck& self) { + return py::str("").format( + self.numpy, self.pybind11); + }); + sm.def("get_concrete_dtype_checks", &get_concrete_dtype_checks); + + py::class_(sm, "DtypeSizeCheck") + .def_readonly("name", &DtypeSizeCheck::name) + .def_readonly("size_cpp", &DtypeSizeCheck::size_cpp) + .def_readonly("size_numpy", &DtypeSizeCheck::size_numpy) + .def("__repr__", [](const DtypeSizeCheck& self) { + return py::str("").format( + self.name, self.size_cpp, self.size_numpy, self.dtype); + }); + sm.def("get_platform_dtype_size_checks", &get_platform_dtype_size_checks); + // test_array_attributes sm.def("ndim", [](const arr& a) { return a.ndim(); }); sm.def("shape", [](const arr& a) { return arr(a.ndim(), a.shape()); }); diff --git a/libs/pybind11-2.3.0/tests/test_numpy_array.py b/libs/pybind11-2.4.3/tests/test_numpy_array.py similarity index 94% rename from libs/pybind11-2.3.0/tests/test_numpy_array.py rename to libs/pybind11-2.4.3/tests/test_numpy_array.py index 8bacb7f..d0a6324 100644 --- a/libs/pybind11-2.3.0/tests/test_numpy_array.py +++ b/libs/pybind11-2.4.3/tests/test_numpy_array.py @@ -7,6 +7,21 @@ import numpy as np +def test_dtypes(): + # See issue #1328. + # - Platform-dependent sizes. + for size_check in m.get_platform_dtype_size_checks(): + print(size_check) + assert size_check.size_cpp == size_check.size_numpy, size_check + # - Concrete sizes. + for check in m.get_concrete_dtype_checks(): + print(check) + assert check.numpy == check.pybind11, check + if check.numpy.num != check.pybind11.num: + print("NOTE: typenum mismatch for {}: {} != {}".format( + check, check.numpy.num, check.pybind11.num)) + + @pytest.fixture(scope='function') def arr(): return np.array([[1, 2, 3], [4, 5, 6]], '=u2') @@ -419,3 +434,14 @@ def test_array_create_and_resize(msg): def test_index_using_ellipsis(): a = m.index_using_ellipsis(np.zeros((5, 6, 7))) assert a.shape == (6,) + + +@pytest.unsupported_on_pypy +def test_dtype_refcount_leak(): + from sys import getrefcount + dtype = np.dtype(np.float_) + a = np.array([1], dtype=dtype) + before = getrefcount(dtype) + m.ndim(a) + after = getrefcount(dtype) + assert after == before diff --git a/libs/pybind11-2.3.0/tests/test_numpy_dtypes.cpp b/libs/pybind11-2.4.3/tests/test_numpy_dtypes.cpp similarity index 98% rename from libs/pybind11-2.3.0/tests/test_numpy_dtypes.cpp rename to libs/pybind11-2.4.3/tests/test_numpy_dtypes.cpp index 6e3dc6b..467e025 100644 --- a/libs/pybind11-2.3.0/tests/test_numpy_dtypes.cpp +++ b/libs/pybind11-2.4.3/tests/test_numpy_dtypes.cpp @@ -29,6 +29,13 @@ std::ostream& operator<<(std::ostream& os, const SimpleStruct& v) { return os << "s:" << v.bool_ << "," << v.uint_ << "," << v.float_ << "," << v.ldbl_; } +struct SimpleStructReordered { + bool bool_; + float float_; + uint32_t uint_; + long double ldbl_; +}; + PYBIND11_PACKED(struct PackedStruct { bool bool_; uint32_t uint_; @@ -255,6 +262,7 @@ TEST_SUBMODULE(numpy_dtypes, m) { py::class_(m, "SimpleStruct"); PYBIND11_NUMPY_DTYPE(SimpleStruct, bool_, uint_, float_, ldbl_); + PYBIND11_NUMPY_DTYPE(SimpleStructReordered, bool_, uint_, float_, ldbl_); PYBIND11_NUMPY_DTYPE(PackedStruct, bool_, uint_, float_, ldbl_); PYBIND11_NUMPY_DTYPE(NestedStruct, a, b); PYBIND11_NUMPY_DTYPE(PartialStruct, bool_, uint_, float_, ldbl_); diff --git a/libs/pybind11-2.3.0/tests/test_numpy_dtypes.py b/libs/pybind11-2.4.3/tests/test_numpy_dtypes.py similarity index 100% rename from libs/pybind11-2.3.0/tests/test_numpy_dtypes.py rename to libs/pybind11-2.4.3/tests/test_numpy_dtypes.py diff --git a/libs/pybind11-2.3.0/tests/test_numpy_vectorize.cpp b/libs/pybind11-2.4.3/tests/test_numpy_vectorize.cpp similarity index 100% rename from libs/pybind11-2.3.0/tests/test_numpy_vectorize.cpp rename to libs/pybind11-2.4.3/tests/test_numpy_vectorize.cpp diff --git a/libs/pybind11-2.3.0/tests/test_numpy_vectorize.py b/libs/pybind11-2.4.3/tests/test_numpy_vectorize.py similarity index 100% rename from libs/pybind11-2.3.0/tests/test_numpy_vectorize.py rename to libs/pybind11-2.4.3/tests/test_numpy_vectorize.py diff --git a/libs/pybind11-2.3.0/tests/test_opaque_types.cpp b/libs/pybind11-2.4.3/tests/test_opaque_types.cpp similarity index 100% rename from libs/pybind11-2.3.0/tests/test_opaque_types.cpp rename to libs/pybind11-2.4.3/tests/test_opaque_types.cpp diff --git a/libs/pybind11-2.3.0/tests/test_opaque_types.py b/libs/pybind11-2.4.3/tests/test_opaque_types.py similarity index 100% rename from libs/pybind11-2.3.0/tests/test_opaque_types.py rename to libs/pybind11-2.4.3/tests/test_opaque_types.py diff --git a/libs/pybind11-2.3.0/tests/test_operator_overloading.cpp b/libs/pybind11-2.4.3/tests/test_operator_overloading.cpp similarity index 98% rename from libs/pybind11-2.3.0/tests/test_operator_overloading.cpp rename to libs/pybind11-2.4.3/tests/test_operator_overloading.cpp index 8ca7d8b..7b11170 100644 --- a/libs/pybind11-2.3.0/tests/test_operator_overloading.cpp +++ b/libs/pybind11-2.4.3/tests/test_operator_overloading.cpp @@ -23,6 +23,7 @@ class Vector2 { std::string toString() const { return "[" + std::to_string(x) + ", " + std::to_string(y) + "]"; } + Vector2 operator-() const { return Vector2(-x, -y); } Vector2 operator+(const Vector2 &v) const { return Vector2(x + v.x, y + v.y); } Vector2 operator-(const Vector2 &v) const { return Vector2(x - v.x, y - v.y); } Vector2 operator-(float value) const { return Vector2(x - value, y - value); } @@ -104,6 +105,7 @@ TEST_SUBMODULE(operators, m) { .def(float() - py::self) .def(float() * py::self) .def(float() / py::self) + .def(-py::self) .def("__str__", &Vector2::toString) .def(hash(py::self)) ; diff --git a/libs/pybind11-2.3.0/tests/test_operator_overloading.py b/libs/pybind11-2.4.3/tests/test_operator_overloading.py similarity index 82% rename from libs/pybind11-2.3.0/tests/test_operator_overloading.py rename to libs/pybind11-2.4.3/tests/test_operator_overloading.py index 86827d2..bd36ac2 100644 --- a/libs/pybind11-2.3.0/tests/test_operator_overloading.py +++ b/libs/pybind11-2.4.3/tests/test_operator_overloading.py @@ -9,6 +9,8 @@ def test_operator_overloading(): assert str(v1) == "[1.000000, 2.000000]" assert str(v2) == "[3.000000, -1.000000]" + assert str(-v2) == "[-3.000000, 1.000000]" + assert str(v1 + v2) == "[4.000000, 1.000000]" assert str(v1 - v2) == "[-2.000000, 3.000000]" assert str(v1 - 8) == "[-7.000000, -6.000000]" @@ -44,13 +46,13 @@ def test_operator_overloading(): del v2 assert cstats.alive() == 0 assert cstats.values() == ['[1.000000, 2.000000]', '[3.000000, -1.000000]', - '[4.000000, 1.000000]', '[-2.000000, 3.000000]', - '[-7.000000, -6.000000]', '[9.000000, 10.000000]', - '[8.000000, 16.000000]', '[0.125000, 0.250000]', - '[7.000000, 6.000000]', '[9.000000, 10.000000]', - '[8.000000, 16.000000]', '[8.000000, 4.000000]', - '[3.000000, -2.000000]', '[3.000000, -0.500000]', - '[6.000000, -2.000000]'] + '[-3.000000, 1.000000]', '[4.000000, 1.000000]', + '[-2.000000, 3.000000]', '[-7.000000, -6.000000]', + '[9.000000, 10.000000]', '[8.000000, 16.000000]', + '[0.125000, 0.250000]', '[7.000000, 6.000000]', + '[9.000000, 10.000000]', '[8.000000, 16.000000]', + '[8.000000, 4.000000]', '[3.000000, -2.000000]', + '[3.000000, -0.500000]', '[6.000000, -2.000000]'] assert cstats.default_constructions == 0 assert cstats.copy_constructions == 0 assert cstats.move_constructions >= 10 diff --git a/libs/pybind11-2.3.0/tests/test_pickling.cpp b/libs/pybind11-2.4.3/tests/test_pickling.cpp similarity index 100% rename from libs/pybind11-2.3.0/tests/test_pickling.cpp rename to libs/pybind11-2.4.3/tests/test_pickling.cpp diff --git a/libs/pybind11-2.3.0/tests/test_pickling.py b/libs/pybind11-2.4.3/tests/test_pickling.py similarity index 100% rename from libs/pybind11-2.3.0/tests/test_pickling.py rename to libs/pybind11-2.4.3/tests/test_pickling.py diff --git a/libs/pybind11-2.3.0/tests/test_pytypes.cpp b/libs/pybind11-2.4.3/tests/test_pytypes.cpp similarity index 94% rename from libs/pybind11-2.3.0/tests/test_pytypes.cpp rename to libs/pybind11-2.4.3/tests/test_pytypes.cpp index e6c955f..244e1db 100644 --- a/libs/pybind11-2.3.0/tests/test_pytypes.cpp +++ b/libs/pybind11-2.4.3/tests/test_pytypes.cpp @@ -17,6 +17,8 @@ TEST_SUBMODULE(pytypes, m) { list.append("value"); py::print("Entry at position 0:", list[0]); list[0] = py::str("overwritten"); + list.insert(0, "inserted-0"); + list.insert(2, "inserted-2"); return list; }); m.def("print_list", [](py::list list) { @@ -37,6 +39,12 @@ TEST_SUBMODULE(pytypes, m) { for (auto item : set) py::print("key:", item); }); + m.def("set_contains", [](py::set set, py::object key) { + return set.contains(key); + }); + m.def("set_contains", [](py::set set, const char* key) { + return set.contains(key); + }); // test_dict m.def("get_dict", []() { return py::dict("key"_a="value"); }); @@ -49,6 +57,12 @@ TEST_SUBMODULE(pytypes, m) { auto d2 = py::dict("z"_a=3, **d1); return d2; }); + m.def("dict_contains", [](py::dict dict, py::object val) { + return dict.contains(val); + }); + m.def("dict_contains", [](py::dict dict, const char* val) { + return dict.contains(val); + }); // test_str m.def("str_from_string", []() { return py::str(std::string("baz")); }); diff --git a/libs/pybind11-2.3.0/tests/test_pytypes.py b/libs/pybind11-2.4.3/tests/test_pytypes.py similarity index 93% rename from libs/pybind11-2.3.0/tests/test_pytypes.py rename to libs/pybind11-2.4.3/tests/test_pytypes.py index 0116d4e..0e8d6c3 100644 --- a/libs/pybind11-2.3.0/tests/test_pytypes.py +++ b/libs/pybind11-2.4.3/tests/test_pytypes.py @@ -9,14 +9,16 @@ def test_list(capture, doc): with capture: lst = m.get_list() - assert lst == ["overwritten"] + assert lst == ["inserted-0", "overwritten", "inserted-2"] lst.append("value2") m.print_list(lst) assert capture.unordered == """ Entry at position 0: value - list item 0: overwritten - list item 1: value2 + list item 0: inserted-0 + list item 1: overwritten + list item 2: inserted-2 + list item 3: value2 """ assert doc(m.get_list) == "get_list() -> list" @@ -37,6 +39,10 @@ def test_set(capture, doc): key: key4 """ + assert not m.set_contains(set([]), 42) + assert m.set_contains({42}, 42) + assert m.set_contains({"foo"}, "foo") + assert doc(m.get_list) == "get_list() -> list" assert doc(m.print_list) == "print_list(arg0: list) -> None" @@ -53,6 +59,10 @@ def test_dict(capture, doc): key: key2, value=value2 """ + assert not m.dict_contains({}, 42) + assert m.dict_contains({42: None}, 42) + assert m.dict_contains({"foo": None}, "foo") + assert doc(m.get_dict) == "get_dict() -> dict" assert doc(m.print_dict) == "print_dict(arg0: dict) -> None" diff --git a/libs/pybind11-2.3.0/tests/test_sequences_and_iterators.cpp b/libs/pybind11-2.4.3/tests/test_sequences_and_iterators.cpp similarity index 100% rename from libs/pybind11-2.3.0/tests/test_sequences_and_iterators.cpp rename to libs/pybind11-2.4.3/tests/test_sequences_and_iterators.cpp diff --git a/libs/pybind11-2.3.0/tests/test_sequences_and_iterators.py b/libs/pybind11-2.4.3/tests/test_sequences_and_iterators.py similarity index 100% rename from libs/pybind11-2.3.0/tests/test_sequences_and_iterators.py rename to libs/pybind11-2.4.3/tests/test_sequences_and_iterators.py diff --git a/libs/pybind11-2.3.0/tests/test_smart_ptr.cpp b/libs/pybind11-2.4.3/tests/test_smart_ptr.cpp similarity index 100% rename from libs/pybind11-2.3.0/tests/test_smart_ptr.cpp rename to libs/pybind11-2.4.3/tests/test_smart_ptr.cpp diff --git a/libs/pybind11-2.3.0/tests/test_smart_ptr.py b/libs/pybind11-2.4.3/tests/test_smart_ptr.py similarity index 98% rename from libs/pybind11-2.3.0/tests/test_smart_ptr.py rename to libs/pybind11-2.4.3/tests/test_smart_ptr.py index 0a3bb58..c662704 100644 --- a/libs/pybind11-2.3.0/tests/test_smart_ptr.py +++ b/libs/pybind11-2.4.3/tests/test_smart_ptr.py @@ -272,7 +272,8 @@ def test_smart_ptr_from_default(): instance = m.HeldByDefaultHolder() with pytest.raises(RuntimeError) as excinfo: m.HeldByDefaultHolder.load_shared_ptr(instance) - assert "Unable to load a custom holder type from a default-holder instance" in str(excinfo) + assert "Unable to load a custom holder type from a " \ + "default-holder instance" in str(excinfo.value) def test_shared_ptr_gc(): diff --git a/libs/pybind11-2.3.0/tests/test_stl.cpp b/libs/pybind11-2.4.3/tests/test_stl.cpp similarity index 100% rename from libs/pybind11-2.3.0/tests/test_stl.cpp rename to libs/pybind11-2.4.3/tests/test_stl.cpp diff --git a/libs/pybind11-2.3.0/tests/test_stl.py b/libs/pybind11-2.4.3/tests/test_stl.py similarity index 100% rename from libs/pybind11-2.3.0/tests/test_stl.py rename to libs/pybind11-2.4.3/tests/test_stl.py diff --git a/libs/pybind11-2.3.0/tests/test_stl_binders.cpp b/libs/pybind11-2.4.3/tests/test_stl_binders.cpp similarity index 100% rename from libs/pybind11-2.3.0/tests/test_stl_binders.cpp rename to libs/pybind11-2.4.3/tests/test_stl_binders.cpp diff --git a/libs/pybind11-2.3.0/tests/test_stl_binders.py b/libs/pybind11-2.4.3/tests/test_stl_binders.py similarity index 94% rename from libs/pybind11-2.3.0/tests/test_stl_binders.py rename to libs/pybind11-2.4.3/tests/test_stl_binders.py index 52c8ac0..6d5a159 100644 --- a/libs/pybind11-2.3.0/tests/test_stl_binders.py +++ b/libs/pybind11-2.4.3/tests/test_stl_binders.py @@ -53,6 +53,16 @@ def test_vector_int(): v_int2.extend(x for x in range(5)) assert v_int2 == m.VectorInt([0, 99, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4]) + # test negative indexing + assert v_int2[-1] == 4 + + # insert with negative index + v_int2.insert(-1, 88) + assert v_int2 == m.VectorInt([0, 99, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 88, 4]) + + # delete negative index + del v_int2[-1] + assert v_int2 == m.VectorInt([0, 99, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 88]) # related to the PyPy's buffer protocol. @pytest.unsupported_on_pypy diff --git a/libs/pybind11-2.3.0/tests/test_tagbased_polymorphic.cpp b/libs/pybind11-2.4.3/tests/test_tagbased_polymorphic.cpp similarity index 100% rename from libs/pybind11-2.3.0/tests/test_tagbased_polymorphic.cpp rename to libs/pybind11-2.4.3/tests/test_tagbased_polymorphic.cpp diff --git a/libs/pybind11-2.3.0/tests/test_tagbased_polymorphic.py b/libs/pybind11-2.4.3/tests/test_tagbased_polymorphic.py similarity index 100% rename from libs/pybind11-2.3.0/tests/test_tagbased_polymorphic.py rename to libs/pybind11-2.4.3/tests/test_tagbased_polymorphic.py diff --git a/libs/pybind11-2.3.0/tests/test_union.cpp b/libs/pybind11-2.4.3/tests/test_union.cpp similarity index 100% rename from libs/pybind11-2.3.0/tests/test_union.cpp rename to libs/pybind11-2.4.3/tests/test_union.cpp diff --git a/libs/pybind11-2.3.0/tests/test_union.py b/libs/pybind11-2.4.3/tests/test_union.py similarity index 100% rename from libs/pybind11-2.3.0/tests/test_union.py rename to libs/pybind11-2.4.3/tests/test_union.py diff --git a/libs/pybind11-2.3.0/tests/test_virtual_functions.cpp b/libs/pybind11-2.4.3/tests/test_virtual_functions.cpp similarity index 100% rename from libs/pybind11-2.3.0/tests/test_virtual_functions.cpp rename to libs/pybind11-2.4.3/tests/test_virtual_functions.cpp diff --git a/libs/pybind11-2.3.0/tests/test_virtual_functions.py b/libs/pybind11-2.4.3/tests/test_virtual_functions.py similarity index 100% rename from libs/pybind11-2.3.0/tests/test_virtual_functions.py rename to libs/pybind11-2.4.3/tests/test_virtual_functions.py diff --git a/libs/pybind11-2.3.0/tools/FindCatch.cmake b/libs/pybind11-2.4.3/tools/FindCatch.cmake similarity index 100% rename from libs/pybind11-2.3.0/tools/FindCatch.cmake rename to libs/pybind11-2.4.3/tools/FindCatch.cmake diff --git a/libs/pybind11-2.3.0/tools/FindEigen3.cmake b/libs/pybind11-2.4.3/tools/FindEigen3.cmake similarity index 100% rename from libs/pybind11-2.3.0/tools/FindEigen3.cmake rename to libs/pybind11-2.4.3/tools/FindEigen3.cmake diff --git a/libs/pybind11-2.3.0/tools/FindPythonLibsNew.cmake b/libs/pybind11-2.4.3/tools/FindPythonLibsNew.cmake similarity index 99% rename from libs/pybind11-2.3.0/tools/FindPythonLibsNew.cmake rename to libs/pybind11-2.4.3/tools/FindPythonLibsNew.cmake index 7d85af4..e660c5f 100644 --- a/libs/pybind11-2.3.0/tools/FindPythonLibsNew.cmake +++ b/libs/pybind11-2.4.3/tools/FindPythonLibsNew.cmake @@ -144,7 +144,7 @@ string(REGEX REPLACE "\\\\" "/" PYTHON_PREFIX ${PYTHON_PREFIX}) string(REGEX REPLACE "\\\\" "/" PYTHON_INCLUDE_DIR ${PYTHON_INCLUDE_DIR}) string(REGEX REPLACE "\\\\" "/" PYTHON_SITE_PACKAGES ${PYTHON_SITE_PACKAGES}) -if(CMAKE_HOST_WIN32) +if(CMAKE_HOST_WIN32 AND NOT (MSYS OR MINGW)) set(PYTHON_LIBRARY "${PYTHON_PREFIX}/libs/Python${PYTHON_LIBRARY_SUFFIX}.lib") diff --git a/libs/pybind11-2.3.0/tools/check-style.sh b/libs/pybind11-2.4.3/tools/check-style.sh similarity index 100% rename from libs/pybind11-2.3.0/tools/check-style.sh rename to libs/pybind11-2.4.3/tools/check-style.sh diff --git a/libs/pybind11-2.3.0/tools/libsize.py b/libs/pybind11-2.4.3/tools/libsize.py similarity index 100% rename from libs/pybind11-2.3.0/tools/libsize.py rename to libs/pybind11-2.4.3/tools/libsize.py diff --git a/libs/pybind11-2.3.0/tools/mkdoc.py b/libs/pybind11-2.4.3/tools/mkdoc.py similarity index 100% rename from libs/pybind11-2.3.0/tools/mkdoc.py rename to libs/pybind11-2.4.3/tools/mkdoc.py diff --git a/libs/pybind11-2.3.0/tools/pybind11Config.cmake.in b/libs/pybind11-2.4.3/tools/pybind11Config.cmake.in similarity index 100% rename from libs/pybind11-2.3.0/tools/pybind11Config.cmake.in rename to libs/pybind11-2.4.3/tools/pybind11Config.cmake.in diff --git a/libs/pybind11-2.3.0/tools/pybind11Tools.cmake b/libs/pybind11-2.4.3/tools/pybind11Tools.cmake similarity index 99% rename from libs/pybind11-2.3.0/tools/pybind11Tools.cmake rename to libs/pybind11-2.4.3/tools/pybind11Tools.cmake index e3ec572..c7156c0 100644 --- a/libs/pybind11-2.3.0/tools/pybind11Tools.cmake +++ b/libs/pybind11-2.4.3/tools/pybind11Tools.cmake @@ -197,7 +197,7 @@ function(pybind11_add_module target_name) _pybind11_add_lto_flags(${target_name} ${ARG_THIN_LTO}) - if (NOT MSVC AND NOT ${CMAKE_BUILD_TYPE} MATCHES Debug) + if (NOT MSVC AND NOT ${CMAKE_BUILD_TYPE} MATCHES Debug|RelWithDebInfo) # Strip unnecessary sections of the binary on Linux/Mac OS if(CMAKE_STRIP) if(APPLE) diff --git a/scripts/ambig.fa b/scripts/ambig.fa new file mode 100644 index 0000000..cea960c --- /dev/null +++ b/scripts/ambig.fa @@ -0,0 +1,1000 @@ +>NC_007779.1 Escherichia coli str. K-12 substr. W3110 DNA, complete genome +NAGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC +TTCTGAACTGGTTACCTGCCGTGAGTAAATTAAAATTTTATTGACTTAGGTCACTAAATACTTTAACCAA +TATAGGCATAGCGCACAGACAGATAAAAATTACAGAGTACACAACATCCATGAAACGCATTAGCACCACC +ATTACCACCACCATCACCATTACCACAGGTAACGGTGCGGGCTGACGCGTACAGGAAACACAGAAAAAAG +CCCGCACCTGACAGTGCGGGCTTTTTTTTTCGACCAAAGGTAACGAGGTAACAACCATGCGAGTGTTGAA +GTTCGGCGGTACATCAGTGGCAAATGCAGAACGTTTTCTGCGTGTTGCCGATATTCTGGAAAGCAATGCC +AGGCAGGGGCAGGTGGCCACCGTCCTCTCTGCCCCCGCCAAAATCACCAACCACCTGGTGGCGATGATTG +AAAAAACCATTAGCGGCCAGGATGCTTTACCCAATATCAGCGATGCCGAACGTATTTTTGCCGAACTTTT +GACGGGACTCGCCGCCGCCCAGCCGGGGTTCCCGCTGGCGCAATTGAAAACTTTCGTCGATCAGGAATTT +GCCCAAATAAAACATGTCCTGCATGGCATTAGTTTGTTGGGGCAGTGCCCGGATAGCATCAACGCTGCGC +TGATTTGCCGTGGCGAGAAAATGTCGATCGCCATTATGGCCGGCGTATTAGAAGCGCGCGGTCACAACGT +TACTGTTATCGATCCGGTCGAAAAACTGCTGGCAGTGGGGCATTACCTCGAATCTACCGTCGATATTGCT +GAGTCCACCCGCCGTATTGCGGCAAGCCGCATTCCGGCTGATCACATGGTGCTGATGGCAGGTTTCACCG +CCGGTAATGAAAAAGGCGAACTGGTGGTGCTTGGACGCAACGGTTCCGACTACTCTGCTGCGGTGCTGGC +TGCCTGTTTACGCGCCGATTGTTGCGAGATTTGGACGGACGTTGACGGGGTCTATACCTGCGACCCGCGT +CAGGTGCCCGATGCGAGGTTGTTGAAGTCGATGTCCTACCAGGAAGCGATGGAGCTTTCCTACTTCGGCG +CTAAAGTTCTTCACCCCCGCACCATTACCCCCATCGCCCAGTTCCAGATCCCTTGCCTGATTAAAAATAC +CGGAAATCCTCAAGCACCAGGTACGCTCATTGGTGCCAGCCGTGATGAAGACGAATTACCGGTCAAGGGC +ATTTCCAATCTGAATAACATGGCAATGTTCAGCGTTTCTGGTCCGGGGATGAAAGGGATGGTCGGCATGG +CGGCGCGCGTCTTTGCAGCGATGTCACGCGCCCGTATTTCCGTGGTGCTGATTACGCAATCATCTTCCGA +ATACAGCATCAGTTTCTGCGTTCCACAAAGCGACTGTGTGCGAGCTGAACGGGCAATGCAGGAAGAGTTC +TACCTGGAACTGAAAGAAGGCTTACTGGAGCCGCTGGCAGTGACGGAACGGCTGGCCATTATCTCGGTGG +TAGGTGATGGTATGCGCACCTTGCGTGGGATCTCGGCGAAATTCTTTGCCGCACTGGCCCGCGCCAATAT +CAACATTGTCGCCATTGCTCAGGGATCTTCTGAACGCTCAATCTCTGTCGTGGTAAATAACGATGATGCG +ACCACTGGCGTGCGCGTTACTCATCAGATGCTGTTCAATACCGATCAGGTTATCGAAGTGTTTGTGATTG +GCGTCGGTGGCGTTGGCGGTGCGCTGCTGGAGCAACTGAAGCGTCAGCAAAGCTGGCTGAAGAATAAACA +TATCGACTTACGTGTCTGCGGTGTTGCCAACTCGAAGGCTCTGCTCACCAATGTACATGGCCTTAATCTG +GAAAACTGGCAGGAAGAACTGGCGCAAGCCAAAGAGCCGTTTAATCTCGGGCGCTTAATTCGCCTCGTGA +AAGAATATCATCTGCTGAACCCGGTCATTGTTGACTGCACTTCCAGCCAGGCAGTGGCGGATCAATATGC +CGACTTCCTGCGCGAAGGTTTCCACGTTGTCACGCCGAACAAAAAGGCCAACACCTCGTCGATGGATTAC +TACCATCAGTTGCGTTATGCGGCGGAAAAATCGCGGCGTAAATTCCTCTATGACACCAACGTTGGGGCTG +GATTACCGGTTATTGAGAACCTGCAAAATCTGCTCAATGCAGGTGATGAATTGATGAAGTTCTCCGGCAT +TCTTTCTGGTTCGCTTTCTTATATCTTCGGCAAGTTAGACGAAGGCATGAGTTTCTCCGAGGCGACCACG +CTGGCGCGGGAAATGGGTTATACCGAACCGGACCCGCGAGATGATCTTTCTGGTATGGATGTGGCGCGTA +AACTATTGATTCTCGCTCGTGAAACGGGACGTGAACTGGAGCTGGCGGATATTGAAATTGAACCTGTGCT +GCCCGCAGAGTTTAACGCCGAGGGTGATGTTGCCGCTTTTATGGCGAATCTGTCACAACTCGACGATCTC +TTTGCCGCGCGCGTGGCGAAGGCCCGTGATGAAGGAAAAGTTTTGCGCTATGTTGGCAATATTGATGAAG +ATGGCGTCTGCCGCGTGAAGATTGCCGAAGTGGATGGTAATGATCCGCTGTTCAAAGTGAAAAATGGCGA +AAACGCCCTGGCCTTCTATAGCCACTATTATCAGCCGCTGCCGTTGGTACTGCGCGGATATGGTGCGGGC +AATGACGTTACAGCTGCCGGTGTCTTTGCTGATCTGCTACGTACCCTCTCATGGAAGTTAGGAGTCTGAC +ATGGTTAAAGTTTATGCCCCGGCTTCCAGTGCCAATATGAGCGTCGGGTTTGATGTGCTCGGGGCGGCGG +TGACACCTGTTGATGGTGCATTGCTCGGAGATGTAGTCACGGTTGAGGCGGCAGAGACATTCAGTCTCAA +CAACCTCGGACGCTTTGCCGATAAGCTGCCGTCAGAACCACGGGAAAATATCGTTTATCAGTGCTGGGAG +CGTTTTTGCCAGGAACTGGGTAAGCAAATTCCAGTGGCGATGACCCTGGAAAAGAATATGCCGATCGGTT +CGGGCTTAGGCTCCAGTGCCTGTTCGGTGGTCGCGGCGCTGATGGCGATGAATGAACACTGCGGCAAGCC +GCTTAATGACACTCGTTTGCTGGCTTTGATGGGCGAGCTGGAAGGCCGTATCTCCGGCAGCATTCATTAC +GACAACGTGGCACCGTGTTTTCTCGGTGGTATGCAGTTGATGATCGAAGAAAACGACATCATCAGCCAGC +AAGTGCCAGGGTTTGATGAGTGGCTGTGGGTGCTGGCGTATCCGGGGATTAAAGTCTCGACGGCAGAAGC +CAGGGCTATTTTACCGGCGCAGTATCGCCGCCAGGATTGCATTGCGCACGGGCGACATCTGGCAGGCTTC +ATTCACGCCTGCTATTCCCGTCAGCCTGAGCTTGCCGCGAAGCTGATGAAAGATGTTATCGCTGAACCCT +ACCGTGAACGGTTACTGCCAGGCTTCCGGCAGGCGCGGCAGGCGGTCGCGGAAATCGGCGCGGTAGCGAG +CGGTATCTCCGGCTCCGGCCCGACCTTGTTCGCTCTGTGTGACAAGCCGGAAACCGCCCAGCGCGTTGCC +GACTGGTTGGGTAAGAACTACCTGCAAAATCAGGAAGGTTTTGTTCATATTTGCCGGCTGGATACGGCGG +GCGCACGAGTACTGGAAAACTAAATGAAACTCTACAATCTGAAAGATCACAACGAGCAGGTCAGCTTTGC +GCAAGCCGTAACCCAGGGGTTGGGCAAAAATCAGGGGCTGTTTTTTCCGCACGACCTGCCGGAATTCAGC +CTGACTGAAATTGATGAGATGCTGAAGCTGGATTTTGTCACCCGCAGTGCGAAGATCCTCTCGGCGTTTA +TTGGTGATGAAATCCCACAGGAAATCCTGGAAGAGCGCGTGCGCGCGGCGTTTGCCTTCCCGGCTCCGGT +CGCCAATGTTGAAAGCGATGTCGGTTGTCTGGAATTGTTCCACGGGCCAACGCTGGCATTTAAAGATTTC +GGCGGTCGCTTTATGGCACAAATGCTGACCCATATTGCGGGTGATAAGCCAGTGACCATTCTGACCGCGA +CCTCCGGTGATACCGGAGCGGCAGTGGCTCATGCTTTCTACGGTTTACCGAATGTGAAAGTGGTTATCCT +CTATCCACGAGGCAAAATCAGTCCACTGCAAGAAAAACTGTTCTGTACATTGGGCGGCAATATCGAAACT +GTTGCCATCGACGGCGATTTCGATGCCTGTCAGGCGCTGGTGAAGCAGGCGTTTGATGATGAAGAACTGA +AAGTGGCGCTAGGGTTAAACTCGGCTAACTCGATTAACATCAGCCGTTTGCTGGCGCAGATTTGCTACTA +CTTTGAAGCTGTTGCGCAGCTGCCGCAGGAGACGCGCAACCAGCTGGTTGTCTCGGTGCCAAGCGGAAAC +TTCGGCGATTTGACGGCGGGTCTGCTGGCGAAGTCACTCGGTCTGCCGGTGAAACGTTTTATTGCTGCGA +CCAACGTGAACGATACCGTGCCACGTTTCCTGCACGACGGTCAGTGGTCACCCAAAGCGACTCAGGCGAC +GTTATCCAACGCGATGGACGTGAGTCAGCCGAACAACTGGCCGCGTGTGGAAGAGTTGTTCCGCCGCAAA +ATCTGGCAACTGAAAGAGCTGGGTTATGCAGCCGTGGATGATGAAACCACGCAACAGACAATGCGTGAGT +TAAAAGAACTGGGCTACACTTCGGAGCCGCACGCTGCCGTAGCTTATCGTGCGCTGCGTGATCAGTTGAA +TCCAGGCGAATATGGCTTGTTCCTCGGCACCGCGCATCCGGCGAAATTTAAAGAGAGCGTGGAAGCGATT +CTCGGTGAAACGTTGGATCTGCCAAAAGAGCTGGCAGAACGTGCTGATTTACCCTTGCTTTCACATAATC +TGCCCGCCGATTTTGCTGCGTTGCGTAAATTGATGATGAATCATCAGTAAAATCTATTCATTATCTCAAT +CAGGCCGGGTTTGCTTTTATGCAGCCCGGCTTTTTTATGAAGAAATTATGGAGAAAAATGACAGGGAAAA +AGGAGAAATTCTCAATAAATGCGGTAACTTAGAGATTAGGATTGCGGAGAATAACAACCGCCGTTCTCAT +CGAGTAATCTCCGGATATCGACCCATAACGGGCAATGATAAAAGGAGTAACCTGTGAAAAAGATGCAATC +TATCGTACTCGCACTTTCCCTGGTTCTGGTCGCTCCCATGGCAGCACAGGCTGCGGAAATTACGTTAGTC +CCGTCAGTAAAATTACAGATAGGCGATCGTGATAATCGTGGCTATTACTGGGATGGAGGTCACTGGCGCG +ACCACGGCTGGTGGAAACAACATTATGAATGGCGAGGCAATCGCTGGCACCTACACGGACCGCCGCCACC +GCCGCGCCACCATAAGAAAGCTCCTCATGATCATCACGGCGGTCATGGTCCAGGCAAACATCACCGCTAA +ATGACAAATGCCGGGTAACAATCCGGCATTCAGCGCCTGATGCGACGCTGGCGCGTCTTATCAGGCCTAC +GTTAATTCTGCAATATATTGAATCTGCATGCTTTTGTAGGCAGGATAAGGCGTTCACGCCGCATCCGGCA +TTGACTGCAAACTTAACGCTGCTCGTAGCGTTTAAACACCAGTTCGCCATTGCTGGAGGAATCTTCATCA +AAGAAGTAACCTTCGCTATTAAAACCAGTCAGTTGCTCTGGTTTGGTCAGCCGATTTTCAATAATGAAAC +GACTCATCAGACCGCGTGCTTTCTTAGCGTAGAAGCTGATGATCTTAAATTTGCCGTTCTTCTCATCGAG +GAACACCGGCTTGATAATCTCGGCATTCAATTTCTTCGGCTTCACCGATTTAAAATACTCATCTGACGCC +AGATTAATCACCACATTATCGCCTTGTGCTGCGAGCGCCTCGTTCAGCTTGTTGGTGATGATATCTCCCC +AGAATTGATACAGATCTTTCCCTCGGGCATTCTCAAGACGGATCCCCATTTCCAGACGATAAGGCTGCAT +TAAATCGAGCGGGCGGAGTACGCCATACAAGCCGGAAAGCATTCGCAAATGCTGTTGGGCAAAATCGAAA +TCGTCTTCGCTGAAGGTTTCGGCCTGCAAGCCGGTGTAGACATCACCTTTAAACGCCAGAATCGCCTGGC +GGGCATTCGCCGGCGTGAAATCTGGCTGCCAGTCATGAAAGCGAGCGGCGTTGATACCCGCCAGTTTGTC +GCTGATGCGCATCAGCGTGCTAATCTGCGGAGGCGTCAGTTTCCGCGCCTCATGGATCAACTGCTGGGAA +TTGTCTAACAGCTCCGGCAGCGTATAGCGCGTGGTGGTCAACGGGCTTTGGTAATCAAGCGTTTTCGCAG +GTGAAATAAGAATCAGCATATCCAGTCCTTGCAGGAAATTTATGCCGACTTTAGCAAAAAATGAGAATGA +GTTGATCGATAGTTGTGATTACTCCTGCGAAACATCATCCCACGCGTCCGGAGAAAGCTGGCGACCGATA +TCCGGATAACGCAATGGATCAAACACCGGGCGCACGCCGAGTTTACGCTGGCGTAGATAATCACTGGCAA +TGGTATGAACCACAGGCGAGAGCAGTAAAATGGCGGTCAAATTGGTAATAGCCATGCAGGCCATTATGAT +ATCTGCCAGTTGCCACATCAGCGGAAGGCTTAGCAAGGTGCCGCCGATGACCGTTGCGAAGGTGCAGATC +CGCAAACACCAGATCGCTTTAGGGTTGTTCAGGCGTAAAAAGAAGAGATTGTTTTCGGCATAAATGTAGT +TGGCAACGATGGAGCTGAAGGCAAACAGAATAACCACAAGGGTAACAAACTCAGCACCCCAGGAACCCAT +TAGCACCCGCATCGCCTTCTGGATAAGCTGAATACCTTCCAGCGGCATGTAGGTTGTGCCGTTACCCGCC +AGTAATATCAGCATGGCGCTTGCCGTACAGATGACCAGGGTGTCGATAAAAATGCCAATCATCTGGACAA +TCCCTTGCGCTGCCGGATGCGGAGGCCAGGACGCCGCTGCCGCTGCCGCGTTTGGCGTCGAACCCATTCC +CGCCTCATTGGAAAACATACTGCGCTGAAAACCGTTAGTAATCGCCTGGCTTAAGGTATATCCCGCCGCG +CCGCCTGCCGCTTCCTGCCAGCCAAAAGCACTCTCAAAAATAGACCAAATGACGTGGGGAAGTTGCCCGA +TATTCATTACGCAAATTACCAGGCTGGTCAGTACCCAGATTATCGCCATCAACGGGACAAAGCCCTGCAT +GAGCCGGGCGACGCCATGAAGACCGCGAGTGATTGCCAGCAGAGTAAAGACAGCGAGAATAATGCCTGTC +ACCAGCGGGGGAAAATCAAAAGAAAAACTCAGGGCGCGGGCAACGGCGTTCGCTTGAACTCCGCTGAAAA +TTATGCCATAGGCGATGAGCAAAAAGACGGCGAACAGAACGCCCATCCAGCGCATCCCCAGCCCGCGCGC +CATATACCATGCCGGTCCGCCACGAAACTGCCCATTGACGTCACGTTCTTTATAAAGTTGTGCCAGAGAA +CATTCGGCAAACGAGGTCGCCATGCCGATAAACGCGGCAACCCACATCCAAAAGACGGCTCCAGGTCCAC +CGGCGGTAATAGCCAGCGCAACGCCGGCCAGGTTGCCGCTACCCACGCGCGCCGCAAGACTGGTACACAA +TGACTGAAATGAGGTTAAACCGCCTGGCTGTGGATGAATGCTATTTTTAAGACTTTTGCCAAACTGGCGG +ATGTAGCGAAACTGCACAAATCCGGTGCGAAAAGTGAACCAACAACCTGCGCCGAAGAGCAGGTAAATCA +TTACCGATCCCCAAAGGACGCTGTTAATGAAGGAGAAAAAATCTGGCATGCATATCCCTCTTATTGCCGG +TCGCGATGACTTTCCTGTGTAAACGTTACCAATTGTTTAAGAAGTATATACGCTACGAGGTACTTGATAA +CTTCTGCGTAGCATACATGAGGTTTTGTATAAAAATGGCGGGCGATATCAACGCAGTGTCAGAAATCCGA +AACAGTCTCGCCTGGCGATAACCGTCTTGTCGGCGGTTGCGCTGACGTTGCGTCGTGATATCATCAGGGC +AGACCGGTTACATCCCCCTAACAAGCTGTTTAAAGAGAAATACTATCATGACGGACAAATTGACCTCCCT +TCGTCAGTACACCACCGTAGTGGCCGACACTGGGGACATCGCGGCAATGAAGCTGTATCAACCGCAGGAT +GCCACAACCAACCCTTCTCTCATTCTTAACGCAGCGCAGATTCCGGAATACCGTAAGTTGATTGATGATG +CTGTCGCCTGGGCGAAACAGCAGAGCAACGATCGCGCGCAGCAGATCGTGGACGCGACCGACAAACTGGC +AGTAAATATTGGTCTGGAAATCCTGAAACTGGTTCCGGGCCGTATCTCAACTGAAGTTGATGCGCGTCTT +TCCTATGACACCGAAGCGTCAATTGCGAAAGCAAAACGCCTGATCAAACTCTACAACGATGCTGGTATTA +GCAACGATCGTATTCTGATCAAACTGGCTTCTACCTGGCAGGGTATCCGTGCTGCAGAACAGCTGGAAAA +AGAAGGCATCAACTGTAACCTGACCCTGCTGTTCTCCTTCGCTCAGGCTCGTGCTTGTGCGGAAGCGGGC +GTGTTCCTGATCTCGCCGTTTGTTGGCCGTATTCTTGACTGGTACAAAGCGAATACCGATAAGAAAGAGT +ACGCTCCGGCAGAAGATCCGGGCGTGGTTTCTGTATCTGAAATCTACCAGTACTACAAAGAGCACGGTTA +TGAAACCGTGGTTATGGGCGCAAGCTTCCGTAACATCGGCGAAATTCTGGAACTGGCAGGCTGCGACCGT +CTGACCATCGCACCGGCACTGCTGAAAGAGCTGGCGGAGAGCGAAGGGGCTATCGAACGTAAACTGTCTT +ACACCGGCGAAGTGAAAGCGCGTCCGGCGCGTATCACTGAGTCCGAGTTCCTGTGGCAGCACAACCAGGA +TCCAATGGCAGTAGATAAACTGGCGGAAGGTATCCGTAAGTTTGCTATTGACCAGGAAAAACTGGAAAAA +ATGATCGGCGATCTGCTGTAATCATTCTTAGCGTGACCGGGAAGTCGGTCACGCTACCTCTTCTGAAGCC +TGTCTGTCACTCCCTTCGCAGTGTATCATTCTGTTTAACGAGACTGTTTAAACGGAAAAATCTTGATGAA +TACTTTACGTATTGGCTTAGTTTCCATCTCTGATCGCGCATCCAGCGGCGTTTATCAGGATAAAGGCATC +CCTGCGCTGGAAGAATGGCTGACATCGGCGCTAACCACGCCGTTTGAACTGGAAACCCGCTTAATCCCCG +ATGAGCAGGCGATCATCGAGCAAACGTTGTGTGAGCTGGTGGATGAAATGAGTTGCCATCTGGTGCTCAC +CACGGGCGGAACTGGCCCGGCGCGTCGTGACGTAACGCCCGATGCGACGCTGGCAGTAGCGGACCGCGAG +ATGCCTGGCTTTGGTGAACAGATGCGCCAGATCAGCCTGCATTTTGTACCAACTGCGATCCTTTCGCGTC +AGGTGGGCGTGATTCGCAAACAGGCGCTGATCCTTAACTTACCCGGTCAGCCGAAGTCTATTAAAGAGAC +GCTGGAAGGTGTGAAGGACGCTGAGGGTAACGTTGTGGTACACGGTATTTTTGCCAGCGTACCGTACTGC +ATTCAGTTGCTGGAAGGGCCATACGTTGAAACGGCACCGGAAGTGGTTGCAGCATTCAGACCGAAGAGTG +CAAGACGCGACGTTAGCGAATAAAAAAATCCCCCCGAGCGGGGGGATCTCAAAACAATTAGTGGGATTCA +CCAATCGGCAGAACGGTGCGACCAAACTGCTCGTTCAGTACTTCACCCATCGCCAGATAGATTGCGCTGG +CACCGCAGATCAGCCCAATCCAGCCGGCAAAGTGGATGATTGCGGCGTTACCGGCAATGTTACCGATCGC +CAGCAGGGCAAACAGCACGGTCAGGCTAAAGAAAACGAATTGCAGAACGCGTGCGCCTTTCAGCGTGCCG +AAGAACATAAACAGCGTAAATACGCCCCACAGACCCAGGTAGACACCAAGGAACTGTGCATTTGGCGCAT +CGGTCAGACCCAGTTTCGGCATCAGCAGAATCGCAACCAGCGTCAGCCAGAAAGAACCGTAAGAGGTGAA +TGCGGTTAAACCGAAAGTGTTGCCTTTTTTGTACTCCAGCAGACCAGCAAAAATTTGCGCGATGCCGCCG +TAGAAAATGCCCATGGCAAGAATAATACCGTCCAGAGCGAAATAACCCACGTTGTGCAGGTTAAGCAGAA +TGGTGGTCATGCCGAAGCCCATCAGGCCCAGCGGTGCCGGATTAGCCAACTTAGTGTTGCCCATAATTCC +TCAAAAATCATCATCGAATGAATGGTGAAATAATTTCCCTGAATAACTGTAGTGTTTTCAGGGCGCGGCA +TAATAATCAGCCAGTGGGGCAGTGTCTACGATCTTTTGAGGGGAAAATGAAAATTTTCCCCGGTTTCCGG +TATCAGACCTGAGTGGCGCTAACCATCCGGCGCAGGCAGGCGATTTGCAGTACGGCTGGAATCGTCACGC +GATAGGCGCTGCCGCTGACCGCTTTAACCCCATTTAGTGCCGCACCTACAGGGCCTCCCAGCCCCGCGCC +GCGCAGCAAACCATGCCCAAGTACGCTCATTGCTGCGTGGGTGCGTAAAATGCGGGTCAGTTGGCTGGAA +AGCAAATGCGACACACCTTTTGCCAATAATTTGTCTTTCATCAGCAGCGGCAGCAGCTCTTCCAGCTCAT +TCACCCTGGCATCGACCGCGTGCAGAAACTCCTGCTTATGTTCCTCGTCCATTTTCTTCCAGGTATTACG +CAGAAATTGTTCCAGTAACTGTTGCTCAATTTCAAACGTAGACATCTCTTTGTCGGCTTTCAGCTTCAAT +CGCTTTGAAACATCGAGCAAAATGGCCCGATACAATTTACCGTGTCCGCGCAGTTTGTTGGCGATACTAT +CGCCACCAAAATGCTGTAATTCTCCGGCAATCAGCTGCCAGTTGCGGCGATGTTGCTCGGGATGCCCTTC +CATCGATTTAAACAGTTCGTTGCGCATCAGTACGCTGGAGAGGCGAGTTTTGCCTTTTTCATTATGGGTG +AGCAATCGGGCGAAATTTGCCAACTGTTCCTCACTACAATGCTGAAGAAAATCCAGATCTGAATCATTCA +GGTAATTAACATTCATTTTTTGTGGCTTCTATATTCTGGCGTTAGTCGTCGCCGATAATTTTCAGCGTGG +CCATATCCGATGAGTTCACCGTATGACCCGAAAAGGTGATTTTTGAGACGCAGCGTTTATTGTCGTTATC +GCTGTTAATGTTGATCCAGTCAGTGGTTTGCCCTTCTTTTATTTCTGAAGGAATATTCAGGCTCTGACTG +GCGCTACGGGCGGCTTTGAAATAAACCGATGCACCGCTTAACTGTAAATCGCCATGGTCGGCAGAGAGTT +GTATGCGTTTCACAATGCGACAAACAGGAAGTTTCAGCGCCAGATCGTTGGTTTCGTTACGCGGCATTGC +AATGGCGCCGAGGAGTTTATGGTCGTTTGCCTGCGCCGTGCAGCACAGCATCAGGCTAATCGCCAGGCTG +GCGGAAATCGTAAAAACGGATTTCATAAGGATTCTCTTAGTGGGAAGAGGTAGGGGGATGAATACCCACT +AGTTTACTGCTGATAAAGAGAAGATTCAGGCACGTAATCTTTTCTTTTTATTACAATTTTTTGATGAATG +CCTTGGCTGCGATTCATTCTTTATATGAATAAAATTGCTGTCAATTTTACGTCTTGTCCTGCCATATCGC +GAAATTTCTGCGCAAAAGCACAAAAAATTTTTGCATCTCCCCCTTGATGACGTGGTTTACGACCCCATTT +AGTAGTCAACCGCAGTGAGTGAGTCTGCAAAAAAATGAAATTGGGCAGTTGAAACCAGACGTTTCGCCCC +TATTACAGACTCACAACCACATGATGACCGAATATATAGTGGAGACGTTTAGATGGGTAAAATAATTGGT +ATCGACCTGGGTACTACCAACTCTTGTGTAGCGATTATGGATGGCACCACTCCTCGCGTGCTGGAGAACG +CCGAAGGCGATCGCACCACGCCTTCTATCATTGCCTATACCCAGGATGGTGAAACTCTAGTTGGTCAGCC +GGCTAAACGTCAGGCAGTGACGAACCCGCAAAACACTCTGTTTGCGATTAAACGCCTGATTGGTCGCCGC +TTCCAGGACGAAGAAGTACAGCGTGATGTTTCCATCATGCCGTTCAAAATTATTGCTGCTGATAACGGCG +ACGCATGGGTCGAAGTTAAAGGCCAGAAAATGGCACCGCCGCAGATTTCTGCTGAAGTGCTGAAAAAAAT +GAAGAAAACCGCTGAAGATTACCTGGGTGAACCGGTAACTGAAGCTGTTATCACCGTACCGGCATACTTT +AACGATGCTCAGCGTCAGGCAACCAAAGACGCAGGCCGTATCGCTGGTCTGGAAGTAAAACGTATCATCA +ACGAACCGACCGCAGCTGCGCTGGCTTACGGTCTGGACAAAGGCACTGGCAACCGTACTATCGCGGTTTA +TGACCTGGGTGGTGGTACTTTCGATATTTCTATTATCGAAATCGACGAAGTTGACGGCGAAAAAACCTTC +GAAGTTCTGGCAACCAACGGTGATACCCACCTGGGGGGTGAAGACTTCGACAGCCGTCTGATCAACTATC +TGGTTGAAGAATTCAAGAAAGATCAGGGCATTGACCTGCGCAACGATCCGCTGGCAATGCAGCGCCTGAA +AGAAGCGGCAGAAAAAGCGAAAATCGAACTGTCTTCCGCTCAGCAGACCGACGTTAACCTGCCATACATC +ACTGCAGACGCGACCGGTCCGAAACACATGAACATCAAAGTGACTCGTGCGAAACTGGAAAGCCTGGTTG +AAGATCTGGTAAACCGTTCCATTGAGCCGCTGAAAGTTGCACTGCAGGACGCTGGCCTGTCCGTATCTGA +TATCGACGACGTTATCCTCGTTGGTGGTCAGACTCGTATGCCAATGGTTCAGAAGAAAGTTGCTGAGTTC +TTTGGTAAAGAGCCGCGTAAAGACGTTAACCCGGACGAAGCTGTAGCAATCGGTGCTGCTGTTCAGGGTG +GTGTTCTGACTGGTGACGTAAAAGACGTACTGCTGCTGGACGTTACCCCGCTGTCTCTGGGTATCGAAAC +CATGGGCGGTGTGATGACGACGCTGATCGCGAAAAACACCACTATCCCGACCAAGCACAGCCAGGTGTTC +TCTACCGCTGAAGACAACCAGTCTGCGGTAACCATCCATGTGCTGCAGGGTGAACGTAAACGTGCGGCTG +ATAACAAATCTCTGGGTCAGTTCAACCTAGATGGTATCAACCCGGCACCGCGCGGCATGCCGCAGATCGA +AGTTACCTTCGATATCGATGCTGACGGTATCCTGCACGTTTCCGCGAAAGATAAAAACAGCGGTAAAGAG +CAGAAGATCACCATCAAGGCTTCTTCTGGTCTGAACGAAGATGAAATCCAGAAAATGGTACGCGACGCAG +AAGCTAACGCCGAAGCTGACCGTAAGTTTGAAGAGCTGGTACAGACTCGCAACCAGGGCGACCATCTGCT +GCACAGCACCCGTAAGCAGGTTGAAGAAGCAGGCGACAAACTGCCGGCTGACGACAAAACTGCTATCGAG +TCTGCGCTGACTGCACTGGAAACTGCTCTGAAAGGTGAAGACAAAGCCGCTATCGAAGCGAAAATGCAGG +AACTGGCACAGGTTTCCCAGAAACTGATGGAAATCGCCCAGCAGCAACATGCCCAGCAGCAGACTGCCGG +TGCTGATGCTTCTGCAAACAACGCGAAAGATGACGATGTTGTCGACGCTGAATTTGAAGAAGTCAAAGAC +AAAAAATAATCGCCCTATAAACGGGTAATTATACTGACACGGGCGAAGGGGAATTTCCTCTCCGCCCGTG +CATTCATCTAGGGGCAATTTAAAAAAGATGGCTAAGCAAGATTATTACGAGATTTTAGGCGTTTCCAAAA +CAGCGGAAGAGCGTGAAATCAGAAAGGCCTACAAACGCCTGGCCATGAAATACCACCCGGACCGTAACCA +GGGTGACAAAGAGGCCGAGGCGAAATTTAAAGAGATCAAGGAAGCTTATGAAGTTCTGACCGACTCGCAA +AAACGTGCGGCATACGATCAGTATGGTCATGCTGCGTTTGAGCAAGGTGGCATGGGCGGCGGCGGTTTTG +GCGGCGGCGCAGACTTCAGCGATATTTTTGGTGACGTTTTCGGCGATATTTTTGGCGGCGGACGTGGTCG +TCAACGTGCGGCGCGCGGTGCTGATTTACGCTATAACATGGAGCTCACCCTCGAAGAAGCTGTACGTGGC +GTGACCAAAGAGATCCGCATTCCGACTCTGGAAGAGTGTGACGTTTGCCACGGTAGCGGTGCAAAACCAG +GTACACAGCCGCAGACTTGTCCGACCTGTCATGGTTCTGGTCAGGTGCAGATGCGCCAGGGATTCTTCGC +TGTACAGCAGACCTGTCCACACTGTCAGGGCCGCGGTACGCTGATCAAAGATCCGTGCAACAAATGTCAT +GGTCATGGTCGTGTTGAGCGCAGCAAAACGCTGTCCGTTAAAATCCCGGCAGGGGTGGACACTGGAGACC +GCATCCGTCTTGCGGGCGAAGGTGAAGCGGGCGAGCATGGCGCACCGGCAGGCGATCTGTACGTTCAGGT +TCAGGTTAAACAGCACCCGATTTTCGAGCGTGAAGGCAACAACCTGTATTGCGAAGTCCCGATCAACTTC +GCTATGGCGGCGCTGGGTGGCGAAATCGAAGTACCGACCCTTGATGGTCGCGTCAAACTGAAAGTGCCTG +GCGAAACCCAGACCGGTAAGCTATTCCGTATGCGCGGTAAAGGCGTCAAGTCTGTCCGCGGTGGCGCACA +GGGTGATTTGCTGTGCCGCGTTGTCGTCGAAACACCGGTAGGCCTGAACGAAAGGCAGAAACAGCTGCTG +CAAGAGCTGCAAGAAAGCTTCGGTGGCCCAACCGGCGAGCACAACAGCCCGCGCTCAAAGAGCTTCTTTG +ATGGTGTGAAGAAGTTTTTTGACGACCTGACCCGCTAACCTCCCCAAAAGCCTGCCCGTGGGCAGGCCTG +GGTAAAAATAGGGTGCGTTGAAGATATGCGAGCACCTGTAAAGTGGCGGGGATCACTCCCATAAGCGCTA +ACTTAAGGGTTGTGGTATTACGCCTGATATGATTTAACGTGCCGATGAATTACTCTCACGATAACTGGTC +AGCAATTCTGGCCCATATTGGTAAGCCCGAAGAACTGGATACTTCGGCACGTAATGCCGGGGCTCTAACC +CGCCGCCGCGAAATTCGTGATGCTGCAACTCTGCTACGTCTGGGGCTGGCTTACGGCCCCGGGGGGATGT +CATTACGTGAAGTCACTGCATGGGCTCAGCTCCATGACGTTGCAACATTATCTGACGTGGCTCTCCTGAA +GCGGCTGCGGAATGCCGCCGACTGGTTTGGCATACTTGCCGCACAAACACTTGCTGTACGCGCCGCAGTT +ACGGGTTGTACAAGCGGAAAGAGATTGCGTCTTGTCGATGGAACAGCAATCAGTGCGCCCGGGGGCGGCA +GCGCTGAATGGCGACTACATATGGGATATGATCCTCATACCTGTCAGTTCACTGATTTTGAGCTAACCGA +CAGCAGAGACGCTGAACGGCTGGACCGATTTGCGCAAACGGCAGACGAGATACGCATTGCTGACCGGGGA +TTCGGTTCGCGTCCCGAATGTATCCGCTCACTTGCTTTTGGAGAAGCTGATTATATCGTCCGGGTTCACT +GGCGAGGATTGCGCTGGTTAACTGCAGAAGGAATGCGCTTTGACATGATGGGTTTTCTGCGCGGGCTGGA +TTGCGGTAAGAACGGTGAAACCACTGTAATGATAGGCAATTCAGGTAATAAAAAAGCCGGAGCTCCCTTT +CCGGCACGTCTCATTGCCGTATCACTTCCTCCCGAAAAAGCATTAATCAGTAAAACCCGACTGCTCAGCG +AGAATCGTCGAAAAGGACGAGTAGTTCAGGCGGAAACGCTGGAAGCAGCGGGCCATGTGCTATTGCTAAC +ATCATTACCGGAAGATGAATATTCAGCAGAGCAAGTGGCTGATTGTTACCGTCTGCGATGGCAAATTGAA +CTGGCTTTTAAGCGGCTCAAAAGTTTGCTGCACCTGGATGCTTTGCGTGCAAAGGAACCTGAACTCGCGA +AAGCGTGGATATTTGCTAATCTACTCGCCGCATTTTTAATTGACGACATAATCCAGCCATCGCTGGATTT +CCCCCCCAGAAGTGCCGGATCCGAAAAGAAGAACTAACTCGTTGTGGAGAATAACAAAAATGGTCATCTG +GAGCTTACAGGTGGCCATTCGTGGGACAGTATCCCTGACAGCCTACAAAACGCAATTGAAGAACGCGAGG +CATCGTCTTAACGAGGCACCGAGGCGTCGCATTCTTCAGATGGTTCAACCCTTAAGTTAGCGCTTATGGG +ATCACTCCCCGCCGTTGCTCTTACTCGGATTCGTAAGCCGTGAAAACAGCAACCTCCGTCTGGCCAGTTC +GGATGTGAACCTCACAGAGGTCTTTTCTCGTTACCAGCGCCGCCACTACGGCGGTGATACAGATGACGAT +CAGGGCGACAATCATCGCCTTATGCTGCTTCATTGCTCTCTTCTCCTTGACCTTACGGTCAGTAAGAGGC +ACTCTACATGTGTTCAGCATATAGGAGGCCTCGGGTTGATGGTAAAATATCACTCGGGGCTTTTCTCTAT +CTGCCGTTCAGCTAATGCCTGAGACAGACAGCCTCAAGCACCCGCCGCTATTATATCGCTCTCTTTAACC +CATTTTGTTTTATCGATTCTAATCCTGAAGACGCCTCGCATTTTTGTGGCGTAATTTTTTAATGATTTAA +TTATTTAACTTTAATTTATCTCTTCATCGCAATTATTGACGACAAGCTGGATTATTTTTGAAATATTGGC +CTAACAAGCATCGCCGACTGACAACAAATTAATTATTACTTTTCCTAATTAATCCCTCAGGAATCCTCAC +CTTAAGCTATGATTATCTAGGCTTAGGGTCACTCGTGAGCGCTTACAGCCGTCAAAAACGCATCTCACCG +CTGATGGCGCAAATTCTTCAATAGCTCGTAAAAAACGAATTATTCCTACACTATAATCTGATTTTAACGA +TGATTCGTGCGGGGTAAAATAGTAAAAACGATCTATTCACCTGAAAGAGAAATAAAAAGTGAAACATCTG +CATCGATTCTTTAGCAGTGATGCCTCGGGAGGCATTATTCTTATCATTGCCGCTATCCTGGCGATGATTA +TGGCCAACAGCGGCGCAACCAGTGGATGGTATCACGACTTTCTGGAGACGCCGGTTCAGCTCCGGGTTGG +TTCACTCGAAATCAACAAAAACATGCTGTTATGGATAAATGACGCGCTGATGGCGGTATTTTTCCTGTTA +GTCGGTCTGGAAGTTAAACGTGAACTGATGCAAGGATCGCTAGCCAGCTTACGCCAGGCCGCATTTCCAG +TTATCGCCGCTATTGGTGGGATGATTGTGCCGGCATTACTCTATCTGGCTTTTAACTATGCCGATCCGAT +TACCCGCGAAGGGTGGGCGATCCCGGCGGCTACTGACATTGCTTTTGCACTTGGTGTACTGGCGCTGTTG +GGAAGTCGTGTTCCGTTAGCGCTGAAGATCTTTTTGATGGCTCTGGCTATTATCGACGATCTTGGGGCCA +TCATTATCATCGCATTGTTCTACACTAATGACTTATCGATGGCCTCTCTTGGCGTCGCGGCTGTAGCAAT +TGCGGTACTCGCGGTATTGAATCTGTGTGGTGCACGCCGCACGGGCGTCTATATTCTTGTTGGCGTGGTG +TTGTGGACTGCGGTGTTGAAATCGGGGGTTCACGCAACTCTGGCGGGGGTAATTGTCGGCTTCTTTATTC +CTTTGAAAGAGAAGCATGGGCGTTCTCCAGCGAAGCGACTGGAGCATGTGTTGCACCCGTGGGTGGCGTA +TCTGATTTTGCCGCTGTTTGCATTTGCTAATGCTGGCGTTTCACTGCAAGGCGTCACGCTGGATGGCTTG +ACCTCCATTCTGCCATTGGGGATCATCGCTGGCTTGCTGATTGGCAAACCGCTGGGGATTAGTCTGTTCT +GCTGGTTGGCGCTGCGTTTGAAACTGGCGCATCTGCCTGAGGGAACGACTTATCAGCAAATTATGGTGGT +GGGGATCCTGTGCGGTATCGGTTTTACTATGTCTATCTTTATTGCCAGCCTGGCCTTTGGTAGCGTAGAT +CCAGAACTGATTAACTGGGCGAAACTCGGTATCCTGGTCGGTTCTATCTCTTCGGCGGTAATTGGATACA +GCTGGTTACGCGTTCGTTTGCGTCCATCAGTTTGACAGGACGGTTTACCGGGGAGCCATAAACGGCTCCC +TTTTCATTGTTATCAGGGAGAGAAATGAGCATGTCTCATATCAATTACAACCACTTGTATTACTTCTGGC +ATGTCTATAAAGAAGGTTCCGTGGTTGGCGCAGCGGAGGCGCTTTATTTAACTCCACAAACCATTACCGG +ACAGATTCGAGCGCTGGAAGAGCGCCTGCAAGGCAAATTATTTAAACGCAAGGGACGTGGTCTCGAACCC +AGCGAGCTGGGAGAACTGGTCTATCGCTATGCCGATAAAATGTTCACCTTAAGCCAGGAAATGCTGGATA +TTGTGAACTATCGCAAAGAATCCAATTTATTGTTTGACGTTGGCGTGGCTGATGCACTTTCCAAACGCCT +GGTCAGTAGCGTACTTAACGCCGCAGTGGTAGAAGGCGAGCCCATTCATCTTCGCTGCTTCGAATCCACC +CACGAAATGCTGCTGGAGCAATTAAGTCAGCATAAACTGGATATGATCATTTCTGACTGTCCGATAGACT +CTACGCAGCAGGAAGGCCTGTTCTCCGTGAGAATTGGCGAATGTGGCGTGAGTTTCTGGTGTACAAATCC +ACCACCAGAAAAACCGTTCCCGGCTTGTCTGGAAGAACGGCGACTTTTGATTCCTGGGCGACGTTCAATG +TTAGGGCGCAAATTGCTTAACTGGTTTAACTCCCAGGGATTAAACGTAGAAATCCTCGGCGAGTTTGATG +ATGCCGCTTTGATGAAAGCTTTTGGTGCGATGCACAATGCAATCTTCGTTGCCCCAACGCTTTATGCATA +TGACTTTTATGCCGATAAAACTGTCGTAGAAATTGGTCGCGTCGAGAATGTGATGGAAGAGTACCATGCT +ATTTTTGCTGAGCGGATGATTCAGCACCCGGCGGTACAGCGAATCTGCAATACGGATTATTCTGCGCTTT +TTAGTCCAGCGGTGCGTTAATCGGCAGCTCCCCCAAAGTTAAGGTGGGGGAGATAGATTAGTTGTACATT +ACCACGATTTTGACTCGGCTCATTATTTGCCCGCTTGAGACATTGTTTCCATATGTACGCGGGCGAATAA +ATAGAGGAATCTGATTACTTCCTTCATGGGGATGCTGAAAAGAGTAGTAATTGCTGGTAATGACTCCAAC +TTATTGATAGTGTTTTATGTTCAGATAATGCCCGATGACTTTGTCATGCAGCTCCACCGATTTTGAGAAC +GACAGCGACTTCCGTCCCAGCCGTGCCAGGTGCTGCCTCAGATTCAGGTTATGCCGCTCAATTCGCTGCG +TATATCGCTTGCTGATTACGTGCAGCTTTCCCTTCAGGCGGGATTCATACAGCGGCCAGCCATCCGTCAT +CCATATCACCACGTCAAAGGGTGACAGCAGGCTCATAAGACGCCCCAGCGTCGCCATAGTGCGTTCACCG +AATACGTGCGCAACAACCGTCTTCCGGAGACTGTCATACGCGTAAAACAGCCAGCGCTGGCGCGATTTAG +CCCCGACATAGCCCCACTGTTCGTCCATTTCCGCGCAGACGATGACGTCACTGCCCGGCTGTATGCGCGA +GGTTACCGACTGCGGCCTGAGTTTTTTAAGTGACGTAAAATCGTGTTGAGGCCAACGCCCATAATGCGGG +CTGTTGCCCGGCATCCAACGCCATTCATGGCCATATCAATGATTTTCTGGTGCGTACCGGGTTGAGAAGC +GGTGTAAGTGAACTGCAGTTGCCATGTTTTACGGCAGTGAGAGCAGAGATAGCGCTGATGTCCGGCGGTG +CTTTTGCCGTTACGCACCACCCCGTCAGTAGCTGAACAGGAGGGACAGCTGATAGAAACAGAAGCCACTG +GAGCACCTCAAAAACACCATCATACACTAAATCAGTAAGTTGGCAGCATCACCTACCTCAATGTGTATCA +CAATATCCATATTCTTTGTGGGGGAGTCTGGAGATTGAGTAGATATTCTTGTTCAGAATGTATCAGCCGA +TGGTTCTACGATTCTTAAGCCACGAAGAGTTCAGATAGTACAACGGCATGTCTCTTTTGACTATCTGGCA +ACCGGCAGTGTGTTCTCTCACGCATCACAAAAGCAGCAGGCATAAAAAAACCCGCTTGCGCGGGCTTTTT +CACAAAGCTTCAGCAAATTGGCGATTAAGCCAGTTTGTTGATCTGTGCAGTCAGGTTAGCCTTATGACGT +GCAGCTTTGTTTTTGTGGATCAGACCTTTAGCAGCCTGACGGTCCACGATCGGTTGCATTTCGTTAAATG +CTTTCTGTGCAGCAGCTTTGTCGCCAGCTTCGATAGCTGCGTATACTTTCTTGATGAAAGTACGCATCAT +AGAGCGACGGCTTGCGTTGTGCTTACGAGCCTTTTCAGACTGAATGGCGCGCTTCTTAGCTGATTTGATA +TTAGCCAAGGTCCAACTCCCAAATGTGTTCTATATGGACAATTCAAAGGCCGAGGAATATGCCCTTTTAG +CCTTCTTTTGTCAATGGATTTGTGCAAATAAGCGCCGTTAATGTGCCGGCACTCGTTACGTAGTGATGGC +GCAGGATTCTACCAGCTTGCGGGGTGTGAATACAGCTTTTCCGCGATAAAAATTGCAGCAGGCGGTCAGT +TTCTTCCCGTGATTTGCGCCATGGCAATGAAAAGCCACTTCTTTCTGATTTCGGTACTCAATCGCCGGTT +AACCTTGACCGCTGTACAAGGTATACTCGGACGATTTTCACTGTTTTGAGCCAGACATGAAGCTGATACG +CGGCATACATAATCTCAGCCAGGCCCCGCAAGAAGGGTGTGTGCTGACTATTGGTAATTTCGACGGCGTG +CATCGCGGTCATCGCGCGCTGTTACAGGGCTTGCAGGAAGAAGGGCGCAAGCGCAACTTACCGGTGATGG +TGATGCTTTTTGAACCTCAACCACTGGAACTGTTTGCTACCGATAAAGCCCCGGCAAGACTGACCCGGCT +GCGGGAAAAACTGCGTTACCTTGCAGAGTGTGGCGTTGATTACGTGCTGTGCGTGCGTTTCGACAGGCGT +TTCGCGGCGTTAACCGCGCAAAATTTCATCAGCGATCTTCTGGTGAAGCATTTGCGCGTAAAATTTCTTG +CCGTAGGTGATGATTTCCGCTTTGGCGCTGGTCGTGAAGGCGATTTCTTGTTATTACAGAAAGCTGGCAT +GGAATACGGCTTCGATATCACCAGTACGCAAACTTTTTGCGAAGGTGGCGTGCGCATCAGCAGCACCGCC +GTGCGTCAGGCCCTTGCGGATGACAATCTGGCTCTGGCAGAGAGTTTACTGGGGCACCCGTTTGCCATCT +CCGGGCGTGTAGTCCACGGTGATGAATTAGGGCGCACTATAGGTTTCCCGACGGCGAATGTACCGCTGCG +CCGTCAGGTTTCCCCGGTGAAAGGGGTTTATGCGGTAGAAGTGCTGGGCCTCGGTGAAAAGCCGTTACCC +GGCGTGGCAAACATCGGAACACGCCCAACGGTTGCCGGTATTCGCCAGCAGCTGGAAGTGCATTTGTTAG +ATGTTGCAATGGACCTTTACGGTCGCCATATACAAGTAGTGCTGCGTAAAAAAATACGCAATGAGCAGCG +ATTTGCGTCGCTGGACGAACTGAAAGCGCAGATTGCGCGTGATGAATTAACCGCCCGCGAATTTTTTGGG +CTAACAAAACCGGCTTAAGCCTGTTATGTAATCAAACCGAAATACGGAACCGAGAATCTGATGAGTGACT +ATAAATCAACCCTGAATTTGCCGGAAACAGGGTTCCCGATGCGTGGCGATCTCGCCAAGCGCGAACCCGG +AATGCTGGCGCGTTGGACTGATGATGATCTGTACGGCATCATCCGTGCGGCTAAAAAAGGCAAAAAAACC +TTCATTCTGCATGATGGCCCTCCTTATGCGAATGGCAGCATTCATATTGGTCACTCGGTTAACAAGATTC +TGAAAGACATTATCGTGAAGTCCAAAGGGCTTTCCGGTTATGACTCGCCGTATGTGCCTGGCTGGGACTG +CCACGGTCTGCCGATCGAGCTGAAAGTCGAGCAAGAATACGGTAAGCCGGGTGAGAAATTCACCGCCGCC +GAGTTCCGCGCCAAGTGCCGCGAATACGCGGCGACCCAGGTTGACGGTCAACGCAAAGACTTTATCCGTC +TGGGCGTGCTGGGCGACTGGTCGCACCCGTACCTGACCATGGACTTCAAAACTGAAGCCAACATCATCCG +CGCGCTGGGCAAAATCATCGGCAACGGTCACCTGCACAAAGGCGCGAAGCCAGTTCACTGGTGCGTTGAC +TGCCGTTCTGCGCTGGCGGAAGCGGAAGTTGAGTATTACGACAAAACTTCTCCGTCCATCGACGTTGCTT +TCCAGGCAGTCGATCAGGATGCACTGAAAGCAAAATTTGCCGTAAGCAACGTTAACGGCCCAATCTCGCT +GGTAATCTGGACCACCACGCCGTGGACTCTGCCTGCCAACCGCGCAATCTCTATTGCACCAGATTTCGAC +TATGCGCTGGTGCAGATCGACGGTCAGGCCGTGATTCTGGCGAAAGATCTGGTTGAAAGCGTAATGCAGC +GTATCGGCGTGACCGATTACACCATTCTCGGCACGGTAAAAGGTGCGGAGCTTGAGCTGCTGCGCTTTAC +CCATCCGTTTATGGGCTTCGACGTTCCGGCAATCCTCGGCGATCACGTTACCCTGGATGCCGGTACCGGT +GCCGTTCACACCGCGCCTGGCCACGGCCCGGACGACTATGTGATCGGTCAGAAATACGGCCTGGAAACCG +CTAACCCGGTTGGCCCGGACGGCACTTATCTGCCGGGCACTTATCCGACGCTGGATGGCGTGAACGTCTT +CAAAGCGAACGACATCGTCGTTGCGCTGCTGCAGGAAAAAGGCGCGCTGCTGCACGTTGAGAAAATGCAG +CACAGCTATCCGTGCTGCTGGCGTCACAAAACGCCGATCATCTTCCGCGCGACGCCGCAGTGGTTCGTCA +GCATGGATCAGAAAGGTCTGCGTGCGCAGTCACTGAAAGAGATCAAAGGCGTGCAGTGGATCCCGGACTG +GGGCCAGGCGCGTATCGAGTCGATGGTTGCTAACCGTCCTGACTGGTGTATCTCCCGTCAGCGCACCTGG +GGTGTACCGATGTCACTGTTCGTGCACAAAGACACGGAAGAGCTGCATCCGCGTACCCTTGAACTGATGG +AAGAAGTGGCAAAACGCGTTGAAGTCGATGGCATCCAGGCGTGGTGGGATCTCGATGCGAAAGAGATCCT +CGGCGACGAAGCTGATCAGTACGTGAAAGTGCCGGACACATTGGATGTATGGTTTGACTCCGGATCTACC +CACTCTTCTGTTGTTGACGTGCGTCCGGAATTTGCCGGTCACGCAGCGGACATGTATCTGGAAGGTTCTG +ACCAACACCGCGGCTGGTTCATGTCTTCCCTAATGATCTCCACCGCGATGAAGGGTAAAGCGCCGTATCG +TCAGGTACTGACCCACGGCTTTACCGTGGATGGTCAGGGCCGCAAGATGTCTAAATCCATCGGCAATACC +GTTTCGCCGCAGGATGTGATGAACAAACTGGGCGCGGATATTCTGCGTCTGTGGGTGGCATCAACCGACT +ACACCGGTGAAATGGCCGTTTCTGACGAGATCCTGAAACGTGCTGCCGATAGCTATCGTCGTATCCGTAA +CACCGCGCGCTTCCTGCTGGCAAACCTGAACGGTTTTGATCCAGCAAAAGATATGGTGAAACCGGAAGAG +ATGGTGGTACTGGATCGCTGGGCCGTAGGTTGTGCGAAAGCGGCACAGGAAGACATCCTCAAGGCGTACG +AAGCATACGATTTCCACGAAGTGGTACAGCGTCTGATGCGCTTCTGCTCCGTTGAGATGGGTTCCTTCTA +CCTCGACATCATCAAAGACCGTCAGTACACCGCCAAAGCGGACAGTGTGGCGCGTCGTAGCTGCCAGACT +GCGCTATATCACATCGCAGAAGCGCTGGTGCGCTGGATGGCACCAATCCTCTCCTTCACCGCTGATGAAG +TGTGGGGCTACCTGCCGGGCGAACGTGAAAAATACGTCTTCACCGGTGAGTGGTACGAAGGCCTGTTTGG +CCTGGCAGACAGTGAAGCGATGAACGATGCGTTCTGGGACGAGCTGTTGAAAGTGCGTGGCGAAGTGAAC +AAAGTCATTGAGCAAGCGCGTGCCGACAAGAAAGTGGGTGGCTCGCTGGAAGCGGCAGTAACCTTGTATG +CAGAACCGGAACTGTCGGCGAAACTGACCGCGCTGGGCGATGAATTACGATTTGTCCTGTTGACCTCCGG +CGCTACCGTTGCAGACTATAACGACGCACCTGCTGATGCTCAGCAGAGCGAAGTACTCAAAGGGCTGAAA +GTCGCGTTGAGTAAAGCCGAAGGTGAGAAGTGCCCACGCTGCTGGCACTACACCCAGGATGTCGGCAAGG +TGGCGGAACACGCAGAAATCTGCGGCCGCTGTGTCAGCAACGTCGCCGGTGACGGTGAAAAACGTAAGTT +TGCCTGATGAGTCAATCGATCTGTTCAACAGGGCTACGCTGGCTGTGGCTGGTGGTAGTCGTGCTGATTA +TCGATCTGGGCAGCAAATACCTGATCCTCCAGAACTTTGCTCTGGGGGATACGGTCCCGCTGTTCCCGTC +GCTTAATCTGCATTATGCGCGTAACTATGGCGCGGCGTTTAGTTTCCTTGCCGATAGCGGCGGCTGGCAG +CGTTGGTTCTTTGCCGGTATTGCGATTGGTATTAGCGTGATCCTGGCAGTGATGATGTATCGCTCGAAGG +CCACGCAGAAGCTAAACAATATCGCTTACGCGCTGATTATTGGCGGCGCGCTGGGCAACCTGTTCGACCG +CCTGTGGCACGGCTTCGTTGTCGATATGATCGACTTCTACGTCGGCGACTGGCACTTCGCCACCTTCAAC +CTTGCCGATACTGCCATCTGTGTCGGTGCGGCACTGATTGTGCTGGAAGGTTTTTTGCCTTCTAGAGCGA +AAAAACAATAATAAACCCTGCCGGATGCGATGCTGACGCATCTTATCCGGCCTACAGATTGCTGCGAAAT +CGTAGGCCGGATAAGGCGTTTACGCCGCATCCGGCAAAAATCCTTAAATATAAGAGCAAACCTGCATGTC +TGAATCTGTACAGAGCAATAGCGCCGTCCTGGTGCACTTCACGCTAAAACTCGACGATGGCACCACCGCC +GAGTCTACCCGCAACAACGGTAAACCGGCGCTGTTCCGCCTGGGTGATGCTTCTCTTTCTGAAGGGCTGG +AGCAACACCTGTTGGGGCTGAAAGTGGGCGATAAAACCACCTTCTCGTTGGAGCCAGATGCGGCGTTTGG +CGTGCCGTCACCGGACCTGATTCAGTACTTCTCCCGCCGTGAATTTATGGATGCAGGCGAGCCAGAAATT +GGCGCAATCATGCTTTTTACCGCAATGGATGGCAGTGAGATGCCTGGCGTGATCCGCGAAATTAACGGCG +ACTCCATTACCGTTGATTTCAACCATCCGCTGGCCGGGCAGACCGTTCATTTTGATATTGAAGTGCTGGA +AATCGATCCGGCACTGGAGGCGTAACATGCAGATCCTGTTGGCCAACCCGCGTGGTTTTTGTGCCGGGGT +AGACCGCGCTATCAGCATTGTTGAAAACGCGCTGGCCATTTACGGCGCACCGATATATGTCCGTCACGAA +GTGGTACATAACCGCTATGTGGTCGATAGCTTGCGTGAGCGTGGGGCTATCTTTATTGAGCAGATTAGCG +AAGTACCGGACGGCGCGATCCTGATTTTCTCCGCACACGGTGTTTCTCAGGCGGTACGTAACGAAGCAAA +AAGTCGCGATTTGACGGTGTTTGATGCCACCTGTCCGCTGGTGACCAAAGTGCATATGGAAGTCGCCCGC +GCCAGTCGCCGTGGCGAAGAATCTATTCTCATCGGTCACGCCGGGCACCCGGAAGTGGAAGGGACAATGG +GCCAGTACAGTAACCCGGAAGGGGGAATGTATCTGGTCGAATCGCCGGACGATGTGTGGAAACTGACGGT +CAAAAACGAAGAGAAGCTCTCCTTTATGACCCAGACCACGCTGTCGGTGGATGACACGTCTGATGTGATC +GACGCGCTGCGTAAACGCTTCCCGAAAATTGTCGGTCCGCGCAAAGATGACATCTGCTACGCCACGACTA +ACCGTCAGGAAGCGGTACGCGCCCTGGCAGAACAGGCGGAAGTTGTGTTGGTGGTCGGTTCGAAAAACTC +CTCCAACTCCAACCGTCTGGCGGAGCTGGCCCAGCGTATGGGCAAACGCGCGTTTTTGATTGACGATGCG +AAAGACATCCAGGAAGAGTGGGTGAAAGAGGTTAAATGCGTCGGCGTGACTGCGGGCGCATCGGCTCCGG +ATATTCTGGTGCAGAATGTGGTGGCACGTTTGCAGCAGCTGGGCGGTGGTGAAGCCATTCCGCTGGAAGG +CCGTGAAGAAAACATTGTTTTCGAAGTGCCGAAAGAGCTGCGTGTCGATATTCGTGAAGTCGATTAAGTC +ATTAGCAGCCTAAGTTATGCGAAAATGCCGGTCTTGTTACCGGCATTTTTTATGGAGAAAACATGCGTTT +ACCTATCTTCCTCGATACTGACCCCGGCATTGACGATGCCGTCGCCATTGCCGCCGCGATTTTTGCACCC +GAACTCGACCTGCAACTGATGACCACCGTCGCGGGTAATGTCTCGGTTGAGAAAACTACCCGCAATGCCC +TGCAACTGCTGCATTTCTGGAATGCGGAGATTCCGCTCGCCCAAGGGGCCGCTGTGCCACTGGTACGCGC +ACCGCGTGATGCGGCATCTGTGCACGGCGAATCGGGAATGGCTGGCTACGACTTTGTTGAGCACAACCGA +AAGCCGCTCGGGATACCGGCGTTTCTGGCGATTCGGGATGCCCTGATGCGTGCACCAGAGCCTGTTACCC +TGGTGGCCATCGGCCCGTTAACCAATATTGCGCTGTTACTTTCACAATGCCCGGAATGCAAGCCGTATAT +TCGCCGTCTGGTGATCATGGGTGGTTCTGCCGGACGCGGCAACTGTACGCCAAACGCCGAGTTTAATATT +GCTGCCGATCCAGAAGCTGCTGCCTGTGTCTTCCGCAGTGGTATTGAAATCGTCATGTGCGGTTTGGATG +TCACCAATCAGGCAATATTAACTCCTGACTATCTCTCTACACTGCCGCAGTTAAACCGTACCGGGAAAAT +GCTTCACGCCCTGTTTAGCCACTACCGTAGCGGCAGTATGCAAAGCGGCTTGCGAATGCACGATCTCTGC +GCCATCGCCTGGCTGGTGCGCCCGGACCTGTTCACTCTCAAACCCTGTTTTGTGGCAGTGGAAACTCAGG +GCGAATTTACCTCAGGCACGACGGTGGTTGATATCGACGGTTGCCTGGGCAAGCCAGCCAATGTACAGGT +GGCATTGGATCTGGATGTGAAAGGCTTCCAGCAGTGGGTGGCTGAGGTGCTGGCTCTGGCGTCGTAACCT +GTCACATGTTATTGGCATGCAGTCATTCATCGACTCATGCCTTTCACTGATATCCCTCCCTGTTTATCAT +TAATTTCTAATTATCAGCGTTTTTGGCTGGCGGCGTAGCGATGCGCTGGTTACTCTGAAAACGGTCTATG +CAAATTAACAAAAGAGAATAGCTATGCATGATGCAAACATCCGCGTTGCCATCGCGGGAGCCGGGGGGCG +TATGGGCCGCCAGTTGATTCAGGCGGCGCTGGCATTAGAGGGCGTGCAGTTGGGCGCTGCGCTGGAGCGT +GAAGGATCTTCTTTACTGGGCAGCGACGCCGGTGAGCTGGCCGGAGCCGGGAAAACAGGCGTTACCGTGC +AAAGCAGCCTCGATGCGGTAAAAGATGATTTTGATGTGTTTATCGATTTTACCCGTCCGGAAGGTACGCT +GAACCATCTCGCTTTTTGTCGCCAGCATGGCAAAGGGATGGTGATCGGCACTACGGGGTTTGACGAAGCC +GGTAAACAAGCAATTCGTGACGCCGCTGCCGATATTGCGATTGTCTTTGCTGCCAATTTTAGCGTTGGCG +TTAACGTCATGCTTAAGCTGCTGGAGAAAGCAGCCAAAGTGATGGGTGACTACACCGATATCGAAATTAT +TGAAGCACATCATAGACATAAAGTTGATGCGCCGTCAGGCACCGCACTGGCAATGGGAGAGGCGATCGCC +CACGCCCTTGATAAAGATCTGAAAGATTGCGCGGTCTACAGTCGTGAAGGCCACACCGGTGAACGTGTGC +CTGGCACCATTGGTTTTGCCACCGTGCGTGCAGGTGACATCGTTGGTGAACATACCGCGATGTTTGCCGA +TATTGGCGAGCGTCTGGAGATCACCCATAAGGCGTCCAGCCGTATGACATTTGCTAACGGCGCGGTAAGA +TCGGCTTTGTGGTTGAGTGGTAAGGAAAGCGGTCTTTTTGATATGCGAGATGTACTTGATCTCAATAATT +TGTAACCACAAAATATTTGTTATGGTGCAAAAATAACACATTTAATTTATTGATTATAAAGGGCTTTAAT +TTTTGGCCCTTTTATTTTTGGTGTTATGTTTTTAAATTGTCTATAAGTGCCAAAAATTACATGTTTTGTC +TTCTGTTTTTGTTGTTTTAATGTAAATTTTGACCATTTGGTCCACTTTTTTCTGCTCGTTTTTATTTCAT +GCAATCTTCTTGCTGCGCAAGCGTTTTCCAGAACAGGTTAGATGATCTTTTTGTCGCTTAATGCCTGTAA +AACATGCATGAGCCACAAAATAATATAAAAAATCCCGCCATTAAGTTGACTTTTAGCGCCCATATCTCCA +GAATGCCGCCGTTTGCCAGAAATTCGTCGGTAAGCAGATTTGCATTGATTTACGTCATCATTGTGAATTA +ATATGCAAATAAAGTGAGTGAATATTCTCTGGAGGGTGTTTTGATTAAGTCAGCGCTATTGGTTCTGGAA +GACGGAACCCAGTTTCACGGTCGGGCCATAGGGGCAACAGGTTCGGCGGTTGGGGAAGTCGTTTTCAATA +CTTCAATGACCGGTTATCAAGAAATCCTCACTGATCCTTCCTATTCTCGTCAAATCGTTACTCTTACTTA +TCCCCATATTGGCAATGTCGGCACCAATGACGCCGATGAAGAATCTTCTCAGGTACATGCACAAGGTCTG +GTGATTCGCGACCTGCCGCTGATTGCCAGCAACTTCCGTAATACCGAAGACCTCTCTTCTTACCTGAAAC +GCCATAACATCGTGGCGATTGCCGATATCGATACCCGTAAGCTGACGCGTTTACTGCGCGAGAAAGGCGC +ACAGAATGGCTGCATTATCGCGGGCGATAACCCGGATGCGGCGCTGGCGTTAGAAAAAGCCCGCGCGTTC +CCAGGTCTGAATGGCATGGATCTGGCAAAAGAAGTGACCACCGCAGAAGCCTATAGCTGGACACAAGGGA +GCTGGACGTTGACCGGTGGCCTGCCAGAAGCGAAAAAAGAAGACGAGCTGCCGTTCCACGTCGTGGCTTA +TGATTTTGGTGCCAAGCGCAACATCCTGCGGATGCTGGTGGATAGAGGCTGTCGCCTGACCATCGTTCCG +GCGCAAACTTCTGCGGAAGATGTGCTGAAAATGAATCCAGACGGCATCTTCCTCTCCAACGGTCCTGGCG +ACCCGGCCCCGTGCGATTACGCCATTACCGCCATCCAGAAATTCCTCGAAACCGATATTCCGGTATTCGG +CATCTGTCTCGGTCATCAGCTGCTGGCGCTGGCGAGCGGTGCGAAGACTGTCAAAATGAAATTTGGTCAC +CACGGCGGCAACCATCCGGTTAAAGATGTGGAGAAAAACGTGGTAATGATCACCGCCCAGAACCACGGTT +TTGCGGTGGACGAAGCAACATTACCTGCAAACCTGCGTGTCACGCATAAATCCCTGTTCGACGGTACGTT +ACAGGGCATTCATCGCACCGATAAACCGGCATTCAGCTTCCAGGGGCACCCTGAAGCCAGCCCTGGTCCA +CACGACGCCGCGCCGTTGTTCGACCACTTTATCGAGTTAATTGAGCAGTACCGTAAAACCGCTAAGTAAT +CAGGAGTAAAAGAGCCATGCCAAAACGTACAGATATAAAAAGTATCCTGATTCTGGGTGCGGGCCCGATT +GTTATCGGTCAGGCGTGTGAGTTTGACTACTCTGGCGCGCAAGCGTGTAAAGCCCTGCGTGAAGAGGGTT +ACCGCGTCATTCTGGTGAACTCCAACCCGGCGACCATCATGACCGACCCGGAAATGGCTGATGCAACCTA +CATCGAGCCGATTCACTGGGAAGTTGTACGCAAGATTATTGAAAAAGAGCGCCCGGACGCGGTGCTGCCA +ACGATGGGCGGTCAGACGGCGCTGAACTGCGCGCTGGAGCTGGAACGTCAGGGCGTGTTGGAAGAGTTCG +GTGTCACCATGATTGGTGCCACTGCCGATGCGATTGATAAAGCAGAAGACCGCCGTCGTTTCGACGTAGC +GATGAAGAAAATTGGTCTGGAAACCGCGCGTTCCGGTATCGCACACACGATGGAAGAAGCGCTGGCGGTT +GCCGCTGACGTGGGCTTCCCGTGCATTATTCGCCCATCCTTTACCATGGGCGGTAGCGGCGGCGGTATCG +CTTATAACCGTGAAGAGTTTGAAGAAATTTGCGCCCGCGGTCTGGATCTCTCTCCGACCAAAGAGTTGCT +GATTGATGAGTCGCTGATCGGCTGGAAAGAGTACGAGATGGAAGTGGTGCGTGATAAAAACGACAACTGC +ATCATCGTCTGCTCTATCGAAAACTTCGATGCGATGGGCATCCACACCGGTGACTCCATCACTGTCGCGC +CAGCCCAAACGCTGACCGACAAAGAATATCAAATCATGCGTAACGCCTCGATGGCGGTGCTGCGTGAAAT +CGGCGTTGAAACCGGTGGTTCCAACGTTCAGTTTGCGGTGAACCCGAAAAACGGTCGTCTGATTGTTATC +GAAATGAACCCACGCGTGTCCCGTTCTTCGGCGCTGGCGTCGAAAGCGACCGGTTTCCCGATTGCTAAAG +TGGCGGCGAAACTGGCGGTGGGTTACACCCTCGACGAACTGATGAACGACATCACTGGCGGACGTACTCC +GGCCTCCTTCGAGCCGTCCATCGACTATGTGGTTACTAAAATTCCTCGCTTCAACTTCGAAAAATTCGCC +GGTGCTAACGACCGTCTGACCACTCAGATGAAATCGGTTGGCGAAGTGATGGCGATTGGTCGCACGCAGC +AGGAATCCCTGCAAAAAGCGCTGCGCGGCCTGGAAGTCGGTGCGACTGGATTCGACCCGAAAGTGAGCCT +GGATGACCCGGAAGCGTTAACCAAAATCCGTCGCGAACTGAAAGACGCAGGCGCAGATCGTATCTGGTAC +ATCGCCGATGCGTTCCGTGCGGGCCTGTCTGTGGACGGCGTCTTCAACCTGACCAACATTGACCGCTGGT +TCCTGGTACAGATTGAAGAGCTGGTGCGTCTGGAAGAGAAAGTGGCGGAAGTGGGCATCACTGGCCTGAA +CGCTGACTTCCTGCGCCAGCTGAAACGCAAAGGCTTTGCCGATGCGCGCTTGGCAAAACTGGCGGGCGTA +CGCGAAGCGGAAATCCGTAAGCTGCGTGACCAGTATGACCTGCACCCGGTTTATAAGCGCGTGGATACCT +GTGCGGCAGAGTTCGCCACCGACACCGCTTACATGTACTCCACTTATGAAGAAGAGTGCGAAGCGAATCC +GTCTACCGACCGTGAAAAAATCATGGTGCTTGGCGGCGGCCCGAACCGTATCGGTCAGGGTATCGAATTC +GACTACTGTTGCGTACACGCCTCGCTGGCGCTGCGCGAAGACGGTTACGAAACCATTATGGTTAACTGTA +ACCCGGAAACCGTCTCCACCGACTACGACACTTCCGACCGCCTCTACTTCGAGCCGGTAACTCTGGAAGA +TGTGCTGGAAATCGTGCGTATCGAGAAGCCGAAAGGCGTTATCGTCCAGTACGGCGGTCAGACCCCGCTG +AAACTGGCGCGCGCGCTGGAAGCTGCTGGCGTACCGGTTATCGGCACCAGCCCGGATGCTATCGACCGTG +CAGAAGACCGTGAACGCTTCCAGCATGCGGTTGAGCGTCTGAAACTGAAACAACCGGCGAACGCCACCGT +TACCGCTATTGAAATGGCGGTAGAGAAGGCGAAAGAGATTGGCTACCCGCTGGTGGTACGTCCGTCTTAC +GTTCTCGGCGGTCGGGCGATGGAAATCGTCTATGACGAAGCTGACCTGCGTCGCTACTTCCAGACGGCGG +TCAGCGTGTCTAACGATGCGCCAGTGTTGCTGGACCACTTCCTCGATGACGCGGTAGAAGTTGACGTGGA +TGCCATCTGCGACGGCGAAATGGTGCTGATTGGCGGCATCATGGAGCATATTGAGCAGGCGGGCGTGCAC +TCCGGTGACTCCGCATGTTCTCTGCCAGCCTACACCTTAAGTCAGGAAATTCAGGATGTGATGCGCCAGC +AGGTGCAGAAACTGGCCTTCGAATTGCAGGTGCGCGGCCTGATGAACGTGCAGTTTGCGGTGAAAAACAA +CGAAGTCTACCTGATTGAAGTTAACCCGCGTGCGGCGCGTACCGTTCCGTTCGTCTCCAAAGCCACCGGC +GTACCGCTGGCAAAAGTGGCGGCGCGCGTGATGGCTGGCAAATCGCTGGCTGAGCAGGGCGTAACCAAAG +AAGTTATCCCGCCGTACTACTCGGTGAAAGAAGTGGTGCTGCCGTTCAATAAATTCCCGGGCGTTGACCC +GCTGTTAGGGCCAGAAATGCGCTCTACCGGGGAAGTCATGGGCGTGGGCCGCACCTTCGCTGAAGCGTTT +GCCAAAGCGCAGCTGGGCAGCAACTCCACCATGAAGAAACACGGTCGTGCGCTGCTTTCCGTGCGCGAAG +GCGATAAAGAACGCGTGGTGGACCTGGCGGCAAAACTGCTGAAACAGGGCTTCGAGCTGGATGCGACCCA +CGGCACGGCGATTGTGCTGGGCGAAGCAGGTATCAACCCGCGTCTGGTAAACAAGGTGCATGAAGGCCGT +CCGCACATTCAGGACCGTATCAAGAATGGCGAATATACCTACATCATCAACACCACCTCAGGCCGTCGTG +CGATTGAAGACTCCCGCGTGATTCGTCGCAGTGCGCTGCAATATAAAGTGCATTACGACACCACCCTGAA +CGGCGGCTTTGCCACCGCGATGGCGCTGAATGCCGATGCGACTGAAAAAGTAATTTCGGTGCAGGAAATG +CACGCACAGATCAAATAATAGCGTGTCATGGCAGATATTTTTCATCCGCTAATTTGATCGAATAACTAAT +ACGGTTCTCTGATGAGGACCGTTTTTTTTTGCCCATTAAGTAAATCTTTTGGGGAATCGATATTTTTGAT +GACATAAGCAGGATTTAGCTCACACTTATCGACGGTGAAGTTGCATACTATCGATATATCCACAATTTTA +ATATGGCCTTGTTTAATTGCTTCAAAACGAGTCATAGCCAGACTTTTAATTTGTGAAACTGGAGTTCGTA +TGTGTGAAGGATATGTTGAAAAACCACTCTACTTGTTAATCGCCGAATGGATGATGGCTGAAAATCGGTG +GGTGATAGCAAGAGAGATCTCTATTCATTTCGATATTGAACACAGCAAGGCGGTTAATACCCTGACTTAT +ATTCTGTCGGAAGTCACAGAAATAAGCTGCGAAGTTAAGATGATCCCTAATAAGCTGGAAGGGCGGGGAT +GCCAGTGTCAGCGACTGGTTAAAGTGGTCGATATCGATGAGCAAATTTACGCGCGCCTGCGCAATAACAG +TCGGGAAAAATTAGTCGGTGTAAGAAAGACGCCGCGTATTCCTGCCGTTCCGCTCACGGAACTTAACCGC +GAGCAGAAGTGGCAGATGATGTTGTCAAAGAGTATGCGTCGTTAATTTTATCTCGTTGATACCGGGCGTC +CTGCTTGCCAGATGCGATGTTGTAGCATCTTATCCAGCAACCAGGTCGCATCCGGCAAGATCACCGTTTA +GGCGTCACATCCGTCGTCCCCTGCAAACGGGGGCGATTTTCCTCCATTTGCCTCAGTGGCTGCGTTTCAT +GTAACGATACATGACAGCGCCCGACAAGATCCTGATACTCTTTGGTATTCAACCGTTTCCAGTGTAACTC +GTCGTCACTAACATTGCGTACAGCGCGGGCTGGCGTACCCATCAACAACTGGCGTTTCTCGCCGCGAAAG +CCCGCTTTGACAAAGCTCATGGCGGCAACAATGCTCTCTTCGCCAATGACCGCGCCATCCATAATCACGC +TGTTCATCCCGACCAATGCATCGCGACCAATCAAACAACCATGCAGGATCGCTCCGTGCCCGATATGGCC +GTTTTCCCCAACGATAGTGTCAGTGTCGCAGTAGCCATGCATAATGCAGCCATCCTGAATATTGGCTCCC +GCTTGCACGATCAACCGCCCGTAGTCACCACGCAGTGAGGCGAGTGGGCCGATGTAGACACCGGCTCCCA +CAATCACATCGCCAATCAAGACGGCACTGGGATGGACAAACGCCGTCGGGTGAACCACCGGAATTAACCC +CTCAAAGGCGTAATAGCTCACGGTTGTTAACGTCCTTTCCACACCGGATCGCGCTTCTCGGCAAACGCCA +GCGGCCCTTCAATGGCATCTTCCGAATGCAGAACCGATGGATAGTGTTTCAACACGCCGCTGCGAATATA +GCGATACGCTTCTTCTACCGGCATTTCGCTGGTGGTGCGGTAGATCTCTTTCAGCGCCGCAATCGCCAGC +GGGGCGCTGTTAACCAGCTGCTGAGCCAGTTCGCGGGCGTTATCCATCAGTTCCGCCTGGCTAACCACGC +GGTTGACTATCCCCCAACGCAGCGCCTCTTCTGCGCCCATTCGTCTGCCGGTCATCACCATTTCATTGAC +GATGGCAGGCGGCAGGATCTTCGGCAGACGCAGCACACCGCCGCTGTCAGGAACGATGCCCAGTTTGGCT +TCCGGCAGGGCGAAGCTGGCGTTATCGGCACAAACAATAAAATCTGCCGCCAGCGCCAGTTCAAAGCCGC +CGCCAAAGGCATAGCCGTTCACAGCTGCGATAACCGGTTTGTCGAGATTGAAAATTTCGGTTAATCCCGC +AAAACCACCCGGACCAAAGTCAGCATCCGGTGCTTCGCCTTCTGCTGCCGCTTTTAAATCCCAGCCCGCG +GAAAAGAACTTCTCTCCGGCACCGGTAATAATGGCGACACGTAATTGCGGATCGTCACGGAAATTTAGAA +ATACTTCGCCCATTTCAAAGCTGGTTTTTGCATCAATAGCATTCGCTTTTGGACGATCAAGGGTAATTTC +CAGAATTGATCCATTGCGGGTCAGATGTAATGATTCACTCATTCCTTTTCTCCATTTTTGCTTTTTCAGG +GACGACAACATCCCTGCAAAAAATGCATATTGTTTTAGAGTGTGATTATTAGCTGGCAGGGTAGTTCCCT +GCTGTTTCATTTATTTCAGATTCTTTCTAATTATTTTCCCCGAGCAATTACGTGGCAGATCTTTTCTGAT +CTCCAGATAAGAGGGCACTTTAAATTTCGCCATATTTTGTTCGCAGAAGCGGAAAAATTCCTCTTCGCTC +AATGTTTCACCTTCATTCAGCACCACAAATGCTTTGATGGCTTCATCGCGAATCGAATCTTTAATACCCA +CAACCACGATGTCCTGAATTTTCGGGTGCGCGGCGATAATATTTTCCAGCTCCACGCAGGAGACATTCTC +GCCGCCACGTTTAATCATATTGCAGCGGCGATCGACGAAATAAAAAAAGTCCTCTTCGTCGCGGTATCCG +GTATCGCCGGTATGCAGCCAGCCATCGGCTTCCAGCACTTTCGCAGTGGCTTGTGGGTTGAGAAAGTACT +CTTTGAAGATGGTTTTCCCAGGTATGCCTTTAATGCAGATTTCACCGATCTCACCAGCCGGGAGCGGGCG +ATTGTGATCGTCGCGGATCTCCGCTTCGTAGCAAAACCCCACCCGACCAATCGACGGCCAGCGTCGTTTA +TCGCCAGGACGATCGCCGATAATGCCCACAATGGTTTCCGTCATCCCATAAGACGTCAGCAAGCGAACGC +CGAAGCGTTCACAAAACGCATCTTTTTCCTGCTCCGACAAGTTGAGATAAAACATCACTTCCCGCAGGCG +GTGTTGCTGATCGTTCGCTGAAGGCGGCTGTACCATCAACGTACGGATCATCATCGGAATACATTCGGTA +ACGGTGGCGCGGTACTTCTGTACCTGTCCCCAGAAGGCGCGGGCGCTGTATTTCTCGACCAGCACAAAGG +TGGCCCCGGCAGAAAACGCCGCCATCGCCGCAGTACACTGGCAATCGATATGAAACGCAGGCATTACCGT +CAGGTAGACGTCATCGTCACGCAGTGCACACTGCCAGGCGGAGTAATATCCAGCGAAGCGCAGGTTGTAA +TGGGTAATCACCACACCTTTCGGTCGGGAGGTGGTGCCGGAGGTGAAGAGAATTTCCGCCGTATCGTCAG +TCGATAGCGGCGGTGCATAGCACAAGGTGGCAGGTTGTTGATTTTTCAGTTGAGTAAACGAACTCACGCC +ATCATCAGCGGGAAGTGCCACATCTGTCAGGCAAATGTGCCGCAATTGAGTGGCATCTTCCTGCTGAATC +TGTTGATACATAGGATAGAATTGCGCACTGGTCACCAGCAGGCACGCCTGGCTATTTTGCAGGATCCACG +CGCTTTCCTCGCACAACAGGCGGGCGTTAATCGGCACCATAATCGCGCCAATTTTTGCCAGCCCGAACCA +GCAAAAGATAAATTCCGGGCAGTTGTCGAGATGTAGTGCAACCTTGTCGCCTTTGCGAATCCCCAGCGTA +TAAAACAGGTTTGCCGTGCGGTTAATCTCCTGATTTAACTCAAGATAACTATACCGGTTAACGACTCCGC +CGCTGGATTCACAAATCAGCGCCGTTTTATGACCGTAAACGTCCGCAAGATCGTCCCACATTTGACGTAG +ATGTTGTCCGCCAATGATATCCATTGCACCTCTATCCATTTTTGTTCGTTTGTTATTGGGCGGGCGCTAG +TCAGGCAAGCCGACTGACGCCACGCGTTTAGTCCTCAACTTTGGCCAGACCTTTGCTGACCAACTCCTGA +ATGTCGTTTTCGCTGTAGCCGATATTTTTCAAAATGGCAGCCGTGTCCATGCCATGTGAGGGCATTCCGC +GCCAGATTTGTCCGGGGTTATTTTTGAATTTCGGCATGATGTTCGGCCCTTTGCAGGTGCGACCATCCAT +CGTTTGCCACTGAGTGATTGATTCGCGAGCCACATACTGTGGATTGCTTTCCAGTTCCGGTACGGTCAGC +ACTTTGGCGCAGGCGATATTCAGTTCAGCAAAGCGTTCTTTTACTTCCGCGATGGTATGTGTCGCCAGCC +AGGCATCGAGTTTCTCTTCAACCAGTGGGCCGTAAGGGCATTCGATACGGTGGATAAGCTGAGTGCCTTC +CGGGATTTCTGGCGTGCCAAGCAGATGTGCGAGGCCAATATCTTTAAAGCACTCTTCAATTTGGGTAATG +CCCACCAGTTCCATCACGATGTAGCCGTCGGCACATTTATACAGACCGCAACCGGCGTAGTAGGGATCTT +TACCTTTGCTCATGCGCGGGCACATTTCGCCGCCGTTGAAGTAATCCATCATGAAGTACTGGCCCATACG +CAGCATCACTTCATACATGGCGATGTCGATACTTTCGCCTTTACCGGTTTCACGCACTTTATGCAGTGCT +GCCAGCGCCGCCGTGGTGGCGGTCAGGCCAGAAAAGTAATCGGCGGTATACGGGAAGGCAGGCATTGGCT +GGTCAACATCACCGTTCTGAATCAGGTAACCACTAAAGGCCTGGGCGATAGTGTTATAGGCCGGAAGATT +GGTGTACTCCTCGGTGCCGTACTGACCAAAACCGGACAGGTGAGCGATAACCAGTTTCGGGTTGTGCTGC +CACAGTACTTCATCGGTAATGCCACGACGGGCAAAGGCCGGACCTTTACTGGCTTCGATGAAGATATCGG +TGGTTTCCATTAATTTCAGAAACGCTTCGCGGCCTTCATCTTTGAAAATATTTAACGACAGCGCGTGCAA +ATTGCGGCGGGAGAGTTGCGGGTAGTTCGGTTGAACGCGAATGGTGTCGGCCCAGGCGACGTTCTCGATC +CAGATAACTTCCGCGCCCCATTCTGCGAACATTTGCCCGGCAAACGGTCCGGCGATTTCGATACCGGAGA +AGACAACGCGCAATCCGGCCAACGGCCCGAATTTCGGCATGGGTAGATGATCCATTATTTGCTCCTGAAA +AATTTATGTAGCGCATGACTGCCGGATGCGGCGTAAACGCTTTATCCGGCCTACATTCGTGCTCCCGTAG +GCCTGATAAGACGCATCAGCGTCGCATCAGGCAGCGCACGGACTTAGCGGTATTGCTTCAGCACCGCACG +ACCCAGCGTCAGGATCTGCATTTCGTCAGATCCCCCGGAGACGCGGTCTACACGCAGATCACGCCAGAAG +CGGCTGATGCGGTGGTTGCCCGCAATCCCGACACCGCCCAGCACCTGCATTGCGCTATCCACAACTTCAA +ATGCCGCATTGGCGCAGAAGTATTTGCACATCGCTGCATCGCCAGAGGTGATGGTGCCGTTGTCTGCTTT +CCACGCTGCTTCATACAGCATGTTTTTCATGGAGTTTAATTTGATCGCCATGTGGGCGAATTTTTCCTGA +ATCAACTGGAAACGACCAATAGCCTCGCCAAACTGCACGCGCTGATTGGCGTAGCGCGCCGCATCTTCAA +AGGCGCACATCGCCGTACCGTAGTTGGTGAGGGCTACCAGGAAACGTTCATGGTCGAACTCTTCTTTGAC +GCGGTTAAAGCCGTTACCTTCCCGACCGAACATGTCTTTCTCGTCCAGTTCCACGTCGTCAAAGGTGATT +TCACAGCAGCTATCCATACGCAGACCGAGCTTTTCAAGTTTGGTCACTTTGATGCCCGGTTTGCTCATAT +CAACAAACCATTCGGTGTAGACAGGTTTGTCCGGAGAAGCCCCGTCGCGCGCCATCACCACGATGTACGG +GGTGTAGGCGCTGCTGGTAATAAAACACTTACTACCATTAAGATAAATCTTACCATTTCTACGGGTATAA +GTCGTTTTCAGGCTACCCACGTCGGAGCCCGCGCCCGGTTCGGTAATCGCTGAGTTCCACATCTGCTTAC +CGGTGCCGCGGAAAGCCATAATTTTGTCGATCTGCTCTTGTGTGCCTTCGCGCAGGAAGGTGTTGAACCC +GCCCGGCAACTGGTACAGCACATAGGTTGGTGCCCCCAGACGTCCCAGCTCCATCCACACGGCGGCGAGA +GTAACAAACCCCGCGTCCAGACCACCGTGCTCTTCAGGGATCAGCAGACTGTCGATACCCATATCCGCCA +GTGCTTTGACAAAACGTTCCGGGTAGACGCTGTCACGGTCGCACTCGGCAAAATAGGCCTCCCAGTTTTC +GCTGGCCATCAGTTCGCGGATACCGGCGACAAACAGTTCCTGCTCATCATTTAAATTAAAATCCATCTTT +CAACCTCTTGATATTTTGGGGGTTAATTAATCTTTCCAGTTCTGTTTCGCGTCTTTAATAAAGGAGAGCG +TCACCATAATGTTGACGAAGAACAGCGGGCATCCTCCGGCGATAATGGCGGTTTGAATCGGTTTCAGGCC +GCCGAGCGCCAGCAGAACAATACCGATAATGCCAACCAGAATTGACCAACCGATACGCACCAGCAGAGGT +GGTTCTTCACCATCGCGTACTTCGCGGCAAGTGGACATCGCCAGGGTATAAGAGCAGGCGTTAACCAGCG +TAACGGTGGCAATAAAGCAGAGGATGAAGAAGCCCCACATGGTGGCGGTGCTGAGTGGCAGAGCGGCCCA +GGTTTCAATGATGGCGCGCGCCACACCGTACTGTTCGATCAGATTTGGAATGTTGATGATGTTTTTATCT +ATCAACAGCAGAGTGTTACTACCGAGTACAGTCCACAGGATCCAGGTTGACGCTGTCAGCCCCAGCACCA +TGCCGAAGCACAGTTCACGCACAGTACGACCACGGGAGATGCGGGCGAGGAAGATACTCATCTGGATAGC +ATAAATCACCCACCATGCCCAGTAGAACACGGTCCAGCCCTGCGGGAAGCCGCCTTTAGCGATGGGATCG +GTATAGAACAACATGCGCGGCAGATACATCAGCAACATCCCCACCGAATCGGTGAAGTAGTTCATGATGA +AGCTGGCACCGCTGACAATGAACACCCAACCCAGCATCAGGAAGCTCAGGTAACTACGCACGTCACTGGC +GATACGTACCCCTTTTTGCAGACCGCAAGCGACGCAAATGGCGTTGAGGATAATCCAGCAGGTAATGATG +ATAGCGTCCAGTTGCAGGGTATGCGGAATGCCAAACAACCATTGCATACACTCGGTCACCAGCGGCGTGG +CAAGGCCCAGACTGGTACCCATCGCGAAGATCAAGGCGACGAGATAGAAGTTGTCGACGATAGTGCCGAA +CAACCCTTTGGCGTGTTTTTCACCTACCAGCGGCACCAGTGTCGAGCTGGGGCGAATCACTTCCATTTTG +CGGACAAAGAAGAAGTAAGCGAAGGCGACTGAAAGGAAGCTGTAAGTGGCCCACGGCAGAGGTCCCCAGT +GGAACAAGCTGTAAGCCAGCCCCAACTCTTTCGCCCCTGTCGAGTTCGGTTCTAAGCCAAACGGCGGGGT +GGAGATGTAGTAGTAGATCTCAATCGATCCCCAGAACAGTACGGCAGCAGACGTACAGGAGGCGAACATC +ATAAAGATCCAACTGGCGGTGCTAAATTCTGGCGGTTCGTTACCTAAACGCTTTTTGGCATACGGGCCAA +ACACCAGCCAGAACCAACCGAAAAGCATCACCACCATATACCATTCAAATGCCCATCCCCATACATTGGT +GACGTAACTGAATACAGCATTAATAACGACATTCGCTGCATCCAGATCTCTGACTGTAAGCCAACAAAGT +ATGCCGACGATTATTAACGGCGGAAAGAAAACCTTCGGTTCTATTCCCGTTTTTCTCTTTTCATTCTTCA +TGAGTTAATTCCACTGTGAAAACGAATATTTATTTTGCGTTCCCGTTTGTTTTATTTTTGTTAACATTTA +ATATAATTATTATTAACCTCGTGGACGCGTTAATGGCTAACTCATAATGGGTATTCAATAAGCTGTATTC +TGTGATTGGTATCACATTTTTGTTTCGGGTGAATAGAGGGCGTTTTTTCGTTAATTTTGATTAATAATCA +GTTTGTTATGCTCTGTTGTGAGTAAAAAATAACATCTGACTTTCAATATTGGTGATCCATAAAACAATAT +TGAAAATTTCTTTTTGCTACGCCGTGTTTTCAATATTGGTGAGGAACTTAACAATATTGAAAGTTGGATT +TATCTGCGTGTGACATTTTCAATATTGGTGATTAAAGTTTTATTTCAAAATTAAAGGGCGTGATATCTGT +AATTAACACCACCGATATGAACGACGTTTCCTTCATGATTTCTGGAGATGCAATGAAGATTATTACTTGC +TATAAGTGCGTGCCTGATGAACAGGATATTGCGGTCAATAATGCTGATGGTTCATTAGACTTCAGCAAAG +CCGATGCCAAAATAAGCCAATACGATCTCAACGCTATTGAAGCGGCTTGCCAGCTAAAGCAACAGGCAGC +AGAGGCGCAGGTGACAGCCTTAAGTGTGGGCGGTAAAGCCCTGACCAACGCCAAAGGGCGTAAAGATGTG +CTATCGCGCGGCCCGGATGAACTGATTGTGGTGATTGATGACCAGTTCGAGCAGGCACTGCCGCAACAAA +CGGCGAGCGCACTGGCTGCAGCCGCCCAGAAAGCAGGCTTTGATCTGATCCTCTGTGGCGATGGTTCTTC +CGACCTTTATGCCCAGCAGGTTGGTCTGCTGGTGGGCGAAATCCTCAATATTCCGGCAGTTAACGGCGTC +AGCAAAATTATCTCCCTGACGGCAGATACCCTCACCGTTGAGCGCGAACTGGAAGATGAAACCGAAACCT +TAAGCATTCCGCTGCCTGCGGTTGTTGCTGTTTCCACTGATATCAACTCCCCACAAATTCCTTCGATGAA +AGCCATTCTCGGCGCGGCGAAAAAGCCCGTCCAGGTATGGTCGGCGGCGGATATTGGTTTTAACGCAGAG +GCAGCCTGGTCAGAACAACAGGTTGCCGCGCCGAAACAGCGCGAACGTCAGCGCATCGTGATTGAAGGCG +ACGGCGAAGAACAGATCGCCGCATTTGCTGAAAATCTTCGCAAAGTCATTTAATTACAGGGGATGCTATG +AACACGTTTTCTCAAGTCTGGGTATTCAGCGATACCCCTTCTCGTCTGCCGGAACTGATGAACGGTGCGC +AGGCTTTAGCTAATCAAATCAACACCTTTGTCCTCAATGATGCCGACGGCGCACAGGCAATCCAGCTCGG +CGCTAATCATGTCTGGAAATTAAACGGCAAACCGGACGATCGGATGATCGAAGATTACGCCGGTGTCATG +GCTGACACTATTCGCCAGCACGGCGCAGACGGCCTGGTGCTGCTGCCAAACACCCGTCGCGGCAAATTAC +TGGCGGCAAAACTGGGTTATCGCCTTAAAGCGGCGGTGTCTAACGATGCCAGCACCGTCAGCGTACAGGA +CGGTAAAGCGACAGTGAAACACATGGTTTACGGTGGTCTGGCGATTGGCGAAGAACGCATTGCCACGCCG +TATGCGGTACTGACCATCAGCAGCGGCACGTTCGATGCGGCTCAGCCAGACGCGTCACGCACTGGCGAAA +CGCACACCGTGGAGTGGCAGGCTCCGGCTGTGGCGATTACCCGCACGGCAACCCAGGCGCGCCAGAGCAA +CAGCGTCGATCTCGACAAAGCCCGTCTGGTGGTCAGCGTCGGTCGCGGTATTGGCAGCAAAGAGAACATT +GCGCTGGCAGAACAGCTTTGCAAGGCGATAGGTGCGGAGTTGGCCTGTTCTCGTCCGGTGGCGGAAAACG +AAAAATGGATGGAGCACGAACGCTATGTCGGTATCTCCAACCTGATGCTGAAACCTGAACTGTACCTGGC +GGTGGGGATCTCCGGGCAGATCCAGCACATGGTTGGCGCTAACGCGTCGCAAACCATTTTCGCCATCAAT +AAAGATAAAAATGCGCCGATCTTCCAGTACGCGGATTACGGCATTGTTGGCGACGCCGTGAAGATCCTTC +CGGCGCTGACCGCAGCTTTAGCGCGTTGATCCACTCTGGCAGGGCTGCATTTTGGCCCTGCCGCTGACAG +GGAGCTCTTATGTCCGAAGATATCTTTGACGCCATCATCGTCGGTGCAGGGCTTGCCGGTTCGGTTGCCG +CACTGGTGCTCGCCCGCGAAGGTGCGCAAGTGTTAGTTATCGAGCGTGGCAATTCCGCAGGTGCCAAGAA +CGTCACCGGCGGGCGTCTCTATGCCCACAGTCTGGAACACATTATTCCTGGTTTCGCCGACTCCGCCCCC +GTAGAACGCCTGATCACCCATGAAAAACTCGCGTTTATGACGGAAAAGTCAGCGATGACTATGGACTACT +GCAATGGTGACGAAACCTCGCCATCCCAGCGTTCTTACTCCGTTTTGCGCAGTAAATTTGATGCCTGGCT +GATGGAGCAGGCCGAAGAAGCGGGCGCGCAGTTAATTACCGGGATCCGCGTCGATAACCTCGTACAGCGC +GATGGCAAAGTCGTCGGTGTAGAAGCCGATGGCGATGTGATTGAAGCGAAAACGGTGATCCTTGCTGATG +GGGTGAACTCCATCCTTGCCGAAAAATTGGGGATGGCAAAACGCGTCAAACCGACGGATGTGGCGGTTGG +CGTGAAGGAACTGATCGAGTTACCGAAGTCGGTTATTGAAGACCGTTTTCAGTTGCAGGGTAATCAGGGG +GCGGCTTGCCTGTTTGCGGGATCACCCACCGATGGCCTGATGGGCGGCGGCTTCCTTTATACCAATGAAA +ACACCCTGTCGCTGGGGCTGGTTTGTGGTTTGCATCATCTGCATGACGCGAAAAAATCGGTGCCGCAAAT +GCTGGAAGATTTCAAACAGCATCCGGCCGTTGCACCGCTGATCGCGGGCGGCAAGCTGGTGGAATATTCC +GCTCACGTAGTGCCGGAAGCAGGCATCAACATGCTGCCGGAGTTGGTTGGTGACGGCGTATTGATTGCCG +GTGATGCCGCCGGAATGTGTATGAACCTCGGTTTTACCATTCGCGGTATGGATCTGGCGATTGCCGCCGG +GGAAGCCGCAGCAAAAACCGTGCTTTCAGCGATGAAAAGCGACGATTTCAGTAAGCAAAAACTGGCGGAA +TATCGTCAGCATCTTGAGAGTGGTCCGCTGCGCGATATGCGTATGTACCAGAAACTACCGGCGTTCCTTG +ATAACCCACGCATGTTTAGCGGCTACCCGGAGCTGGCGGTGGGTGTGGCGCGTGACCTGTTCACCATTGA +TGGCAGCGCGCCGGAACTGATGCGCAAGAAAATCCTCCGCCACGGCAAGAAAGTGGGCTTCATCAATCTA +ATCAAGGATGGCATGAAAGGAGTGACCGTTTTATGACTTCTCCCGTCAATGTGGACGTCAAACTGGGCGT +CAATAAATTCAATGTCGATGAAGAGCATCCGCACATTGTTGTGAAGGCCGATGCTGATAAACAGGCGCTG +GAGCTGCTGGTGAAAGCGTGCCCCGCAGGTCTGTACAAGAAGCAGGATGACGGCAGTGTGCGCTTCGATT +ACGCCGGATGTCTGGAGTGCGGCACCTGTCGCATTCTGGGGCTGGGGTCGGCGCTGGAACAGTGGGAATA +CCCGCGCGGCACCTTTGGTGTGGAGTTCCGTTACGGCTGATGTTGGTTTGATACGTAACGCCGCACTGAC +TCTCATTGCAAAAAACAGGAATAACCATGCAACCGTCCAGAAACTTTGACGATCTCAAATTCTCCTCTAT +TCACCGCCGCATTTTGCTGTGGGGAAGCGGTGGTCCGTTTCTGGATGGTTATGTACTGGTAATGATTGGC +GTGGCGCTGGAGCAACTGACGCCGGCGCTGAAACTGGACGCTGACTGGATTGGCTTGCTGGGCGCGGGAA +CGCTCGCCGGGCTGTTCGTTGGCACATCGCTGTTTGGTTATATTTCCGATAAAGTCGGACGGCGCAAAAT +GTTCCTCATTGATATCATCGCCATCGGCGTGATATCGGTGGCGACGATGTTTGTTTCATCCCCCGTCGAA +CTGTTGGTGATGCGGGTACTTATCGGCATTGTCATCGGTGCAGATTATCCCATCGCCACCTCAATGATCA +CCGAGTTCTCCAGTACCCGTCAGCGGGCGTTTTCCATCAGCTTTATTGCCGCGATGTGGTATGTCGGCGC +GACCTGTGCCGATCTGGTCGGCTACTGGCTTTATGATGTGGAAGGCGGCTGGCGCTGGATGCTGGGTAGC +GCGGCGATCCCCTGTTTGTTGATTTTGATTGGTCGATTCGAACTGCCTGAATCTCCCCGCTGGTTATTAC +GCAAAGGGCGAGTAAAAGAGTGCGAAGAGATGATGATCAAACTGTTTGGCGAACCGGTGGCTTTCGATGA +AGAGCAGCCGCAGCAAACCCGTTTTCGCGATCTGTTTAATCGCCGCCATTTTCCTTTTGTTCTGTTTGTT +GCCGCCATCTGGACCTGCCAGGTGATCCCAATGTTCGCCATTTACACCTTTGGCCCGCAAATCGTTGGTT +TGTTGGGATTGGGGGTTGGCAAAAACGCGGCACTAGGGAATGTGGTGATTAGCCTGTTCTTTATGCTCGG +CTGTATTCCGCCGATGCTGTGGTTAAACACTGCCGGACGGCGTCCATTGTTGATTGGCAGCTTTGCCATG +ATGACGCTGGCGCTGGCGGTTTTGGGGCTAATCCCGGATATGGGGATCTGGCTGGTAGTGATGGCCTTTG +CGGTGTATGCCTTTTTCTCTGGCGGGCCGGGTAATTTGCAGTGGCTCTATCCTAATGAACTCTTCCCGAC +AGATATCCGCGCCTCTGCCGTGGGCGTGATTATGTCCTTAAGTCGTATTGGCACCATTGTTTCGACCTGG +GCACTACCGATCTTTATCAATAATTACGGTATCAGTAACACGATGCTAATGGGGGCGGGTATCTCGCTGT +TTGGCTTGTTGATTTCCGTAGCGTTTGCCCCGGAGACTCGAGGGATGTCACTGGCGCAGACCAGCAATAT +GACGATCCGCGGGCAGAGAATGGGGTAAATTGTTCAGATTTCTCTCTTTTCTGAATCAATATTATTGACT +ATAAGCCGCGTGAATATATGACTACACTTTGTGGGAAAACAAAGGCGTAATCACGCGGGCTACCTATGAT +TCTTATAATTTATGCGCATCCGTATCCGCATCATTCCCATGCGAATAAACGGATGCTTGAACAGGCAAGG +ACGCTGGAAGGCGTCGAAATTCGCTCTCTTTATCAACTCTATCCTGACTTCAATATCGATATTGCCGCCG +AGCAGGAGGCGCTGTCTCGCGCCGATCTGATCGTCTGGCAGCATCCGATGCAGTGGTACAGCATTCCTCC +GCTCCTCAAACTTTGGATCGATAAAGTTTTCTCCCACGGCTGGGCTTACGGTCATGGCGGCACGGCGCTG +CATGGCAAACATTTGCTGTGGGCGGTGACGACCGGCGGCGGGGAAAGCCATTTTGAAATTGGTGCGCATC +CGGGCTTTGATGTGCTGTCGCAGCCGCTACAGGCGACGGCAATCTACTGCGGGCTGAACTGGCTGCCACC +GTTTGCCATGCACTGCACCTTTATTTGTGACGACGAAACCCTCGAAGGGCAGGCGCGTCACTATAAGCAA +CGTCTGCTGGAATGGCAGGAGGCCCATCATGGATAGCCATACGCTGATTCAGGCGCTGATTTATCTCGGT +TCGGCAGCGCTGATTGTACCCATTGCGGTACGTCTTGGTCTGGGATCGGTACTTGGCTACCTGATCGCCG +GCTGCATTATTGGCCCGTGGGGGCTGCGACTGGTGACCGATGCCGAATCTATTCTGCACTTTGCCGAGAT +TGGGGTGGTGCTGATGCTGTTTATTATCGGCCTCGAACTCGATCCACAAAGGCTGTGGAAGCTGCGTGCG +GCAGTGTTCGGCTGTGGCGCATTGCAGATGGTGATTTGCGGCGGCCTGCTGGGGCTGTTCTGCATGTTAC +TTGGGCTGCGCTGGCAGGTCGCGGAATTGATCGGCATGACGCTGGCGCTCTCCTCTACGGCGATTGCCAT +GCAGGCGATGAATGAACGCAATCTGATGGTGACGCAAATGGGTCGCAGTGCCTTTGCGGTGCTGCTGTTC +CAGGATATCGCGGCGATCCCGCTGGTGGCGATGATTCCGCTACTGGCAACGAGCAGTGCCTCGACGACGA +TGGGCGCATTTGCTCTCTCGGCGTTAAAAGTGGCGGGTGCGCTGGTGCTGGTGGTATTGCTGGGGCGCTA +TGTCACGCGTCCGGCGCTGCGTTTTGTAGCCCGCTCTGGCTTGCGGGAAGTGTTTAGTGCCGTGGCGTTA +TTCCTCGTGTTTGGCTTTGGTTTGCTGCTGGAAGAGGTCGGCTTGTCGATGGCGATGGGCGCGTTTCTGG +CGGGCGTACTGCTGGCAAGCTCGGAATACCGTCATGCGCTGGAGAGCGATATCGAACCATTTAAAGGTTT +GCTGTTGGGGCTGTTTTTCATCGGTGTTGGCATGTCGATAGACTTTGGCACGCTGCTTGAAAACCCATTG +CGCATTGTCATTTTGCTGCTCGGTTTCCTCATCATCAAAATCGCCATGCTGTGGCTGATTGCCCGACCGT +TGCAAGTGCCAAATAAACAGCGTCGTTGGTTTGCGGTGTTGTTAGGGCAGGGCAGTGAGTTTGCCTTTGT +GGTATTTGGCGCGGCGCAGATGGCGAATGTGCTGGAGCCGGAGTGGGCGAAATCGCTGACCCTGGCGGTG +GCGCTGTCGATGGCAGCAACGCCGATTCTGCTGGTGATCCTCAATCGCCTTGAGCAATCTTCTACTGAGG +AAGCGCGTGAAGCCGATGAGATCGACGAAGAACAGCCGCGCGTGATTATCGCCGGATTCGGTCGTTTTGG +GCAGATTACCGGACGTTTACTGCTCTCCAGCGGGGTGAAAATGGTGGTACTCGATCACGATCCGGACCAT +ATCGAAACCTTGCGTAAATTTGGTATGAAAGTGTTTTATGGCGATGCCACGCGGATGGATTTACTGGAAT +CTGCCGGAGCGGCGAAAGCGGAAGTGCTGATTAACGCCATCGACGATCCGCAAACCAACCTGCAACTGAC +AGAGATGGTGAAAGAACATTTCCCGCATTTGCAGATTATTGCCCGCGCCCGCGATGTCGACCACTACATT +CGTTTGCGTCAGGCAGGCGTTGAAAAGCCGGAGCGTGAAACCTTCGAAGGTGCGCTGAAAACCGGGCGTC +TGGCACTGGAAAGTTTAGGTCTGGGGCCGTATGAAGCGCGAGAACGTGCCGATGTGTTCCGCCGCTTTAA +TATTCAGATGGTGGAAGAGATGGCAATGGTTGAGAACGACACCAAAGCCCGCGCGGCGGTCTATAAACGC +ACCAGCGCGATGTTAAGTGAGATCATTACCGAGGACCGCGAACATCTGTCATTAATTCAACGACATGGCT +GGCAGGGAACCGAAGAAGGTAAACATACCGGCAACATGGCGGATGAACCGGAAACGAAACCCTCATCCTA +ATAAAGAGTGACGTAAATCACACTTTACAGCTAACTGTTTGTTTTTGTTTCATTGTAATGCGGCGAGTCC +AGGGAGAGAGCGTGGACTCGCCAGCAGAATATAAAATTTTCCTCAACATCATCCTCGCACCAGTCGACGA +CGGTTTACGCTTTACGTATAGTGGCGACAATTTTTTTTATCGGGAAATCTCAATGATCAGTCTGATTGCG +GCGTTAGCGGTAGATCGCGTTATCGGCATGGAAAACGCCATGCCGTGGAACCTGCCTGCCGATCTCGCCT +GGTTTAAACGCAACACCTTAAATAAACCCGTGATTATGGGCCGCCATACCTGGGAATCAATCGGTCGTCC +GTTGCCAGGACGCAAAAATATTATCCTCAGCAGTCAACCGGGTACGGACGATCGCGTAACGTGGGTGAAG +TCGGTGGATGAAGCCATCGCGGCGTGTGGTGACGTACCAGAAATCATGGTGATTGGCGGCGGTCGCGTTT +ATGAACAGTTCTTGCCAAAAGCGCAAAAACTGTATCTGACGCATATCGACGCAGAAGTGGAAGGCGACAC +CCATTTCCCGGATTACGAGCCGGATGACTGGGAATCGGTATTCAGCGAATTCCACGATGCTGATGCGCAG +AACTCTCACAGCTATTGCTTTGAGATTCTGGAGCGGCGGTAATTTTGTATAGAATTTACGGCTAGCGCCG +GATGCGACGCCGGTCGCGTCTTATCCGGCCTTCCTATATCAGGCTGTGTTTAAGACGCCGCCGCTTCGCC +CAAATCCTTATGCCGGTTCGACGGCTGGACAAAATACTGTTTATCTTCCCAGCGCAGGCAGGTTAATGTA +CCACCCCAGCAGCAGCCGGTATCCAGCGCGTATATACCTTCCGGCGTACCTTTGCCCTCCAGCGATGCCC +AGTGACCAAAGGCGATGCTGTATTCTTCAGCGACAGGGCCAGGAATCGCAAACCACGGTTTCAGTGGGGC +AGGGGCCTCTTCCGGCGATTCTTTGCTGTACATATCCAGTTGACCGTTCGGGAAGCAAAAACGCATACGG +GTAAAAGCGTTGGTGATAAAACGCAGTCTTCCCAGCCCCCGCAATTCCGGTGACCAGTTATTTGGCATAT +CGCCGTACATGGCATCAAGAAAGAAGGGATAGGAGTCACTCGATAGCACCGCTTCTACATCGCGTGCGCA +CTCTTTGGCGGTCTGCAGATCCCACTGCGGCGTGATCCCTGCGTGGGCCATCACCAGCTTTTTCTCTTCG +TCGATTTGCAGCAGAGGCTGGCGCCGCAGCCAGTTAAGCAGCTCGTCGGCATCCGGCGCTTCCAGCAGCG +GTGTCAGGCGATCTTTCGGTTTATTGCGGCTGATCCCGGCAAATACCGCCAGCAGATGCAGATCGTGATT +GCCCAGCACCAGACGTACGCTGTCGCCTAAGGATTTCACATAGCGCAGAACATCCAGCGAACCCGGCCCG +CGCGCGACCAGATCGCCCGTCAGCCAGAGGGTATCTTTCCCAGGGGTAAATTCTACTTTATGCAGCAATG +CGATCAGTTCATCGTAACAACCATGAACGTCGCCAATAAGGTATGTCGCCATATTCTTTTAATGAATGAG +TGTGGGAACGGCGAGTCGGAATACGGGAATGTCGATGCTGAAAGGGACGCCATTTTCATCGATCATTTCG +TAGTGACCCTGCATGGTGCCCAGCGGGGTTTCAATGATTGCACCGCTGGTGTACTGGTACTCTTCGCCAG +GCGCGATAAGTGGCTGGACGCCAACCACTCCTTCGCCCTGGACTTCGGTTTCACGGCCATTGCCATTGGT +GATCAGCCAGTAACGCCCCAACAACTGCACTGGCGCTCGCCCCAGATTGCGTATGGTTACGGTATAAGCA +AAAACGTAACGTTCATTATCAGGTGAAGATTGAGCCTCAATGTAGACGCTTTGAACCTGAATACACACTC +GGGGCGAATTGATCATCGTTAACTCTCCTGCAAAGGCGCGTTCTCCGCCAGATAGTTCGCCATCTGGCAA +TATTGCGCGACAGAGATATTTTCCGCTCGCATCGCCGGGTCGATCCCCATTCCCGTTAACACCTCGACGC +TAAACAGGTTGCCGAGGCTGTTACGAATGGTTTTACGACGCTGGTTAAAGGCTTCGGTGGTGATGCGGCT +CAACACACGAACATCTTTAACCGGGTGAGGCATCGTTGCATGAGGAACCAGGCGCACGACGGCGGAATCC +ACTTTGGGTGGTGGTGTAAAGGCTGACGGCGGTACTTCCAGTACCGGGATCACATTGCAATAGTATTGCG +CCATGACGCTTAATCGACCATACGCTTTGCTGTTCGGTCCTGCAACCAGACGATTCACCACCTCTTTTTG +CAACATAAAGTGCATGTCGGCAATGGCATCAGTATAGCTAAACAGATGGAACATCAACGGCGTGGAGATG +TTATAAGGCAGGTTGCCGAAAACACGCAGCGGCTGACCCATTTTCTCGGCCAGTTCACCAAAGTTAAAGG +TCATCGCATCCTGCTGATAAATCGTCAGTTTCGGGCCTAAGAATGGATGCGTTTGCAGACGTGCCGCCAG +ATCGCGGTCAAGTTCGATGACCGTCAGCTGGTCCAGACGTTCGCCGACCGGTTCGGTCAATGCCGCCAGA +CCGGGGCCGATTTCGACCATCGCCTGGCCCTTTTGCGGGTTAATGGCAGACACAATACTGTCGATCACGA +ACTGATCGTTGAGAAAGTTTTGCCCGAAGCGTTTACGGGCTAAGTGGCCCTGGTGGACTCGATTATTCAT +TGGGTGTTAACAATCATTTTGATGGCGAGATTAAGCGCCGTAATAAAACTGCCGACATCGGCTTTGCCAC +GTCCCGCCAGTTCAAGCGCGGTGCCGTGGTCCACTGATGTGCGAATAAAGGGCAGGCCCAGCGTAATGTT +CACACCGCGCCCGAAGCCCTGGTATTTTAGCACGGGAAGACCCTGATCGTGGTACATCGCCAGCACGGCG +TCGGCGTTATCAAGATATTTCGGCTGAAACAGGGTATCGGCAGGCAGCGGCCCGTTGAGTTTCATCCCCT +GCGCCCGCAGCTCATTGAGCACCGGAATAATGGTGTCTATCTCTTCCGTACCCATATGACCGCCTTCGCC +CGCGTGCGGATTCAGCCCGCAGACCAGAATGCGCGGTTCGGCAATACCAAATTTGGTCCGCAAATCGTGA +TGCAAAATAGCAATCACTTCGTGCAAAAGTGCAGGGGTGATAGCGTCTGCGATATCGCGCAGCGGTAAAT +GCGTCGTTGCCAGCGCCACGCGAAGTTCTTCGGTCGCCAGCATCATCACCACCTTTTTCGCCTGCGAACG +CTCTTCGAAAAACTCGGTATGACCGGTAAAAGGAATGCCAGCGTCGTTAATAACGCCTTTATGCACCGGA +CCTGTGATCAGCGCGGCAAATTCGCCGTTCAGACAACCATCGCACGCTCGCGCCAGCGTTTCCACCACAT +AATGCCCATTTTCAACCGCTAACTGCCCCGCAGTGACAGGTGCACGTAGCGCGACAGGAAGTAGCGTTAA +TGTGCCCGCAGTTTGCGGTTGTGCAGGGGAGTTGGGGGAATAAGGGCGGAGGGTGAGCGGCAAACCGAGC +ATCGCTGCCCGGTTGGTAAGGAGAGTGGCATCGGCACAAACAACCAGTTCGACCGGCCACTCACGCTGTG +CAAGCTGGACAACTAAGTCCGGGCCAATCCCGGCGGGCTCGCCGGGAGTGATCACAACACGTTGGGTTTT +AACCATTAGTTGCTCAGGATTTTAACGTAGGCGCTGGCACGTTGTTCCTGCATCCAGCTTGCTGCTTCTT +CCGAGAACTTACGGTTCATCAGCATGCGGTATGCACGATCTTTCTGCGCAGCGTCGGTTTTATCGACATT +ACGGGTATCCAGCAGTTCGATTAAATGCCAGCCGAATGAAGAGTGAACCGGTGCACTCATTTGACCTTTG +TTCAGGCGAGTCAGGGCGTCACGGAAGGCCGGATCGAAAATATCTGGTGTAGCCCAGCCGAGATCGCCGC +CCTGGTTAGCAGAGCCTGGATCCTGAGAGAACTCTTTCGCTGCGGCAGCAAAAGTCGTTTTACCACTCTT +GATATCAGCAGCAATCTGTTCCAGTTTCACACGGGCCTGTTCGTCAGTCATGATCGGCGACGGTTTCAGC +AGAATATGGCGAGCATGAACTTCGGTCACCGAGATATTTTTGCTTTCGCCGCGCAGGTCGTTAACTTTCA +GAATATGGAAGCCAACGCCGGAACGAATCGGGCCAACAATGTCGCCTTTCTTCGCGGTGCTTAATGCCTG +GGCGAAGATCCCGGGCAACTCCTGAATACGGCCCCAGCCCATCTGGCCGCCGTTCAGCGCCTGCTGGTCG +GCAGAATGAGCAATCGCCAGCTTACCGAAATCAGCGCCGTTACGCGCCTGATCGACAATGGCGCGCGCCT +GGCTTTCCGCTTCGTTCACCTGATCAGAGGTCGGGTTTTCCGGCAGCGGGATCAGGATGTGGCTCAGGTT +CAGCTCAGTGCTGGCGTCGTTTTGGTTACCCACCTGCTGCGCCAGGGATTCGACTTCCTGCGGCAGGATG +GTGATGCGACGACGCACCTCGTTGTTACGCACTTCAGAGATAATCATCTCTTTGCGGATCTGGTTACGAT +AGGTGTTGTAGTTCAGTCCATCGTAAGCCAGACGGCTGCGCATCTGATCCAGCGTCATGTTGTTCTGTTT +CGCGATGTTAGCAATCGCCTGATCCAGCTGCTCATCGGAGATTTTCACTCCCATTTTCTGCCCCATCTGC +AGGATGATTTGATCCATGATCAAACGTTCCATGATTTGGTGGCGCAGCGTCGCGTCATCAGGAAGTTGCT +GCCTTGCCTGAGCAGCGTTCAGTTTTACCGACTGCATTAATCCATCAACGTCGCTTTCCAGCACGACGCC +GTTATTGACGACGGCTGCGACTTTATCGACTACCTGGGGGGCAGCGAAACTGGTATTCGCGATCATGGCG +ATACCGAGAAGCAGCGTTTTCCAGTTCTTCATACTTTTTCCATTTCAATTAACCGCACTGCGGATTACGT +GGTAAATCAACAAATCACAAAGTGTTTTGATACGGCAGAATGTTCGAACGCAGCATCTCTTGCGTACCCA +GACCGTAGTTGGAGCTCAGGCCGCGAAGTTCGATGTTAAAGCCGATTGCGTTGTCATATACCGCATGTTG +TTTATCGTTATCCCAACCGTTCAGCTTCCGCTCGTAACCGACGCGAATTGCATAGCAGCAGGAGCTGTAT +TGCACACCTAACATAGAGTCGGCTTGCTTGTTAGCATTGGTGTCGTAGTAGTAGGCCCCAACAATGGACC +AACGATCGGCAATTGGCCAGCTGGCGACAGCACCTACCTGCGAAATACCATTCTTATATTGCTCAGCAGT +GGAATAGTACTTAGGCAGCGTAGCCTGAATATATTCCGGGCTGGCGTAACGGTAATTCAGCTGTACCAGA +CGGTCTTCATCCCGACGGTATTCAATGCTGGAGTTACTGGTCGCTACGTTATCCAGACGTGTATCGTACT +GAATCCCGCCACGCAATCCCCAACGCTCGGAGATACGCCAGTAAGTATCGCCTGCCCACACCAGTGAACC +CGTTTTGTCGTCATTCTCCCATGTTATGTTGTCATCGCCAGTGCGAGACTCCGTGAAATAGTAGATTTGA +CCAACGGAAATATTAAAACGTTCAACGGCAGCATCATCATATATGCGAGATGTGACACCGGTCGTCACCT +GGTTAGCGGAGGCAATACGGTCAAGACCGCCGTAAGTCCGGTCCCGGAACAGGCCAGAGTAGTCAGATTG +CAGCAGAGACGAGTCGTAGTTATAGATGTCGCTCTGATCGCGATACGGCACGTACAAATACTGCGCGCGC +GGTTCCAGCGTTTGGGTATAACCCGGAGCCAGCATTTCCATATCGCGTTCAAAGACCATTTTGCCGTCAA +CTTTGAATTGCGGCATTACGCGGTTAACGGATTCGTCCAGCTTGGTCGTGTTTCTGGAGTTATACCAGTC +AAGATTGGTTTGCTGATAATGGGTTGCCAGCAACTTCGCTTCGGTATTGATGCTGCCCCAGTTATTAGAG +AGCGGCAAATTGATGGTCGGTTCCAGGTGAACACGGGTTGCTTCAGGCATGTCGTCTCTGGTGTTAACAA +AGTGCACTGCCTGGCCGTAAATACGCGTATCAAACGGACCAACATCATTCTGGTAGTAATTAACGTCTAA +CTGCGGCTCTGCCGAGTAGCTACTGGTGTTCTGTTCGCTGAAAACCTGGAACTGCTTGGTTGAAACGGTG +GCATTGAAGTTTTGCACCGCATAGCCAACGCTGAATTTTTGCGTTGCGTAGCCGTCAGTACTGGAACCGT +ACTTGTTATCGAAATCATTGAAGTAGCTAGGATCGCTGACCTTGGTGTAGTCGACGTTGAAACGCCACAC +CTGATCCATGACCCCGGAGTGGTTCCAGTAGAATAACCAACGACGTGAACTGTCATCGTTCGGGTGTTCA +TCTTCATAGACTTTATCTGAAGGCAGATAGTCCAGTTCCATCAAGCCAGCGCCCGCCTGGGAGAGGTAGC +GGAATTCGTTCTCCCACATGATGTTGCCACGACGATGCATATAATGCGGCGTGATGGTGGCATCCATATT +TGGCGCGATGTTCCAGTAATATGGCAGGTAGAACTCAAAGTAGTTGGTGGTGGTGTACTTGGCGTTCGGG +ATCAAGAAACCAGAGCGACGTTTGTCACCCACCGGCAACTGCAAATAGGGGCTATAAAAGATCGGTACCG +GACCCACCTTAAAGCGGGCGTTCCAGATCTCCGCAACTTGTTCTTCGCGGTCATGAATAATTTCGCTACC +TACCACGCTCCAGGTGTCAGAACCCGGCAGACAGGAGGTAAAGCTACCGTTATCCAGAATGGTATAGCGG +TTTTCGCCACGTTGTTTCATCAGGTCCGCTTTACCGCGACCCTGGCGACCCACCATCTGGTAATCACCTT +CCCAGACGTTGGTATCTTTGGTGTTCAGATTCGCCCAGCCTTTCGGCCCTTTGAGGATCACCTGGTTATC +GTCGTAATGGACATTACCGAGCGCATCAACGGTACGTACCGGCTCCGGTTGTCCTGGTGCCTCTTTTTGA +TGGAGCTGCACTTCGTCGGCCTGCAGACGGCTGTTACCCTGCATGATATCCACGCTGCCAGTAAACACGG +CGTCATCCGGGTAGTCCCCTTTCGCGTGGTCAGCATTGATAGTCACGGGTAAGTCATTGGTATCGCCCTG +TACCAGAGGACGGTCATAGCTTGGCACGCCCAACATGCACTGTGAGGCGAGGTCGGCTGCCAGTCCCTGT +TGACTATAAAGGGCGGTGGCAATCATGGTGGCCAGGAGAGTGGGGATACGTTTTTTCATACGTTGATTTT +ATTGTTCCATCATCGGTAACGTTGCGCGTGACAAACGGTCAGAGACTAACGTACTCGTCATCTCTACGCT +AGTGTTAATCCTGTCCGAATAGCGTCAGTGGTGTTAGGCACGGCATTGAATGACAGGTATGATAATGCAA +ATTATAGGCGATGTCCCACAATTGACCGCAGCCGGAAAACGGTAAAAGCACCTTTATATTGTGGGAGATA +GCCCTGATATCCGTGTGTCGATTTGGGGAATATATGCAGTATTGGGGAAAAATCATTGGCGTGGCCGTGG +CCTTACTGATGGGCGGCGGCTTTTGGGGCGTAGTGTTAGGCCTGTTAATTGGCCATATGTTTGATAAAGC +CCGTAGCCGTAAAATGGCGTGGTTCGCCAACCAGCGTGAGCGTCAGGCGCTGTTTTTTGCCACCACTTTT +GAAGTGATGGGGCATTTAACCAAATCCAAAGGTCGCGTCACGGAGGCTGATATTCATATCGCCAGCCAGT +TGATGGACCGAATGAATCTTCATGGCGCTTCCCGTACTGCGGCGCAAAATGCGTTCCGGGTGGGAAAATC +AGACAATTACCCGCTGCGCGAAAAGATGCGCCAGTTTCGCAGTGTCTGCTTTGGTCGTTTTGACTTAATT +CGTATGTTTCTGGAGATCCAGATTCAGGCGGCGTTTGCTGATGGTTCACTGCACCCGAATGAACGGGCGG +TGCTGTATGTCATTGCAGAAGAATTAGGGATCTCCCGCGCTCAGTTTGACCAGTTTTTGCGCATGATGCA +GGGCGGTGCACAGTTTGGCGGCGGTTATCAGCAGCAAACTGGCGGTGGTAACTGGCAGCAAGCGCAGCGT +GGCCCAACGCTGGAAGATGCCTGTAATGTGCTGGGCGTGAAGCCGACGGATGATGCGACCACCATCAAAC +GTGCCTACCGTAAGCTGATGAGTGAACACCATCCCGATAAGCTGGTGGCGAAAGGTTTGCCGCCTGAGAT +GATGGAGATGGCGAAGCAGAAAGCGCAGGAAATTCAGCAGGCATATGAGCTGATAAAGCAGCAGAAAGGG +TTTAAATGACCCTGTAAATGATGCTGAGTAACTGCCCACGATTAAAGGTGGCCGCCCTGGCGGTCACTTC +TTTGAGAAAAGGCGTTTACTCAGAATGGTGGACAGGCTCAATGCACGGTTTACGGGAGGGGTTCTGTAGG +TTTTATCGCGTTGACCCTGCTTAAGGTTGAGAGCTTTACGACGAGCGGAATTATATTTTTACGTCTTAAA +AATAAAAAACACATACCTGAATGAGCGATTTTTGAAAGTATATTTATTCAGAACGCGCATCATGAGTTTT +TAACTCAATGCGAGGCTATTACCATGAAAGTATCAGTTCCAGGCATGCCGGTTACACTTTTAAATATGAG +CAAGAACGATATTTATAAGATGGTGAGCGGGGACAAGATGGACGTGAAGATGAATATCTTTCAACGCTTG +TGGGAGACGTTACGCCATCTGTTCTGGTCAGATAAACAGACTGAGGCTTATAAACTTCTGTTCAATTTCG +TGAATAACCAGACTGGCAACATCAACGCCTCAGAATACTTTACTGGGGCTATCAACGAGAATGAGAGAGA +AAAGTTTATCAATAGCCTGGAATTATTCAATAAACTTAAAACATGCGCAAAAAATCCGGATGAGTTGGTC +GCAAAGGGCAATATGCGCTGGGTCGCCCAGACCTTCGGGGATATCGAGTTAAGTGTCACTTTTTTCATTG +AAAAGAATAAGATATGTACTCAGACGTTGCAGCTGCATAAGGGCCAAGGTAACTTGGGCGTTGATCTTAG +AAAGGCTTACCTTCCCGGCGTTGACATGAGGGATTGTTACCTTGGTAAAAAAACAATGAAAGGTAGCAAT +GATATCCTTTATGAGAGACCTGGGTGGAATGCTAACCTGGGCGTGCTACCCCGGACGGTGCTACCCCGGA +CGGTGCTAACCCGGACGGTGCTAACCTGGACGGTGCTACCGTGAACGGTGCTACCTCCTTATATGATGAG +GTAATTATTATTAATAAAATCCCCCCCAAAAAAATTGATACTAAAGGAGTTGCTACTGAAGAAGTTGCTA +CTAAAAAAGTACTGCTGAACAAATTACTGACAACGCAATTATTGAATGAGCCAGAATAAGCTAAGGTTGA +AGGGGCTGGAACGCCCCTTCAACCTTAGCAGTAGCGTGGGATGATTTCACAATTAGAAAGACCTGCATGA +TGAGCTAGAGAAGAGGCTAGTGACGCAAGGCGTCGTGCAGGACACGGATCACCGAGATGGGCATCGCCAA +CCAGACTGCTAATTAGCCCATGAATAACAATCAGAAAGGACCATAACAGACCCGTTAAAATGAAATATAA +GAGACGGTCAACGGGTGAAGAAAAAGTTCAAAAATTCGCTGTGGAGCAGGAAGGGAATTACCGAATGGAA +AGCGTAGCCACACGCAACAACTGAAAGCAGTTTGGCAGAAACAAAAAATCCCCGGACTCGGGGATTTATG +TACAAGAGGCAGCCCTTAGGATGAGGGTATAAACGTACAGGAAAGGTTAAAAATCCGCTGGCGCTTTAAA +CGTCATACTATTGCCATACGCCGGATGGGTAATCGTCAACATCTCTGCATGTAGCAACAAACGTGGTGCC +ATCGCTCTCGCTTCTGGTGATGCATAAAAACGATCGCCGAGAATCGGATGACCCAGCGCCAGCATATGCA +CACGCAATTGATGCGAACGCCCGGTAATCGGTTTTAACACCACTCTTGCCGTGTTATCCGCCGCATACTC +CACCACTTCATATTCCGTCTGCGCAGGTTTACCCGTTTCGTAACAGACTTTCTGTTTCGGGCGGTTTGGC +CAGTCGCAAATCAGCGGCAGATCCACCAGACCTTCTGCGGGGGATGGATGCCCCCAGACGCGGGCCACAT +ACTGCTTTTTCGGCTCGCGCTCGCGGAACTGGCGTTTTAACTCCCGCTCCGCGGCTTTGGTCAGCGCCAC +TACAATCACGCCGCTGGTAGCCATATCCAGACGATGCACCGATTCTGCCTGCGGATAATCACGCTGAATG +CGCGTCATCACGCTGTCTTTGTGCTCTTCCAGACGACCCGGCACTGACAACAAACCGCTCGGCTTGTTGA +CCACCATAATATGGTCATCCTGATACAGGATAACCAACCAGGGTTCCTGCGGTGGATTGTAGTTTTCCAT +CCCCATTTTCGGCTCCGTTACTGATGCGTTACAACGATCAAACGCAGGGCATCCAGACGCCAACCTGCCT +GATCCAGGCTTTCCATTACCTGCTGACGGTTGCTCTCAATGGCGGTCAGTTCGTCGTCACGAATGTTCGG +GTTCACTGCACGCAGAGCTTCCAGACGAGACAGCTCGGCAGACAGTTTTTCGTCGGCTTCGTTACGCGCT +GCATCAATCAATGCACGGGCAGATTTCTCGATCTGCGCTTCACCCAGTTGAAGGATAGCGTGAACATCCT +GCTGCACGGCGTTAACCAGTTTGCTGCCGGTGTGACGGTTAACCGCGTTAAGCTGGCGGTTAAAGGTTTC +AAACTCTACCTGCGCCGCCAGGTTGTTGCCGTTTTTATCCAGCAGCATACGTACCGGCGTCGGTGGCAGG +AAGCGGTTGAGCTGCAACTGCTTCGGAGCCTGGGCTTCAACCACATAAATCAGTTCCACCAACAGCGTAC +CTACCGGCAACGCTTTGTTTTTTAACAGTGAAATCGTGCTGCTACCGGTATCGCCAGAAAGGATCAGATC +CAGACCGTTGCGGATCAGCGGATGCTCCCAGGTAATAAACTGTGCATCTTCACGCGCCAGCGCCACTTCA +CGATCAAAGGTGATGGTGATGCCATCTTCCGACAGGCCAGGGAAGTCCGGCACCAGCATATGATCGGACG +GCGTCAGCACGATCATGTTGTCGCCGCGATCGTCCTGATTGATACCGATAATATCGAACAGGTTCATGGC +GAAGGCGATCAGGTTGGTATCGTCATCCTGCTCTTCAATGCTTTCTGCCAGTGCCTGGGCTTTTTCGCCA +CCGTTGGAGTGGATTTCCAGCAGGCGGTCACGACCCTGTTCCAGCTGTGCTTTCAGCGCTTCATGTTGCT +CGCGGCAGTTTTTGATCAGATCGTCAAAGCCTTCGGTTTGATCCGGTGAAGCCAGATAGTTAATCAGATC +GTTGTATACGCTATCGTAAATAGTGCGTCCGGTCGGGCAGGTGTGCTCAAATGCATCCAGACCTTCGTGA +TACCAGCGCACCAGCACCGACTGAGCGGTTTTCTCCAGATAAGGCACATGGATCTGAATATCGTGCGCCT +GGCCGATACGATCCAGACGACCAATACGCTGCTCCAGTAGATCCGGGTTGAATGGCAGGTCAAACATCAC +CATGTGGCTGGCGAACTGGAAGTTACGTCCTTCAGAACCGATTTCTGAGCACAGCAGTACCTGTGCGCCG +GTGTCTTCTTCGGCAAACCAGGCGGCAGCGCGGTCACGTTCGATAATCGACATACCTTCGTGGAACACCG +CAGCGCGAATACCTTCACGTTCGCGCAGTACCTGCTCCAGTTGCAGCGCAGTGGCAGCTTTGGCGCAGAT +CACCAGCACTTTCTGAGAGCGATGGCTGGTCAGGTAGCCCATCAGCCACTCAACGCGCGGATCGAAGTTC +CACCAGGTGGCGTTATCACCTTCAAATTCCTGATAAATACGCTCCGGGTAGAGCATATCGCGAGCACGAT +CTTCCGCACTTTTACGTGCGCCCATAATGCCGGAGACTTTAATAGCCGTCTGATACTGCGTCGGTAGCGG +CAGCTTAATGGTGTGCAGCTCGCGTTTCGGGAATCCTTTCACACCGTTACGCGTGTTACGGAACAGCACG +CGGCTGGTGCCGTGGCGATCCATCAGCATCGAAACCAGCTCCTGACGGGCGCTCTGGGCATCTTCGCTGT +CGCTGTTTGCTGCCTGCAACAGCGGCTCGATATCCTGCTCGCCGATCATCTCGCCGAGCATGTTCAGTTC +GTCATTGCTCAGTTTGTTACCTGCCAGCAGCATGGCAACGGCGTCCGCAACCGGACGATAATTTTTCTGC +TCTTCAACGAACTGCGCAAAATCGTGGAAACGGTTCGGGTCCAGCAGACGCAGACGGGCGAAGTGGCTTT +CCATCCCCAGCTGTTCCGGGGTCGCGGTCAGCAGCAGAACGCCCGGCACGTGCTCTGCCAGTTGTTCAAT +GGCCTGATATTCACGGCTTGGCGCATCTTCGCTCCACACCAGGTGATGCGCTTCATCGACCACCAGCAGG +TCCCATTCGGCTTCACAGAGATGTTCCAGGCGCTGTTTGCTACGACGGGCAAAATCCAGCGAGCAAATCA +CCAGCTGTTCGGTGTCAAACGGGTTGTAAGCATCGTGCTGAGCTTCGGCATAACGCTCATCATCAAATAG +CGCAAAGCGCAGGTTGAAACGGCGCAGCATTTCTACCAGCCACTGATGCTGTAAGGTTTCCGGGACGATA +ATTAGCACACGTTCAGCAGCGCCAGAGAGCAGTTGCTGATGCAGGATCATCCCGGCTTCAATGGTTTTCC +CTAAACCCACTTCGTCAGCCAGCAGGACGCGCGGCGCGTGGCGGCGACCAACATCATGAGCGATGTTGAG +CTGATGCGGGATCAGGCTGGTACGCTGACCGCGCAGGCCGCTGTACGGCATACGGAACTGTTCGCTGGAA +TATTTACGCGCGCGATAACGCAGCGCAAAGCGGTCCATACGGTCAATCTGCCCGGCAAACAGACGGTCCT +GCGGTTTGCTGAACACCAGTTTGCTATCAAGGAAAACTTCACGCAGGGCTACGCCGGACTCTTCAGTATC +CAGGCGAGTACCGATATAGGTCAGCAAGCCATTTTCTTCTTTTACTTCTTCGACTTGCATCTGCCAGCCG +TCATGGCTGGTAATGGTATCACCAGGGTTGAACATCACGCGGGTCACGGGGGAATCACTGCGTGCGTACA +GACGGTTTTCACCAGTAGATGGGAAAAGTAAAGTGACAGTTCGCGCATCCACCGCGACAACGGTTCCAAG +TCCCAATTCGCTTTCTGTATCGCTGATCCAGCGTTGACCAAGTGTAAAAGGCATATGTGTTCGGCTCTAT +ATCTTTAATTGCAGGCAATAACCACCCGCTACCGTGCTTATGAGGTAGTGGTGTTATTCAGGTCCAGGAA +TGGAAAGGGCGCTATGGTACTGGATGGCAAAGCATTCGTCACGCATCAAAATGGTATCTGGCGAACTCTT +TTTTTTGCTCAAAATAGCCCAAGTTGCCCGGTCATAAGTGTAGCAAAATTATCCTCAATAAAAGGGAGTA +TTCCCTCCGCCACGGGTTGTAGCTGGCGGGTCAGATAGTGTTCGTAATCCAGTGGTGAACGTTGGTAGTC +CAGCGGCTCCGGGCCGTTGGTGGTCCATACGTACTTAATGGTGCCGCGATTCTGATATTGCAAGGGGCGA +CCACGCTTTTGGTTTTCTTCATCGGCAAGGCGAGCGGCGCGTACATGAGGCGGCACATTACGCTGATACT +CGCTCAGCGGACGGCGAAGGCGTTTACGGTAAACCAGTCGCGCATCCAGTTCACCCGCCATCAGTTTGTC +GATGGTTTCGCGTACATATTCCTGATATGGCTCGTTGCGGAAGATGCGCAGGTATAGCTCCTGCTGAAAC +TGCTGGGCCAGCGGCGTCCAGTCGGTGCGCACGGTTTCCAGCCCTTTAAACACCATCCGCTGCTTGTCGC +CCTCCTGAATCAGTCCGGCATAACGCTTTTTACTGCCGGTATCGGCTCCGCGAATGGTTGGCATCAGAAA +ACGGCAGAAATGGGTTTCATACTCCAGTTCTAATGCGCTGGTCAGCCGTTGTTTTTGCAGCGTTTCCGCC +CACCAGGCGTTAACGTGCTGCACCAGTGCACGACCGATTTTCGCCGCTTCTTCTTCCGAATGTGCGCCTT +TCAGCCAGACAAACGTTGAGTCGGTATCGCCGTAGATAACGTCGTAGCCCTGTGCTTCAATCAACGCTTT +GGTTTGCCGCATGATCTGATGACCACGCATGGTGATCGACGATGCCAGCCGCGGATCGAAGAAGCGGCAG +GCGGTGGTGCCGAGCACGCCATAAAAGGCATTCATGATGATTTTCAGCGCCTGCGACAGCGGTTTGTTAC +CCTGGCGTTTGGCTTCATCGCGCCCGTGCCAGATGTTAGTCACAATCTCCGGCAGGCAATGTTTTTCTCG +CGAGAACCAGGCATCGAGAAAACCTTCGGTACTGTGCTCTGGATCAGGCTGCGCCATGCCTTCCACCAGC +CCGACGGGATCAATCAGAAAGGTGCGGATGATCGACGGGTACAGGCTTTTATAGTCCAGCACCAGCACTG +AATCATAAAGCCCTGGCCGTGAATCCATCACGTAGCCGCCAGGGCTGGCGTGCGGCGGCACTTCGCCGAG +ATTAGGCGCGACATAACCAGCGCGATGCATTCGCGGAAAATAGAGATGACCAAATGCCGCCACCGAACCG +CCGTGTCGGTCCACCGGCAGGCCGTTCACCGTTGCCCGTTCGAGTAAAAATGGCATGATTTCAGTTTTGT +GGAAGATCTGCGTCACCAGCTCGCAATCTTTCAGGTTATAAGTTGCCAGCGCAGGTTTATCTTCGGCGAA +ACGGCGGTCAATTTCGTCCATTCGATCCCACGGGTTATCGATAGATTTTCCTTCGCCTAATAGCTCCTGA +GCGACAGTTTCCAGCGAGAATGAAGAGAAATTCCAGAACGCGGATTTCAGCGCCTCGATACCGTCGATAA +TTAGCCGACCTTTAGCCTGGGCAAAAAAGACGCCGTTTTTAAAGCCGTGCTCGCGCCACTCCAGCTCGCT +ATTATCGCGCCCAAGACGCAGCGGAAGACGGTAACGCTCGGCATGTTTTTGCAGCATTCGCAGATCGAAC +TGCACCACGTTCCAACCGATGATCACATCAGGATCGTAGTTGGCAAACCAGGCGTTGAGTTTTTCCAGCA +ACTGCGGGCGGCTGGCGACGTATTCCAGTTCGAAATCAAGCGAGGAGGCGTCGCCATTCTCCGGCCCCAG +CATATAAACGATGCGCTGCCCGCAGCCTTCCAGGCCGATGCAGTACAGCTCACCGTGGCGGGTGGTTTCA +ATATCTATAGAAACCCACTTGAGCGGCGGACGATAGTCGGGATGCGGTTTCAGACGGGCATTAACGATAG +TGCCATTGTGCATATCACCCTCGACCCACACCGGTGAGGTGATAAACCGCTCCATCAGATAGCGTTCTGG +CGGACGCACATCGGCCTCGTAGACGGTAACGCCACCTTCACGCAGGCGCTTTTCGTAATTCATCAATTGG +CGATGGGCGCGACAGTAAAGGCCATACACCGGCTGGCGGTGAAAATCCTTTAACGCCAGCGGTGTCAGGC +GAAAGCCTTGTTCACCCTGCAAAATATGCTGAGCGCGGGGAACCTGATCGGCGGGAATAAACGCCACGGA +CTCTTGCGGTGCAAGCGTAACCTGCAACGGCCCGTTGTCCGTCGCCAGCCAGAAGGAGACTTCTGTCCCT +TGCGGGGTGTCCCGCCAGTGTCGGGTTAAGATAAAACCTGCCTGCGCCACGCTGAAAATCCATCAAAAAA +CCAGGCTTGAGTATAGCCTGGTTTCGTTTGATTGGCTGTGGTTTTATACAGTCATTACTGCCCGTAATAT +GCCTTCGCGCCATGCTTACGCAGATAGTGTTTATCCAGCAGCGTTTGCTGCATATCCGGTAACTGCGGCG +CTAACTGACGGCAGAATATCCCCATATAAGCGACCTCTTCCAGCACGATGGCGTTATGCACCGCATCTTC +GGCATTTTTGCCCCATGCAAACGGGCCGTGGGAATGGACCAGAACGCCGGGCATTTGCGCTGCATCGATA +CCCTGTTTTTCAAAGGTTTCTACGATGACGTTACCGGTTTCCCACTCATATTCGCCGTTGATTTCTGCGT +CGGTCATTTTGCGGGTGCAGGGAATGGTGCCGTAGAAATAGTCGGCGTGGGTGGTGCCGGTTGCTGGAAT +CGACTGACCCGCCTGCGCCCAGATGGTGGCGTGGCGCGAGTGCGTATGCACAATGCCGCCAATGGAGGGG +AATGCCTGATAGAGCAGCCGGTGAGTTGGCGTGTCGGAGGAGGGCTTTTTCGTACCTTCAACCACTTCAC +CGGTTTCGATGCTAACCACGACCATATCGTCAGCGGTCATGACGCTGTAATCGACGCCGGAAGGTTTGAT +CACAAAGACGCCGCGCTCGCGATCAACGGCGCTGACGTTGCCCCATGTGAGCGTGACCAGGTTGTGTTTT +GGCAGCGCCAGGTTGGCTTCTAATACCTGGCGTTTGAGATCTTCTAACATGTTGACTCCTTCGTGCCGGA +TGCGCTTTGCTTATCCGGCCTACAAAATCGCAGCGTGTAGGCCTGATAAGACGCGCCAGCGTCGCATCAG +GCGTTGAATGCCGGATGCGCTTTGCTTATCCGGCCTACAAAATCGCAGCGCGTAGGCCTGATAAGACGCG +CCAGCGTCGCATCAGGCGTTGAATGCCGGATGCGCTTTGCTTATCCGGCCTACAAAATCGCAGCGTGTAG +GCCAGATAAGACGCGTCAGCGTCGCATCAGGCGTTACATACCGGATGCGGCTACTTAGCGACGAAACCCG +TAATACACTTCGTTCCAGCGCAGCGCGTCTTTAAACGCTGGCAGGCGTGTGTCGTTATCAATCACCGTGA +TTTCAATGTCGTGCATCTCGGCGAATTGGCGCATATCGTTGAGGTTCAGTGCATGGCTGAAGACGGTATG +GTGCGCGCCACCAGCGAGGATCCACGCTTCGGAAGCAGTTGGCAGATCCGGTTGCGCTTTCCACAGCGCA +TTCGCCACCGGCAGTTTCGGCAGGGAGTGCGGTGTTTTCACCGTGTCGATGCAGTTAACCAGTAGACGGT +AACGATCGCCGAGATCAATCAAGCTGGCGACAATCGCTGGGCCGGTTTGGGTATTGAAGATCAGGCGGGC +AGGATCGTCCTTACCACCAATACCGAGATGCTGAACGTCGAGGATCGGTTTCTCTTCTGCGGCGATCGAC +GGGCAGACTTCCAGCATATGGGAGCCGAGCACCAGGTCATTACCTTTCTCGAAGTGATAGGTGTAGTCCT +CCATAAAGGAGGTGCCGCCCTGCAGACCGGTTGACATCACCTTCATGATGCGAAGCAGGGCGGCAGTTTT +CCAGTCGCCTTCGCCCGCAAAGCCGTAACCCTGCTGCATCAGACGCTGTACGGCCAGACCAGGAAGCTGT +TTCAGACCGTGCAAATCTTCAAAGGTGGTGGTGAACGCGTGGAAGCCACCTTGTTCCAGGAAACGCTTCA +TCCCCAGCTCAATACGCGCCGCTTCCAGCACGTTCTGTCGTTTTTTGCCGTGGATTTGTGTGGCAGGCGT +CATGGTGTAGCAGCTTTCGTACTCATCGACCAGCGCGTTAACATCGCCGTCGCTGATGGAGTTCACCACC +TGCACCAGATCGCCAACCGCCCAGGTATTGACGGAGAAACCGAACTTGATCTGTGCGGCAACTTTATCGC +CATCGGTGACCGCCACTTCACGCATGTTATCGCCAAATCGGCAGACTTTCAGATGACGGGTATCCTGTTT +AGAGACCGCCTGACGCATCCAGGAGCCGATACGCTCATGGGCTTGTTTATCCTGCCAGTGACCGGTAACC +ACGGCATGTTGCTGACGCATACGCGCGCCAATGAAGCCGAACTCGCGACCGCCATGTGCAGTCTGGTTCA +GGTTCATAAAGTCCATATCGATACTGTCCCACGGCAGCGCCGCGTTGAACTGGGTGTGGAATTGCAGCAA +CGGTTTGTTGAGCATGGTCAGGCCGTTGATCCACATTTTGGCCGGGGAGAAGGTGTGCAGCCACACCACC +AGACCAGCGCAACGATCGTCGTAATTCGCGTCGCGGCAAATAGCGGTGATTTCATCCGGCGTGGTGCCCA +GCGGTTTCAACACCAGTTTGCAGGGCAGTTTCGCTTCCGTATTCAGCGCATTAACGACGTGCTCGGCATG +TTGGGTGACCTGACGCAGGGTTTCCGGGCCATACAGATGCTGGCTGCCAATGACAAACCACACTTCATAA +TTATCAAAAATCGTCATTATCGTGTCCTTATAGAGTCGCAACGGCCTGGGCAGCCTGTGCCGGGGCGGAA +GTTGGAAGATAGTGTTGTTCGGCGCTCATCGCCCATTGCTGATAGCGGCGATAAAGCTGTTCAAAGCGTT +GTGCCTGCTCGCTGCACGGTTGCAGGGTTTTCTCTACCGCACTGGCCATTTTTTGCTGAGCTGATGGGAT +GTCTGCGTGCACTTTCGCGGCGACGGCAGCAAAAATCGCCGCACCGAGCGCACAGCACTGGTCAGAGGCA +ACAATTTGCAGCGGGCGATTCAGCACGTCGCAGCAGGCCTGCATAATGACCTGGTTTTTCCGCGCGATGC +CGCCCAGTGCCATCACGTTATTAACGGCGATCCCCTGATCGGTAAAGCACTCCATGATTGCGCGTGCGCC +AAAGGCGGTGGCAGCAATCAAACCGCCGAACAGCAGCGGAGCGTCGGTAGCGAGGTTAAGATCGGTAATC +ACCCCTTTCAGGCGTTGGTTAGCGTTCGGTGTGCGGCGGCCGTTAAACCAGTCGAGCACCACCGGCAGGT +GATCCAGAGACGGATTTTTGGCCCATGCTTCGGTCAGCGCCGGAAGCAGTTGTTTCTGGCTGGCGTTGAT +TTGCGTTTTCAGTTCCGGATGCTGGGCGGCAAGCTGTTCCAGCGGCCAGCCGAGTACGCGACCAAACCAG +GCGTAGATATCACCAAACGCCGATTGGCCTGCTTCCAGACCGATAAATCCAGGCACCACGCTGCCATCAA +CCTGACCGCAAATACCTTTAACTGCCCGCTCGCCAACGCTCTGTTTGTCGGCAATCAGAATGTCGCAGGT +GGAAGTACCGATAACTTTTACCAGTGCGTTAGGCTGTGCGCCTGCGCCAACTGCGCCCATATGGCAGTCA +AACGCGCCGCCGGAAATCACCACGCTTTCAGGCAGGCCGAGACGCTGCGCCCATTCCGGGCATAAGGTGC +CCACCGGAATATCGGCAGTCCAAGTGTCAGTGAACAGCGGGGAAGGCAAATGGCGATTGAGGATCGGGTC +CAGCTCATCAAAGAAACTGGCTGGCGGCAGGCCGCCCCAGCTTTCGTGCCACAGAGATTTATGCCCGGCG +CTGCAACGTCCGCGACGAATATCCTGCGGGCGGGTGGTACCGGAAAGCAGAGCTGGCACCCAGTCGCACA +GCTCAATCCACGATGCGGCAGATTGCGCCACGGCGCTGTCCTGGCGAGTCACATGCAGGATTTTTGCCCA +GAACCATTCGCTGGAATAAATACCACCAATGTAGCGGGAGTAGTCAACGTTGCCCGGCGCGTGGCACAAA +CGGGTAATCTCTTCCGCTTCTTCAACCGCAGTGTGGTCTTTCCACAATACGAACATCGCGTTCGGGTTTT +CGGCAAACTCCGGGCGCAGCGCCAGCACGTTTCCGTCGGCATCAATCGGTGCGGGCGTCGAGCCGGTACT +GTCAACGCCAATCCCGACCACAGCTGCGCGCTGTTCGACGCTAAGCTCTGCAAGCACGGTTTTCAGTGCC +GCTTCCATTGACTCAATGTAGTCACGCGGATGATGACGGAACTGGTTATTCGGGGCATCACAAAATTGCC diff --git a/scripts/ambig_3.fa b/scripts/ambig_3.fa new file mode 100644 index 0000000..2c00a91 --- /dev/null +++ b/scripts/ambig_3.fa @@ -0,0 +1,1000 @@ +>NC_007779.1 Escherichia coli str. K-12 substr. W3110 DNA, complete genome +NAGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC +TTCTGAACTGGTTACCTGCCGTGAGTAAATTAAAATTTTATTGACTTAGGTCACTAAATACTTTAACCAA +TATAGGCATAGCGCACAGACAGATAAAAATTACAGAGTACACAACATCCATGAAACGCATTAGCACCACC +ATTACCACCACCATCACCATTACCACAGGTAACGGTGCGGGCTGACGCGTACAGGAAACACAGAAAAAAG +CCCGCACCTGACAGTGCGGGCTTTTTTTTTCGACCAAAGGTAACGAGGTAACAACCATGCGAGTGTTGAA +GTTCGGCGGTACATCAGTGGCAAATGCAGAACGTTTTCTGCGTGTTGCCGATATTCTGGAAAGCAATGCC +AGGCAGGGGCAGGTGGCCACCGTCCTCTCTGCCCCCGCCAAAATCACCAACCACCTGGTGGCGATGATTG +AAAAAACCATTAGCGGCCAGGATGCTTTACCCAATATCAGCGATGCCGAACGTATTTTTGCCGAACTTTT +GACGGGACTCGCCGCCGCCCAGCCGGGGTTCCCGCTGGCGCAATTGAAAACTTTCGTCGATCAGGAATTT +GCCCAAATAAAACATGTCCTGCATGGCATTAGTTTGTTGGGGCAGTGCCCGGATAGCATCAACGCTGCGC +TGATTTGCCGTGGCGAGAAAATGTCGATCGCCATTATGGCCGGCGTATTAGAAGCGCGCGGTCACAACGT +TACTGTTATCGATCCGGTCGAAAAACTGCTGGCAGTGGGGCATTACCTCGAATCTACCGTCGATATTGCT +GAGTCCACCCGCCGTATTGCGGCAAGCCGCATTCCGGCTGATCACATGGTGCTGATGGCAGGTTTCACCG +CCGGTAATGAAAAAGGCGAACTGGTGGTGCTTGGACGCAACGGTTCCGACTACTCTGCTGCGGTGCTGGC +TGCCTGTTTACGCGCCGATTGTTGCGAGATTTGGACGGACGTTGACGGGGTCTATACCTGCGACCCGCGT +CAGGTGCCCGATGCGAGGTTGTTGAAGTCGATGTCCTACCAGGAAGCGATGGAGCTTTCCTACTTCGGCG +CTAAAGTTCTTCACCCCCGCACCATTACCCCCATCGCCCAGTTCCAGATCCCTTGCCTGATTAAAAATAC +CGGAAATCCTCAAGCACCAGGTACGCTCATTGGTGCCAGCCGTGATGAAGACGAATTACCGGTCAAGGGC +ATTTCCAATCTGAATAACATGGCAATGTTCAGCGTTTCTGGTCCGGGGATGAAAGGGATGGTCGGCATGG +NCGGCGCGCGTCNTTTGCAGCGATGTCACGCGCCCGTATTTCCGTGGTGCTGATTACGCAATCATCTTCCGA +ATACAGCATCAGTTTCTGCGTTCCACAAAGCGACTGTGTGCGAGCTGAACGGGCAATGCAGGAAGAGTTC +TACCTGGAACTGAAAGAAGGCTTACTGGAGCCGCTGGCAGTGACGGAACGGCTGGCCATTATCTCGGTGG +TAGGTGATGGTATGCGCACCTTGCGTGGGATCTCGGCGAAATTCTTTGCCGCACTGGCCCGCGCCAATAT +CAACATTGTCGCCATTGCTCAGGGATCTTCTGAACGCTCAATCTCTGTCGTGGTAAATAACGATGATGCG +ACCACTGGCGTGCGCGTTACTCATCAGATGCTGTTCAATACCGATCAGGTTATCGAAGTGTTTGTGATTG +GCGTCGGTGGCGTTGGCGGTGCGCTGCTGGAGCAACTGAAGCGTCAGCAAAGCTGGCTGAAGAATAAACA +TATCGACTTACGTGTCTGCGGTGTTGCCAACTCGAAGGCTCTGCTCACCAATGTACATGGCCTTAATCTG +GAAAACTGGCAGGAAGAACTGGCGCAAGCCAAAGAGCCGTTTAATCTCGGGCGCTTAATTCGCCTCGTGA +AAGAATATCATCTGCTGAACCCGGTCATTGTTGACTGCACTTCCAGCCAGGCAGTGGCGGATCAATATGC +CGACTTCCTGCGCGAAGGTTTCCACGTTGTCACGCCGAACAAAAAGGCCAACACCTCGTCGATGGATTAC +TACCATCAGTTGCGTTATGCGGCGGAAAAATCGCGGCGTAAATTCCTCTATGACACCAACGTTGGGGCTG +GATTACCGGTTATTGAGAACCTGCAAAATCTGCTCAATGCAGGTGATGAATTGATGAAGTTCTCCGGCAT +TCTTTCTGGTTCGCTTTCTTATATCTTCGGCAAGTTAGACGAAGGCATGAGTTTCTCCGAGGCGACCACG +CTGGCGCGGGAAATGGGTTATACCGAACCGGACCCGCGAGATGATCTTTCTGGTATGGATGTGGCGCGTA +AACTATTGATTCTCGCTCGTGAAACGGGACGTGAACTGGAGCTGGCGGATATTGAAATTGAACCTGTGCT +GCCCGCAGAGTTTAACGCCGAGGGTGATGTTGCCGCTTTTATGGCGAATCTGTCACAACTCGACGATCTC +TTTGCCGCGCGCGTGGCGAAGGCCCGTGATGAAGGAAAAGTTTTGCGCTATGTTGGCAATATTGATGAAG +ATGGCGTCTGCCGCGTGAAGATTGCCGAAGTGGATGGTAATGATCCGCTGTTCAAAGTGAAAAATGGCGA +AAACGCCCTGGCCTTCTATAGCCACTATTATCAGCCGCTGCCGTTGGTACTGCGCGGATATGGTGCGGGC +AATGACGTTACAGCTGCCGGTGTCTTTGCTGATCTGCTACGTACCCTCTCATGGAAGTTAGGAGTCTGAC +ATGGTTAAAGTTTATGCCCCGGCTTCCAGTGCCAATATGAGCGTCGGGTTTGATGTGCTCGGGGCGGCGG +TGACACCTGTTGATGGTGCATTGCTCGGAGATGTAGTCACGGTTGAGGCGGCAGAGACATTCAGTCTCAA +CAACCTCGGACGCTTTGCCGATAAGCTGCCGTCAGAACCACGGGAAAATATCGTTTATCAGTGCTGGGAG +CGTTTTTGCCAGGAACTGGGTAAGCAAATTCCAGTGGCGATGACCCTGGAAAAGAATATGCCGATCGGTT +CGGGCTTAGGCTCCAGTGCCTGTTCGGTGGTCGCGGCGCTGATGGCGATGAATGAACACTGCGGCAAGCC +GCTTAATGACACTCGTTTGCTGGCTTTGATGGGCGAGCTGGAAGGCCGTATCTCCGGCAGCATTCATTAC +GACAACGTGGCACCGTGTTTTCTCGGTGGTATGCAGTTGATGATCGAAGAAAACGACATCATCAGCCAGC +AAGTGCCAGGGTTTGATGAGTGGCTGTGGGTGCTGGCGTATCCGGGGATTAAAGTCTCGACGGCAGAAGC +CAGGGCTATTTTACCGGCGCAGTATCGCCGCCAGGATTGCATTGCGCACGGGCGACATCTGGCAGGCTTC +ATTCACGCCTGCTATTCCCGTCAGCCTGAGCTTGCCGCGAAGCTGATGAAAGATGTTATCGCTGAACCCT +ACCGTGAACGGTTACTGCCAGGCTTCCGGCAGGCGCGGCAGGCGGTCGCGGAAATCGGCGCGGTAGCGAG +CGGTATCTCCGGCTCCGGCCCGACCTTGTTCGCTCTGTGTGACAAGCCGGAAACCGCCCAGCGCGTTGCC +GACTGGTTGGGTAAGAACTACCTGCAAAATCAGGAAGGTTTTGTTCATATTTGCCGGCTGGATACGGCGG +GCGCACGAGTACTGGAAAACTAAATGAAACTCTACAATCTGAAAGATCACAACGAGCAGGTCAGCTTTGC +GCAAGCCGTAACCCAGGGGTTGGGCAAAAATCAGGGGCTGTTTTTTCCGCACGACCTGCCGGAATTCAGC +CTGACTGAAATTGATGAGATGCTGAAGCTGGATTTTGTCACCCGCAGTGCGAAGATCCTCTCGGCGTTTA +TTGGTGATGAAATCCCACAGGAAATCCTGGAAGAGCGCGTGCGCGCGGCGTTTGCCTTCCCGGCTCCGGT +CGCCAATGTTGAAAGCGATGTCGGTTGTCTGGAATTGTTCCACGGGCCAACGCTGGCATTTAAAGATTTC +GGCGGTCGCTTTATGGCACAAATGCTGACCCATATTGCGGGTGATAAGCCAGTGACCATTCTGACCGCGA +CCTCCGGTGATACCGGAGCGGCAGTGGCTCATGCTTTCTACGGTTTACCGAATGTGAAAGTGGTTATCCT +CTATCCACGAGGCAAAATCAGTCCACTGCAAGAAAAACTGTTCTGTACATTGGGCGGCAATATCGAAACT +GTTGCCATCGACGGCGATTTCGATGCCTGTCAGGCGCTGGTGAAGCAGGCGTTTGATGATGAAGAACTGA +AAGTGGCGCTAGGGTTAAACTCGGCTAACTCGATTAACATCAGCCGTTTGCTGGCGCAGATTTGCTACTA +CTTTGAAGCTGTTGCGCAGCTGCCGCAGGAGACGCGCAACCAGCTGGTTGTCTCGGTGCCAAGCGGAAAC +TTCGGCGATTTGACGGCGGGTCTGCTGGCGAAGTCACTCGGTCTGCCGGTGAAACGTTTTATTGCTGCGA +CCAACGTGAACGATACCGTGCCACGTTTCCTGCACGACGGTCAGTGGTCACCCAAAGCGACTCAGGCGAC +GTTATCCAACGCGATGGACGTGAGTCAGCCGAACAACTGGCCGCGTGTGGAAGAGTTGTTCCGCCGCAAA +ATCTGGCAACTGAAAGAGCTGGGTTATGCAGCCGTGGATGATGAAACCACGCAACAGACAATGCGTGAGT +TAAAAGAACTGGGCTACACTTCGGAGCCGCACGCTGCCGTAGCTTATCGTGCGCTGCGTGATCAGTTGAA +TCCAGGCGAATATGGCTTGTTCCTCGGCACCGCGCATCCGGCGAAATTTAAAGAGAGCGTGGAAGCGATT +CTCGGTGAAACGTTGGATCTGCCAAAAGAGCTGGCAGAACGTGCTGATTTACCCTTGCTTTCACATAATC +TGCCCGCCGATTTTGCTGCGTTGCGTAAATTGATGATGAATCATCAGTAAAATCTATTCATTATCTCAAT +CAGGCCGGGTTTGCTTTTATGCAGCCCGGCTTTTTTATGAAGAAATTATGGAGAAAAATGACAGGGAAAA +AGGAGAAATTCTCAATAAATGCGGTAACTTAGAGATTAGGATTGCGGAGAATAACAACCGCCGTTCTCAT +CGAGTAATCTCCGGATATCGACCCATAACGGGCAATGATAAAAGGAGTAACCTGTGAAAAAGATGCAATC +TATCGTACTCGCACTTTCCCTGGTTCTGGTCGCTCCCATGGCAGCACAGGCTGCGGAAATTACGTTAGTC +CCGTCAGTAAAATTACAGATAGGCGATCGTGATAATCGTGGCTATTACTGGGATGGAGGTCACTGGCGCG +ACCACGGCTGGTGGAAACAACATTATGAATGGCGAGGCAATCGCTGGCACCTACACGGACCGCCGCCACC +GCCGCGCCACCATAAGAAAGCTCCTCATGATCATCACGGCGGTCATGGTCCAGGCAAACATCACCGCTAA +ATGACAAATGCCGGGTAACAATCCGGCATTCAGCGCCTGATGCGACGCTGGCGCGTCTTATCAGGCCTAC +GTTAATTCTGCAATATATTGAATCTGCATGCTTTTGTAGGCAGGATAAGGCGTTCACGCCGCATCCGGCA +TTGACTGCAAACTTAACGCTGCTCGTAGCGTTTAAACACCAGTTCGCCATTGCTGGAGGAATCTTCATCA +AAGAAGTAACCTTCGCTATTAAAACCAGTCAGTTGCTCTGGTTTGGTCAGCCGATTTTCAATAATGAAAC +GACTCATCAGACCGCGTGCTTTCTTAGCGTAGAAGCTGATGATCTTAAATTTGCCGTTCTTCTCATCGAG +GAACACCGGCTTGATAATCTCGGCATTCAATTTCTTCGGCTTCACCGATTTAAAATACTCATCTGACGCC +AGATTAATCACCACATTATCGCCTTGTGCTGCGAGCGCCTCGTTCAGCTTGTTGGTGATGATATCTCCCC +AGAATTGATACAGATCTTTCCCTCGGGCATTCTCAAGACGGATCCCCATTTCCAGACGATAAGGCTGCAT +TAAATCGAGCGGGCGGAGTACGCCATACAAGCCGGAAAGCATTCGCAAATGCTGTTGGGCAAAATCGAAA +TCGTCTTCGCTGAAGGTTTCGGCCTGCAAGCCGGTGTAGACATCACCTTTAAACGCCAGAATCGCCTGGC +GGGCATTCGCCGGCGTGAAATCTGGCTGCCAGTCATGAAAGCGAGCGGCGTTGATACCCGCCAGTTTGTC +GCTGATGCGCATCAGCGTGCTAATCTGCGGAGGCGTCAGTTTCCGCGCCTCATGGATCAACTGCTGGGAA +TTGTCTAACAGCTCCGGCAGCGTATAGCGCGTGGTGGTCAACGGGCTTTGGTAATCAAGCGTTTTCGCAG +GTGAAATAAGAATCAGCATATCCAGTCCTTGCAGGAAATTTATGCCGACTTTAGCAAAAAATGAGAATGA +GTTGATCGATAGTTGTGATTACTCCTGCGAAACATCATCCCACGCGTCCGGAGAAAGCTGGCGACCGATA +TCCGGATAACGCAATGGATCAAACACCGGGCGCACGCCGAGTTTACGCTGGCGTAGATAATCACTGGCAA +TGGTATGAACCACAGGCGAGAGCAGTAAAATGGCGGTCAAATTGGTAATAGCCATGCAGGCCATTATGAT +ATCTGCCAGTTGCCACATCAGCGGAAGGCTTAGCAAGGTGCCGCCGATGACCGTTGCGAAGGTGCAGATC +CGCAAACACCAGATCGCTTTAGGGTTGTTCAGGCGTAAAAAGAAGAGATTGTTTTCGGCATAAATGTAGT +TGGCAACGATGGAGCTGAAGGCAAACAGAATAACCACAAGGGTAACAAACTCAGCACCCCAGGAACCCAT +TAGCACCCGCATCGCCTTCTGGATAAGCTGAATACCTTCCAGCGGCATGTAGGTTGTGCCGTTACCCGCC +AGTAATATCAGCATGGCGCTTGCCGTACAGATGACCAGGGTGTCGATAAAAATGCCAATCATCTGGACAA +TCCCTTGCGCTGCCGGATGCGGAGGCCAGGACGCCGCTGCCGCTGCCGCGTTTGGCGTCGAACCCATTCC +CGCCTCATTGGAAAACATACTGCGCTGAAAACCGTTAGTAATCGCCTGGCTTAAGGTATATCCCGCCGCG +CCGCCTGCCGCTTCCTGCCAGCCAAAAGCACTCTCAAAAATAGACCAAATGACGTGGGGAAGTTGCCCGA +TATTCATTACGCAAATTACCAGGCTGGTCAGTACCCAGATTATCGCCATCAACGGGACAAAGCCCTGCAT +GAGCCGGGCGACGCCATGAAGACCGCGAGTGATTGCCAGCAGAGTAAAGACAGCGAGAATAATGCCTGTC +ACCAGCGGGGGAAAATCAAAAGAAAAACTCAGGGCGCGGGCAACGGCGTTCGCTTGAACTCCGCTGAAAA +TTATGCCATAGGCGATGAGCAAAAAGACGGCGAACAGAACGCCCATCCAGCGCATCCCCAGCCCGCGCGC +CATATACCATGCCGGTCCGCCACGAAACTGCCCATTGACGTCACGTTCTTTATAAAGTTGTGCCAGAGAA +CATTCGGCAAACGAGGTCGCCATGCCGATAAACGCGGCAACCCACATCCAAAAGACGGCTCCAGGTCCAC +CGGCGGTAATAGCCAGCGCAACGCCGGCCAGGTTGCCGCTACCCACGCGCGCCGCAAGACTGGTACACAA +TGACTGAAATGAGGTTAAACCGCCTGGCTGTGGATGAATGCTATTTTTAAGACTTTTGCCAAACTGGCGG +ATGTAGCGAAACTGCACAAATCCGGTGCGAAAAGTGAACCAACAACCTGCGCCGAAGAGCAGGTAAATCA +TTACCGATCCCCAAAGGACGCTGTTAATGAAGGAGAAAAAATCTGGCATGCATATCCCTCTTATTGCCGG +TCGCGATGACTTTCCTGTGTAAACGTTACCAATTGTTTAAGAAGTATATACGCTACGAGGTACTTGATAA +CTTCTGCGTAGCATACATGAGGTTTTGTATAAAAATGGCGGGCGATATCAACGCAGTGTCAGAAATCCGA +AACAGTCTCGCCTGGCGATAACCGTCTTGTCGGCGGTTGCGCTGACGTTGCGTCGTGATATCATCAGGGC +AGACCGGTTACATCCCCCTAACAAGCTGTTTAAAGAGAAATACTATCATGACGGACAAATTGACCTCCCT +TCGTCAGTACACCACCGTAGTGGCCGACACTGGGGACATCGCGGCAATGAAGCTGTATCAACCGCAGGAT +GCCACAACCAACCCTTCTCTCATTCTTAACGCAGCGCAGATTCCGGAATACCGTAAGTTGATTGATGATG +CTGTCGCCTGGGCGAAACAGCAGAGCAACGATCGCGCGCAGCAGATCGTGGACGCGACCGACAAACTGGC +AGTAAATATTGGTCTGGAAATCCTGAAACTGGTTCCGGGCCGTATCTCAACTGAAGTTGATGCGCGTCTT +TCCTATGACACCGAAGCGTCAATTGCGAAAGCAAAACGCCTGATCAAACTCTACAACGATGCTGGTATTA +GCAACGATCGTATTCTGATCAAACTGGCTTCTACCTGGCAGGGTATCCGTGCTGCAGAACAGCTGGAAAA +AGAAGGCATCAACTGTAACCTGACCCTGCTGTTCTCCTTCGCTCAGGCTCGTGCTTGTGCGGAAGCGGGC +GTGTTCCTGATCTCGCCGTTTGTTGGCCGTATTCTTGACTGGTACAAAGCGAATACCGATAAGAAAGAGT +ACGCTCCGGCAGAAGATCCGGGCGTGGTTTCTGTATCTGAAATCTACCAGTACTACAAAGAGCACGGTTA +TGAAACCGTGGTTATGGGCGCAAGCTTCCGTAACATCGGCGAAATTCTGGAACTGGCAGGCTGCGACCGT +CTGACCATCGCACCGGCACTGCTGAAAGAGCTGGCGGAGAGCGAAGGGGCTATCGAACGTAAACTGTCTT +ACACCGGCGAAGTGAAAGCGCGTCCGGCGCGTATCACTGAGTCCGAGTTCCTGTGGCAGCACAACCAGGA +TCCAATGGCAGTAGATAAACTGGCGGAAGGTATCCGTAAGTTTGCTATTGACCAGGAAAAACTGGAAAAA +ATGATCGGCGATCTGCTGTAATCATTCTTAGCGTGACCGGGAAGTCGGTCACGCTACCTCTTCTGAAGCC +TGTCTGTCACTCCCTTCGCAGTGTATCATTCTGTTTAACGAGACTGTTTAAACGGAAAAATCTTGATGAA +TACTTTACGTATTGGCTTAGTTTCCATCTCTGATCGCGCATCCAGCGGCGTTTATCAGGATAAAGGCATC +CCTGCGCTGGAAGAATGGCTGACATCGGCGCTAACCACGCCGTTTGAACTGGAAACCCGCTTAATCCCCG +ATGAGCAGGCGATCATCGAGCAAACGTTGTGTGAGCTGGTGGATGAAATGAGTTGCCATCTGGTGCTCAC +CACGGGCGGAACTGGCCCGGCGCGTCGTGACGTAACGCCCGATGCGACGCTGGCAGTAGCGGACCGCGAG +ATGCCTGGCTTTGGTGAACAGATGCGCCAGATCAGCCTGCATTTTGTACCAACTGCGATCCTTTCGCGTC +AGGTGGGCGTGATTCGCAAACAGGCGCTGATCCTTAACTTACCCGGTCAGCCGAAGTCTATTAAAGAGAC +GCTGGAAGGTGTGAAGGACGCTGAGGGTAACGTTGTGGTACACGGTATTTTTGCCAGCGTACCGTACTGC +ATTCAGTTGCTGGAAGGGCCATACGTTGAAACGGCACCGGAAGTGGTTGCAGCATTCAGACCGAAGAGTG +CAAGACGCGACGTTAGCGAATAAAAAAATCCCCCCGAGCGGGGGGATCTCAAAACAATTAGTGGGATTCA +CCAATCGGCAGAACGGTGCGACCAAACTGCTCGTTCAGTACTTCACCCATCGCCAGATAGATTGCGCTGG +CACCGCAGATCAGCCCAATCCAGCCGGCAAAGTGGATGATTGCGGCGTTACCGGCAATGTTACCGATCGC +CAGCAGGGCAAACAGCACGGTCAGGCTAAAGAAAACGAATTGCAGAACGCGTGCGCCTTTCAGCGTGCCG +AAGAACATAAACAGCGTAAATACGCCCCACAGACCCAGGTAGACACCAAGGAACTGTGCATTTGGCGCAT +CGGTCAGACCCAGTTTCGGCATCAGCAGAATCGCAACCAGCGTCAGCCAGAAAGAACCGTAAGAGGTGAA +TGCGGTTAAACCGAAAGTGTTGCCTTTTTTGTACTCCAGCAGACCAGCAAAAATTTGCGCGATGCCGCCG +TAGAAAATGCCCATGGCAAGAATAATACCGTCCAGAGCGAAATAACCCACGTTGTGCAGGTTAAGCAGAA +TGGTGGTCATGCCGAAGCCCATCAGGCCCAGCGGTGCCGGATTAGCCAACTTAGTGTTGCCCATAATTCC +TCAAAAATCATCATCGAATGAATGGTGAAATAATTTCCCTGAATAACTGTAGTGTTTTCAGGGCGCGGCA +TAATAATCAGCCAGTGGGGCAGTGTCTACGATCTTTTGAGGGGAAAATGAAAATTTTCCCCGGTTTCCGG +TATCAGACCTGAGTGGCGCTAACCATCCGGCGCAGGCAGGCGATTTGCAGTACGGCTGGAATCGTCACGC +GATAGGCGCTGCCGCTGACCGCTTTAACCCCATTTAGTGCCGCACCTACAGGGCCTCCCAGCCCCGCGCC +GCGCAGCAAACCATGCCCAAGTACGCTCATTGCTGCGTGGGTGCGTAAAATGCGGGTCAGTTGGCTGGAA +AGCAAATGCGACACACCTTTTGCCAATAATTTGTCTTTCATCAGCAGCGGCAGCAGCTCTTCCAGCTCAT +TCACCCTGGCATCGACCGCGTGCAGAAACTCCTGCTTATGTTCCTCGTCCATTTTCTTCCAGGTATTACG +CAGAAATTGTTCCAGTAACTGTTGCTCAATTTCAAACGTAGACATCTCTTTGTCGGCTTTCAGCTTCAAT +CGCTTTGAAACATCGAGCAAAATGGCCCGATACAATTTACCGTGTCCGCGCAGTTTGTTGGCGATACTAT +CGCCACCAAAATGCTGTAATTCTCCGGCAATCAGCTGCCAGTTGCGGCGATGTTGCTCGGGATGCCCTTC +CATCGATTTAAACAGTTCGTTGCGCATCAGTACGCTGGAGAGGCGAGTTTTGCCTTTTTCATTATGGGTG +AGCAATCGGGCGAAATTTGCCAACTGTTCCTCACTACAATGCTGAAGAAAATCCAGATCTGAATCATTCA +GGTAATTAACATTCATTTTTTGTGGCTTCTATATTCTGGCGTTAGTCGTCGCCGATAATTTTCAGCGTGG +CCATATCCGATGAGTTCACCGTATGACCCGAAAAGGTGATTTTTGAGACGCAGCGTTTATTGTCGTTATC +GCTGTTAATGTTGATCCAGTCAGTGGTTTGCCCTTCTTTTATTTCTGAAGGAATATTCAGGCTCTGACTG +GCGCTACGGGCGGCTTTGAAATAAACCGATGCACCGCTTAACTGTAAATCGCCATGGTCGGCAGAGAGTT +GTATGCGTTTCACAATGCGACAAACAGGAAGTTTCAGCGCCAGATCGTTGGTTTCGTTACGCGGCATTGC +AATGGCGCCGAGGAGTTTATGGTCGTTTGCCTGCGCCGTGCAGCACAGCATCAGGCTAATCGCCAGGCTG +GCGGAAATCGTAAAAACGGATTTCATAAGGATTCTCTTAGTGGGAAGAGGTAGGGGGATGAATACCCACT +AGTTTACTGCTGATAAAGAGAAGATTCAGGCACGTAATCTTTTCTTTTTATTACAATTTTTTGATGAATG +CCTTGGCTGCGATTCATTCTTTATATGAATAAAATTGCTGTCAATTTTACGTCTTGTCCTGCCATATCGC +GAAATTTCTGCGCAAAAGCACAAAAAATTTTTGCATCTCCCCCTTGATGACGTGGTTTACGACCCCATTT +AGTAGTCAACCGCAGTGAGTGAGTCTGCAAAAAAATGAAATTGGGCAGTTGAAACCAGACGTTTCGCCCC +TATTACAGACTCACAACCACATGATGACCGAATATATAGTGGAGACGTTTAGATGGGTAAAATAATTGGT +ATCGACCTGGGTACTACCAACTCTTGTGTAGCGATTATGGATGGCACCACTCCTCGCGTGCTGGAGAACG +CCGAAGGCGATCGCACCACGCCTTCTATCATTGCCTATACCCAGGATGGTGAAACTCTAGTTGGTCAGCC +GGCTAAACGTCAGGCAGTGACGAACCCGCAAAACACTCTGTTTGCGATTAAACGCCTGATTGGTCGCCGC +TTCCAGGACGAAGAAGTACAGCGTGATGTTTCCATCATGCCGTTCAAAATTATTGCTGCTGATAACGGCG +ACGCATGGGTCGAAGTTAAAGGCCAGAAAATGGCACCGCCGCAGATTTCTGCTGAAGTGCTGAAAAAAAT +GAAGAAAACCGCTGAAGATTACCTGGGTGAACCGGTAACTGAAGCTGTTATCACCGTACCGGCATACTTT +AACGATGCTCAGCGTCAGGCAACCAAAGACGCAGGCCGTATCGCTGGTCTGGAAGTAAAACGTATCATCA +ACGAACCGACCGCAGCTGCGCTGGCTTACGGTCTGGACAAAGGCACTGGCAACCGTACTATCGCGGTTTA +TGACCTGGGTGGTGGTACTTTCGATATTTCTATTATCGAAATCGACGAAGTTGACGGCGAAAAAACCTTC +GAAGTTCTGGCAACCAACGGTGATACCCACCTGGGGGGTGAAGACTTCGACAGCCGTCTGATCAACTATC +TGGTTGAAGAATTCAAGAAAGATCAGGGCATTGACCTGCGCAACGATCCGCTGGCAATGCAGCGCCTGAA +AGAAGCGGCAGAAAAAGCGAAAATCGAACTGTCTTCCGCTCAGCAGACCGACGTTAACCTGCCATACATC +ACTGCAGACGCGACCGGTCCGAAACACATGAACATCAAAGTGACTCGTGCGAAACTGGAAAGCCTGGTTG +AAGATCTGGTAAACCGTTCCATTGAGCCGCTGAAAGTTGCACTGCAGGACGCTGGCCTGTCCGTATCTGA +TATCGACGACGTTATCCTCGTTGGTGGTCAGACTCGTATGCCAATGGTTCAGAAGAAAGTTGCTGAGTTC +TTTGGTAAAGAGCCGCGTAAAGACGTTAACCCGGACGAAGCTGTAGCAATCGGTGCTGCTGTTCAGGGTG +GTGTTCTGACTGGTGACGTAAAAGACGTACTGCTGCTGGACGTTACCCCGCTGTCTCTGGGTATCGAAAC +CATGGGCGGTGTGATGACGACGCTGATCGCGAAAAACACCACTATCCCGACCAAGCACAGCCAGGTGTTC +TCTACCGCTGAAGACAACCAGTCTGCGGTAACCATCCATGTGCTGCAGGGTGAACGTAAACGTGCGGCTG +ATAACAAATCTCTGGGTCAGTTCAACCTAGATGGTATCAACCCGGCACCGCGCGGCATGCCGCAGATCGA +AGTTACCTTCGATATCGATGCTGACGGTATCCTGCACGTTTCCGCGAAAGATAAAAACAGCGGTAAAGAG +CAGAAGATCACCATCAAGGCTTCTTCTGGTCTGAACGAAGATGAAATCCAGAAAATGGTACGCGACGCAG +AAGCTAACGCCGAAGCTGACCGTAAGTTTGAAGAGCTGGTACAGACTCGCAACCAGGGCGACCATCTGCT +GCACAGCACCCGTAAGCAGGTTGAAGAAGCAGGCGACAAACTGCCGGCTGACGACAAAACTGCTATCGAG +TCTGCGCTGACTGCACTGGAAACTGCTCTGAAAGGTGAAGACAAAGCCGCTATCGAAGCGAAAATGCAGG +AACTGGCACAGGTTTCCCAGAAACTGATGGAAATCGCCCAGCAGCAACATGCCCAGCAGCAGACTGCCGG +TGCTGATGCTTCTGCAAACAACGCGAAAGATGACGATGTTGTCGACGCTGAATTTGAAGAAGTCAAAGAC +AAAAAATAATCGCCCTATAAACGGGTAATTATACTGACACGGGCGAAGGGGAATTTCCTCTCCGCCCGTG +CATTCATCTAGGGGCAATTTAAAAAAGATGGCTAAGCAAGATTATTACGAGATTTTAGGCGTTTCCAAAA +CAGCGGAAGAGCGTGAAATCAGAAAGGCCTACAAACGCCTGGCCATGAAATACCACCCGGACCGTAACCA +GGGTGACAAAGAGGCCGAGGCGAAATTTAAAGAGATCAAGGAAGCTTATGAAGTTCTGACCGACTCGCAA +AAACGTGCGGCATACGATCAGTATGGTCATGCTGCGTTTGAGCAAGGTGGCATGGGCGGCGGCGGTTTTG +GCGGCGGCGCAGACTTCAGCGATATTTTTGGTGACGTTTTCGGCGATATTTTTGGCGGCGGACGTGGTCG +TCAACGTGCGGCGCGCGGTGCTGATTTACGCTATAACATGGAGCTCACCCTCGAAGAAGCTGTACGTGGC +GTGACCAAAGAGATCCGCATTCCGACTCTGGAAGAGTGTGACGTTTGCCACGGTAGCGGTGCAAAACCAG +GTACACAGCCGCAGACTTGTCCGACCTGTCATGGTTCTGGTCAGGTGCAGATGCGCCAGGGATTCTTCGC +TGTACAGCAGACCTGTCCACACTGTCAGGGCCGCGGTACGCTGATCAAAGATCCGTGCAACAAATGTCAT +GGTCATGGTCGTGTTGAGCGCAGCAAAACGCTGTCCGTTAAAATCCCGGCAGGGGTGGACACTGGAGACC +GCATCCGTCTTGCGGGCGAAGGTGAAGCGGGCGAGCATGGCGCACCGGCAGGCGATCTGTACGTTCAGGT +TCAGGTTAAACAGCACCCGATTTTCGAGCGTGAAGGCAACAACCTGTATTGCGAAGTCCCGATCAACTTC +GCTATGGCGGCGCTGGGTGGCGAAATCGAAGTACCGACCCTTGATGGTCGCGTCAAACTGAAAGTGCCTG +GCGAAACCCAGACCGGTAAGCTATTCCGTATGCGCGGTAAAGGCGTCAAGTCTGTCCGCGGTGGCGCACA +GGGTGATTTGCTGTGCCGCGTTGTCGTCGAAACACCGGTAGGCCTGAACGAAAGGCAGAAACAGCTGCTG +CAAGAGCTGCAAGAAAGCTTCGGTGGCCCAACCGGCGAGCACAACAGCCCGCGCTCAAAGAGCTTCTTTG +ATGGTGTGAAGAAGTTTTTTGACGACCTGACCCGCTAACCTCCCCAAAAGCCTGCCCGTGGGCAGGCCTG +GGTAAAAATAGGGTGCGTTGAAGATATGCGAGCACCTGTAAAGTGGCGGGGATCACTCCCATAAGCGCTA +ACTTAAGGGTTGTGGTATTACGCCTGATATGATTTAACGTGCCGATGAATTACTCTCACGATAACTGGTC +AGCAATTCTGGCCCATATTGGTAAGCCCGAAGAACTGGATACTTCGGCACGTAATGCCGGGGCTCTAACC +CGCCGCCGCGAAATTCGTGATGCTGCAACTCTGCTACGTCTGGGGCTGGCTTACGGCCCCGGGGGGATGT +CATTACGTGAAGTCACTGCATGGGCTCAGCTCCATGACGTTGCAACATTATCTGACGTGGCTCTCCTGAA +GCGGCTGCGGAATGCCGCCGACTGGTTTGGCATACTTGCCGCACAAACACTTGCTGTACGCGCCGCAGTT +ACGGGTTGTACAAGCGGAAAGAGATTGCGTCTTGTCGATGGAACAGCAATCAGTGCGCCCGGGGGCGGCA +GCGCTGAATGGCGACTACATATGGGATATGATCCTCATACCTGTCAGTTCACTGATTTTGAGCTAACCGA +CAGCAGAGACGCTGAACGGCTGGACCGATTTGCGCAAACGGCAGACGAGATACGCATTGCTGACCGGGGA +TTCGGTTCGCGTCCCGAATGTATCCGCTCACTTGCTTTTGGAGAAGCTGATTATATCGTCCGGGTTCACT +GGCGAGGATTGCGCTGGTTAACTGCAGAAGGAATGCGCTTTGACATGATGGGTTTTCTGCGCGGGCTGGA +TTGCGGTAAGAACGGTGAAACCACTGTAATGATAGGCAATTCAGGTAATAAAAAAGCCGGAGCTCCCTTT +CCGGCACGTCTCATTGCCGTATCACTTCCTCCCGAAAAAGCATTAATCAGTAAAACCCGACTGCTCAGCG +AGAATCGTCGAAAAGGACGAGTAGTTCAGGCGGAAACGCTGGAAGCAGCGGGCCATGTGCTATTGCTAAC +ATCATTACCGGAAGATGAATATTCAGCAGAGCAAGTGGCTGATTGTTACCGTCTGCGATGGCAAATTGAA +CTGGCTTTTAAGCGGCTCAAAAGTTTGCTGCACCTGGATGCTTTGCGTGCAAAGGAACCTGAACTCGCGA +AAGCGTGGATATTTGCTAATCTACTCGCCGCATTTTTAATTGACGACATAATCCAGCCATCGCTGGATTT +CCCCCCCAGAAGTGCCGGATCCGAAAAGAAGAACTAACTCGTTGTGGAGAATAACAAAAATGGTCATCTG +GAGCTTACAGGTGGCCATTCGTGGGACAGTATCCCTGACAGCCTACAAAACGCAATTGAAGAACGCGAGG +CATCGTCTTAACGAGGCACCGAGGCGTCGCATTCTTCAGATGGTTCAACCCTTAAGTTAGCGCTTATGGG +ATCACTCCCCGCCGTTGCTCTTACTCGGATTCGTAAGCCGTGAAAACAGCAACCTCCGTCTGGCCAGTTC +GGATGTGAACCTCACAGAGGTCTTTTCTCGTTACCAGCGCCGCCACTACGGCGGTGATACAGATGACGAT +CAGGGCGACAATCATCGCCTTATGCTGCTTCATTGCTCTCTTCTCCTTGACCTTACGGTCAGTAAGAGGC +ACTCTACATGTGTTCAGCATATAGGAGGCCTCGGGTTGATGGTAAAATATCACTCGGGGCTTTTCTCTAT +CTGCCGTTCAGCTAATGCCTGAGACAGACAGCCTCAAGCACCCGCCGCTATTATATCGCTCTCTTTAACC +CATTTTGTTTTATCGATTCTAATCCTGAAGACGCCTCGCATTTTTGTGGCGTAATTTTTTAATGATTTAA +TTATTTAACTTTAATTTATCTCTTCATCGCAATTATTGACGACAAGCTGGATTATTTTTGAAATATTGGC +CTAACAAGCATCGCCGACTGACAACAAATTAATTATTACTTTTCCTAATTAATCCCTCAGGAATCCTCAC +CTTAAGCTATGATTATCTAGGCTTAGGGTCACTCGTGAGCGCTTACAGCCGTCAAAAACGCATCTCACCG +CTGATGGCGCAAATTCTTCAATAGCTCGTAAAAAACGAATTATTCCTACACTATAATCTGATTTTAACGA +TGATTCGTGCGGGGTAAAATAGTAAAAACGATCTATTCACCTGAAAGAGAAATAAAAAGTGAAACATCTG +CATCGATTCTTTAGCAGTGATGCCTCGGGAGGCATTATTCTTATCATTGCCGCTATCCTGGCGATGATTA +TGGCCAACAGCGGCGCAACCAGTGGATGGTATCACGACTTTCTGGAGACGCCGGTTCAGCTCCGGGTTGG +TTCACTCGAAATCAACAAAAACATGCTGTTATGGATAAATGACGCGCTGATGGCGGTATTTTTCCTGTTA +GTCGGTCTGGAAGTTAAACGTGAACTGATGCAAGGATCGCTAGCCAGCTTACGCCAGGCCGCATTTCCAG +TTATCGCCGCTATTGGTGGGATGATTGTGCCGGCATTACTCTATCTGGCTTTTAACTATGCCGATCCGAT +TACCCGCGAAGGGTGGGCGATCCCGGCGGCTACTGACATTGCTTTTGCACTTGGTGTACTGGCGCTGTTG +GGAAGTCGTGTTCCGTTAGCGCTGAAGATCTTTTTGATGGCTCTGGCTATTATCGACGATCTTGGGGCCA +TCATTATCATCGCATTGTTCTACACTAATGACTTATCGATGGCCTCTCTTGGCGTCGCGGCTGTAGCAAT +TGCGGTACTCGCGGTATTGAATCTGTGTGGTGCACGCCGCACGGGCGTCTATATTCTTGTTGGCGTGGTG +TTGTGGACTGCGGTGTTGAAATCGGGGGTTCACGCAACTCTGGCGGGGGTAATTGTCGGCTTCTTTATTC +CTTTGAAAGAGAAGCATGGGCGTTCTCCAGCGAAGCGACTGGAGCATGTGTTGCACCCGTGGGTGGCGTA +TCTGATTTTGCCGCTGTTTGCATTTGCTAATGCTGGCGTTTCACTGCAAGGCGTCACGCTGGATGGCTTG +ACCTCCATTCTGCCATTGGGGATCATCGCTGGCTTGCTGATTGGCAAACCGCTGGGGATTAGTCTGTTCT +GCTGGTTGGCGCTGCGTTTGAAACTGGCGCATCTGCCTGAGGGAACGACTTATCAGCAAATTATGGTGGT +GGGGATCCTGTGCGGTATCGGTTTTACTATGTCTATCTTTATTGCCAGCCTGGCCTTTGGTAGCGTAGAT +CCAGAACTGATTAACTGGGCGAAACTCGGTATCCTGGTCGGTTCTATCTCTTCGGCGGTAATTGGATACA +GCTGGTTACGCGTTCGTTTGCGTCCATCAGTTTGACAGGACGGTTTACCGGGGAGCCATAAACGGCTCCC +TTTTCATTGTTATCAGGGAGAGAAATGAGCATGTCTCATATCAATTACAACCACTTGTATTACTTCTGGC +ATGTCTATAAAGAAGGTTCCGTGGTTGGCGCAGCGGAGGCGCTTTATTTAACTCCACAAACCATTACCGG +ACAGATTCGAGCGCTGGAAGAGCGCCTGCAAGGCAAATTATTTAAACGCAAGGGACGTGGTCTCGAACCC +AGCGAGCTGGGAGAACTGGTCTATCGCTATGCCGATAAAATGTTCACCTTAAGCCAGGAAATGCTGGATA +TTGTGAACTATCGCAAAGAATCCAATTTATTGTTTGACGTTGGCGTGGCTGATGCACTTTCCAAACGCCT +GGTCAGTAGCGTACTTAACGCCGCAGTGGTAGAAGGCGAGCCCATTCATCTTCGCTGCTTCGAATCCACC +CACGAAATGCTGCTGGAGCAATTAAGTCAGCATAAACTGGATATGATCATTTCTGACTGTCCGATAGACT +CTACGCAGCAGGAAGGCCTGTTCTCCGTGAGAATTGGCGAATGTGGCGTGAGTTTCTGGTGTACAAATCC +ACCACCAGAAAAACCGTTCCCGGCTTGTCTGGAAGAACGGCGACTTTTGATTCCTGGGCGACGTTCAATG +TTAGGGCGCAAATTGCTTAACTGGTTTAACTCCCAGGGATTAAACGTAGAAATCCTCGGCGAGTTTGATG +ATGCCGCTTTGATGAAAGCTTTTGGTGCGATGCACAATGCAATCTTCGTTGCCCCAACGCTTTATGCATA +TGACTTTTATGCCGATAAAACTGTCGTAGAAATTGGTCGCGTCGAGAATGTGATGGAAGAGTACCATGCT +ATTTTTGCTGAGCGGATGATTCAGCACCCGGCGGTACAGCGAATCTGCAATACGGATTATTCTGCGCTTT +TTAGTCCAGCGGTGCGTTAATCGGCAGCTCCCCCAAAGTTAAGGTGGGGGAGATAGATTAGTTGTACATT +ACCACGATTTTGACTCGGCTCATTATTTGCCCGCTTGAGACATTGTTTCCATATGTACGCGGGCGAATAA +ATAGAGGAATCTGATTACTTCCTTCATGGGGATGCTGAAAAGAGTAGTAATTGCTGGTAATGACTCCAAC +TTATTGATAGTGTTTTATGTTCAGATAATGCCCGATGACTTTGTCATGCAGCTCCACCGATTTTGAGAAC +GACAGCGACTTCCGTCCCAGCCGTGCCAGGTGCTGCCTCAGATTCAGGTTATGCCGCTCAATTCGCTGCG +TATATCGCTTGCTGATTACGTGCAGCTTTCCCTTCAGGCGGGATTCATACAGCGGCCAGCCATCCGTCAT +CCATATCACCACGTCAAAGGGTGACAGCAGGCTCATAAGACGCCCCAGCGTCGCCATAGTGCGTTCACCG +AATACGTGCGCAACAACCGTCTTCCGGAGACTGTCATACGCGTAAAACAGCCAGCGCTGGCGCGATTTAG +CCCCGACATAGCCCCACTGTTCGTCCATTTCCGCGCAGACGATGACGTCACTGCCCGGCTGTATGCGCGA +GGTTACCGACTGCGGCCTGAGTTTTTTAAGTGACGTAAAATCGTGTTGAGGCCAACGCCCATAATGCGGG +CTGTTGCCCGGCATCCAACGCCATTCATGGCCATATCAATGATTTTCTGGTGCGTACCGGGTTGAGAAGC +GGTGTAAGTGAACTGCAGTTGCCATGTTTTACGGCAGTGAGAGCAGAGATAGCGCTGATGTCCGGCGGTG +CTTTTGCCGTTACGCACCACCCCGTCAGTAGCTGAACAGGAGGGACAGCTGATAGAAACAGAAGCCACTG +GAGCACCTCAAAAACACCATCATACACTAAATCAGTAAGTTGGCAGCATCACCTACCTCAATGTGTATCA +CAATATCCATATTCTTTGTGGGGGAGTCTGGAGATTGAGTAGATATTCTTGTTCAGAATGTATCAGCCGA +TGGTTCTACGATTCTTAAGCCACGAAGAGTTCAGATAGTACAACGGCATGTCTCTTTTGACTATCTGGCA +ACCGGCAGTGTGTTCTCTCACGCATCACAAAAGCAGCAGGCATAAAAAAACCCGCTTGCGCGGGCTTTTT +CACAAAGCTTCAGCAAATTGGCGATTAAGCCAGTTTGTTGATCTGTGCAGTCAGGTTAGCCTTATGACGT +GCAGCTTTGTTTTTGTGGATCAGACCTTTAGCAGCCTGACGGTCCACGATCGGTTGCATTTCGTTAAATG +CTTTCTGTGCAGCAGCTTTGTCGCCAGCTTCGATAGCTGCGTATACTTTCTTGATGAAAGTACGCATCAT +AGAGCGACGGCTTGCGTTGTGCTTACGAGCCTTTTCAGACTGAATGGCGCGCTTCTTAGCTGATTTGATA +TTAGCCAAGGTCCAACTCCCAAATGTGTTCTATATGGACAATTCAAAGGCCGAGGAATATGCCCTTTTAG +CCTTCTTTTGTCAATGGATTTGTGCAAATAAGCGCCGTTAATGTGCCGGCACTCGTTACGTAGTGATGGC +GCAGGATTCTACCAGCTTGCGGGGTGTGAATACAGCTTTTCCGCGATAAAAATTGCAGCAGGCGGTCAGT +TTCTTCCCGTGATTTGCGCCATGGCAATGAAAAGCCACTTCTTTCTGATTTCGGTACTCAATCGCCGGTT +AACCTTGACCGCTGTACAAGGTATACTCGGACGATTTTCACTGTTTTGAGCCAGACATGAAGCTGATACG +CGGCATACATAATCTCAGCCAGGCCCCGCAAGAAGGGTGTGTGCTGACTATTGGTAATTTCGACGGCGTG +CATCGCGGTCATCGCGCGCTGTTACAGGGCTTGCAGGAAGAAGGGCGCAAGCGCAACTTACCGGTGATGG +TGATGCTTTTTGAACCTCAACCACTGGAACTGTTTGCTACCGATAAAGCCCCGGCAAGACTGACCCGGCT +GCGGGAAAAACTGCGTTACCTTGCAGAGTGTGGCGTTGATTACGTGCTGTGCGTGCGTTTCGACAGGCGT +TTCGCGGCGTTAACCGCGCAAAATTTCATCAGCGATCTTCTGGTGAAGCATTTGCGCGTAAAATTTCTTG +CCGTAGGTGATGATTTCCGCTTTGGCGCTGGTCGTGAAGGCGATTTCTTGTTATTACAGAAAGCTGGCAT +GGAATACGGCTTCGATATCACCAGTACGCAAACTTTTTGCGAAGGTGGCGTGCGCATCAGCAGCACCGCC +GTGCGTCAGGCCCTTGCGGATGACAATCTGGCTCTGGCAGAGAGTTTACTGGGGCACCCGTTTGCCATCT +CCGGGCGTGTAGTCCACGGTGATGAATTAGGGCGCACTATAGGTTTCCCGACGGCGAATGTACCGCTGCG +CCGTCAGGTTTCCCCGGTGAAAGGGGTTTATGCGGTAGAAGTGCTGGGCCTCGGTGAAAAGCCGTTACCC +GGCGTGGCAAACATCGGAACACGCCCAACGGTTGCCGGTATTCGCCAGCAGCTGGAAGTGCATTTGTTAG +ATGTTGCAATGGACCTTTACGGTCGCCATATACAAGTAGTGCTGCGTAAAAAAATACGCAATGAGCAGCG +ATTTGCGTCGCTGGACGAACTGAAAGCGCAGATTGCGCGTGATGAATTAACCGCCCGCGAATTTTTTGGG +CTAACAAAACCGGCTTAAGCCTGTTATGTAATCAAACCGAAATACGGAACCGAGAATCTGATGAGTGACT +ATAAATCAACCCTGAATTTGCCGGAAACAGGGTTCCCGATGCGTGGCGATCTCGCCAAGCGCGAACCCGG +AATGCTGGCGCGTTGGACTGATGATGATCTGTACGGCATCATCCGTGCGGCTAAAAAAGGCAAAAAAACC +TTCATTCTGCATGATGGCCCTCCTTATGCGAATGGCAGCATTCATATTGGTCACTCGGTTAACAAGATTC +TGAAAGACATTATCGTGAAGTCCAAAGGGCTTTCCGGTTATGACTCGCCGTATGTGCCTGGCTGGGACTG +CCACGGTCTGCCGATCGAGCTGAAAGTCGAGCAAGAATACGGTAAGCCGGGTGAGAAATTCACCGCCGCC +GAGTTCCGCGCCAAGTGCCGCGAATACGCGGCGACCCAGGTTGACGGTCAACGCAAAGACTTTATCCGTC +TGGGCGTGCTGGGCGACTGGTCGCACCCGTACCTGACCATGGACTTCAAAACTGAAGCCAACATCATCCG +CGCGCTGGGCAAAATCATCGGCAACGGTCACCTGCACAAAGGCGCGAAGCCAGTTCACTGGTGCGTTGAC +TGCCGTTCTGCGCTGGCGGAAGCGGAAGTTGAGTATTACGACAAAACTTCTCCGTCCATCGACGTTGCTT +TCCAGGCAGTCGATCAGGATGCACTGAAAGCAAAATTTGCCGTAAGCAACGTTAACGGCCCAATCTCGCT +GGTAATCTGGACCACCACGCCGTGGACTCTGCCTGCCAACCGCGCAATCTCTATTGCACCAGATTTCGAC +TATGCGCTGGTGCAGATCGACGGTCAGGCCGTGATTCTGGCGAAAGATCTGGTTGAAAGCGTAATGCAGC +GTATCGGCGTGACCGATTACACCATTCTCGGCACGGTAAAAGGTGCGGAGCTTGAGCTGCTGCGCTTTAC +CCATCCGTTTATGGGCTTCGACGTTCCGGCAATCCTCGGCGATCACGTTACCCTGGATGCCGGTACCGGT +GCCGTTCACACCGCGCCTGGCCACGGCCCGGACGACTATGTGATCGGTCAGAAATACGGCCTGGAAACCG +CTAACCCGGTTGGCCCGGACGGCACTTATCTGCCGGGCACTTATCCGACGCTGGATGGCGTGAACGTCTT +CAAAGCGAACGACATCGTCGTTGCGCTGCTGCAGGAAAAAGGCGCGCTGCTGCACGTTGAGAAAATGCAG +CACAGCTATCCGTGCTGCTGGCGTCACAAAACGCCGATCATCTTCCGCGCGACGCCGCAGTGGTTCGTCA +GCATGGATCAGAAAGGTCTGCGTGCGCAGTCACTGAAAGAGATCAAAGGCGTGCAGTGGATCCCGGACTG +GGGCCAGGCGCGTATCGAGTCGATGGTTGCTAACCGTCCTGACTGGTGTATCTCCCGTCAGCGCACCTGG +GGTGTACCGATGTCACTGTTCGTGCACAAAGACACGGAAGAGCTGCATCCGCGTACCCTTGAACTGATGG +AAGAAGTGGCAAAACGCGTTGAAGTCGATGGCATCCAGGCGTGGTGGGATCTCGATGCGAAAGAGATCCT +CGGCGACGAAGCTGATCAGTACGTGAAAGTGCCGGACACATTGGATGTATGGTTTGACTCCGGATCTACC +CACTCTTCTGTTGTTGACGTGCGTCCGGAATTTGCCGGTCACGCAGCGGACATGTATCTGGAAGGTTCTG +ACCAACACCGCGGCTGGTTCATGTCTTCCCTAATGATCTCCACCGCGATGAAGGGTAAAGCGCCGTATCG +TCAGGTACTGACCCACGGCTTTACCGTGGATGGTCAGGGCCGCAAGATGTCTAAATCCATCGGCAATACC +GTTTCGCCGCAGGATGTGATGAACAAACTGGGCGCGGATATTCTGCGTCTGTGGGTGGCATCAACCGACT +ACACCGGTGAAATGGCCGTTTCTGACGAGATCCTGAAACGTGCTGCCGATAGCTATCGTCGTATCCGTAA +CACCGCGCGCTTCCTGCTGGCAAACCTGAACGGTTTTGATCCAGCAAAAGATATGGTGAAACCGGAAGAG +ATGGTGGTACTGGATCGCTGGGCCGTAGGTTGTGCGAAAGCGGCACAGGAAGACATCCTCAAGGCGTACG +AAGCATACGATTTCCACGAAGTGGTACAGCGTCTGATGCGCTTCTGCTCCGTTGAGATGGGTTCCTTCTA +CCTCGACATCATCAAAGACCGTCAGTACACCGCCAAAGCGGACAGTGTGGCGCGTCGTAGCTGCCAGACT +GCGCTATATCACATCGCAGAAGCGCTGGTGCGCTGGATGGCACCAATCCTCTCCTTCACCGCTGATGAAG +TGTGGGGCTACCTGCCGGGCGAACGTGAAAAATACGTCTTCACCGGTGAGTGGTACGAAGGCCTGTTTGG +CCTGGCAGACAGTGAAGCGATGAACGATGCGTTCTGGGACGAGCTGTTGAAAGTGCGTGGCGAAGTGAAC +AAAGTCATTGAGCAAGCGCGTGCCGACAAGAAAGTGGGTGGCTCGCTGGAAGCGGCAGTAACCTTGTATG +CAGAACCGGAACTGTCGGCGAAACTGACCGCGCTGGGCGATGAATTACGATTTGTCCTGTTGACCTCCGG +CGCTACCGTTGCAGACTATAACGACGCACCTGCTGATGCTCAGCAGAGCGAAGTACTCAAAGGGCTGAAA +GTCGCGTTGAGTAAAGCCGAAGGTGAGAAGTGCCCACGCTGCTGGCACTACACCCAGGATGTCGGCAAGG +TGGCGGAACACGCAGAAATCTGCGGCCGCTGTGTCAGCAACGTCGCCGGTGACGGTGAAAAACGTAAGTT +TGCCTGATGAGTCAATCGATCTGTTCAACAGGGCTACGCTGGCTGTGGCTGGTGGTAGTCGTGCTGATTA +TCGATCTGGGCAGCAAATACCTGATCCTCCAGAACTTTGCTCTGGGGGATACGGTCCCGCTGTTCCCGTC +GCTTAATCTGCATTATGCGCGTAACTATGGCGCGGCGTTTAGTTTCCTTGCCGATAGCGGCGGCTGGCAG +CGTTGGTTCTTTGCCGGTATTGCGATTGGTATTAGCGTGATCCTGGCAGTGATGATGTATCGCTCGAAGG +CCACGCAGAAGCTAAACAATATCGCTTACGCGCTGATTATTGGCGGCGCGCTGGGCAACCTGTTCGACCG +CCTGTGGCACGGCTTCGTTGTCGATATGATCGACTTCTACGTCGGCGACTGGCACTTCGCCACCTTCAAC +CTTGCCGATACTGCCATCTGTGTCGGTGCGGCACTGATTGTGCTGGAAGGTTTTTTGCCTTCTAGAGCGA +AAAAACAATAATAAACCCTGCCGGATGCGATGCTGACGCATCTTATCCGGCCTACAGATTGCTGCGAAAT +CGTAGGCCGGATAAGGCGTTTACGCCGCATCCGGCAAAAATCCTTAAATATAAGAGCAAACCTGCATGTC +TGAATCTGTACAGAGCAATAGCGCCGTCCTGGTGCACTTCACGCTAAAACTCGACGATGGCACCACCGCC +GAGTCTACCCGCAACAACGGTAAACCGGCGCTGTTCCGCCTGGGTGATGCTTCTCTTTCTGAAGGGCTGG +AGCAACACCTGTTGGGGCTGAAAGTGGGCGATAAAACCACCTTCTCGTTGGAGCCAGATGCGGCGTTTGG +CGTGCCGTCACCGGACCTGATTCAGTACTTCTCCCGCCGTGAATTTATGGATGCAGGCGAGCCAGAAATT +GGCGCAATCATGCTTTTTACCGCAATGGATGGCAGTGAGATGCCTGGCGTGATCCGCGAAATTAACGGCG +ACTCCATTACCGTTGATTTCAACCATCCGCTGGCCGGGCAGACCGTTCATTTTGATATTGAAGTGCTGGA +AATCGATCCGGCACTGGAGGCGTAACATGCAGATCCTGTTGGCCAACCCGCGTGGTTTTTGTGCCGGGGT +AGACCGCGCTATCAGCATTGTTGAAAACGCGCTGGCCATTTACGGCGCACCGATATATGTCCGTCACGAA +GTGGTACATAACCGCTATGTGGTCGATAGCTTGCGTGAGCGTGGGGCTATCTTTATTGAGCAGATTAGCG +AAGTACCGGACGGCGCGATCCTGATTTTCTCCGCACACGGTGTTTCTCAGGCGGTACGTAACGAAGCAAA +AAGTCGCGATTTGACGGTGTTTGATGCCACCTGTCCGCTGGTGACCAAAGTGCATATGGAAGTCGCCCGC +GCCAGTCGCCGTGGCGAAGAATCTATTCTCATCGGTCACGCCGGGCACCCGGAAGTGGAAGGGACAATGG +GCCAGTACAGTAACCCGGAAGGGGGAATGTATCTGGTCGAATCGCCGGACGATGTGTGGAAACTGACGGT +CAAAAACGAAGAGAAGCTCTCCTTTATGACCCAGACCACGCTGTCGGTGGATGACACGTCTGATGTGATC +GACGCGCTGCGTAAACGCTTCCCGAAAATTGTCGGTCCGCGCAAAGATGACATCTGCTACGCCACGACTA +ACCGTCAGGAAGCGGTACGCGCCCTGGCAGAACAGGCGGAAGTTGTGTTGGTGGTCGGTTCGAAAAACTC +CTCCAACTCCAACCGTCTGGCGGAGCTGGCCCAGCGTATGGGCAAACGCGCGTTTTTGATTGACGATGCG +AAAGACATCCAGGAAGAGTGGGTGAAAGAGGTTAAATGCGTCGGCGTGACTGCGGGCGCATCGGCTCCGG +ATATTCTGGTGCAGAATGTGGTGGCACGTTTGCAGCAGCTGGGCGGTGGTGAAGCCATTCCGCTGGAAGG +CCGTGAAGAAAACATTGTTTTCGAAGTGCCGAAAGAGCTGCGTGTCGATATTCGTGAAGTCGATTAAGTC +ATTAGCAGCCTAAGTTATGCGAAAATGCCGGTCTTGTTACCGGCATTTTTTATGGAGAAAACATGCGTTT +ACCTATCTTCCTCGATACTGACCCCGGCATTGACGATGCCGTCGCCATTGCCGCCGCGATTTTTGCACCC +GAACTCGACCTGCAACTGATGACCACCGTCGCGGGTAATGTCTCGGTTGAGAAAACTACCCGCAATGCCC +TGCAACTGCTGCATTTCTGGAATGCGGAGATTCCGCTCGCCCAAGGGGCCGCTGTGCCACTGGTACGCGC +ACCGCGTGATGCGGCATCTGTGCACGGCGAATCGGGAATGGCTGGCTACGACTTTGTTGAGCACAACCGA +AAGCCGCTCGGGATACCGGCGTTTCTGGCGATTCGGGATGCCCTGATGCGTGCACCAGAGCCTGTTACCC +TGGTGGCCATCGGCCCGTTAACCAATATTGCGCTGTTACTTTCACAATGCCCGGAATGCAAGCCGTATAT +TCGCCGTCTGGTGATCATGGGTGGTTCTGCCGGACGCGGCAACTGTACGCCAAACGCCGAGTTTAATATT +GCTGCCGATCCAGAAGCTGCTGCCTGTGTCTTCCGCAGTGGTATTGAAATCGTCATGTGCGGTTTGGATG +TCACCAATCAGGCAATATTAACTCCTGACTATCTCTCTACACTGCCGCAGTTAAACCGTACCGGGAAAAT +GCTTCACGCCCTGTTTAGCCACTACCGTAGCGGCAGTATGCAAAGCGGCTTGCGAATGCACGATCTCTGC +GCCATCGCCTGGCTGGTGCGCCCGGACCTGTTCACTCTCAAACCCTGTTTTGTGGCAGTGGAAACTCAGG +GCGAATTTACCTCAGGCACGACGGTGGTTGATATCGACGGTTGCCTGGGCAAGCCAGCCAATGTACAGGT +GGCATTGGATCTGGATGTGAAAGGCTTCCAGCAGTGGGTGGCTGAGGTGCTGGCTCTGGCGTCGTAACCT +GTCACATGTTATTGGCATGCAGTCATTCATCGACTCATGCCTTTCACTGATATCCCTCCCTGTTTATCAT +TAATTTCTAATTATCAGCGTTTTTGGCTGGCGGCGTAGCGATGCGCTGGTTACTCTGAAAACGGTCTATG +CAAATTAACAAAAGAGAATAGCTATGCATGATGCAAACATCCGCGTTGCCATCGCGGGAGCCGGGGGGCG +TATGGGCCGCCAGTTGATTCAGGCGGCGCTGGCATTAGAGGGCGTGCAGTTGGGCGCTGCGCTGGAGCGT +GAAGGATCTTCTTTACTGGGCAGCGACGCCGGTGAGCTGGCCGGAGCCGGGAAAACAGGCGTTACCGTGC +AAAGCAGCCTCGATGCGGTAAAAGATGATTTTGATGTGTTTATCGATTTTACCCGTCCGGAAGGTACGCT +GAACCATCTCGCTTTTTGTCGCCAGCATGGCAAAGGGATGGTGATCGGCACTACGGGGTTTGACGAAGCC +GGTAAACAAGCAATTCGTGACGCCGCTGCCGATATTGCGATTGTCTTTGCTGCCAATTTTAGCGTTGGCG +TTAACGTCATGCTTAAGCTGCTGGAGAAAGCAGCCAAAGTGATGGGTGACTACACCGATATCGAAATTAT +TGAAGCACATCATAGACATAAAGTTGATGCGCCGTCAGGCACCGCACTGGCAATGGGAGAGGCGATCGCC +CACGCCCTTGATAAAGATCTGAAAGATTGCGCGGTCTACAGTCGTGAAGGCCACACCGGTGAACGTGTGC +CTGGCACCATTGGTTTTGCCACCGTGCGTGCAGGTGACATCGTTGGTGAACATACCGCGATGTTTGCCGA +TATTGGCGAGCGTCTGGAGATCACCCATAAGGCGTCCAGCCGTATGACATTTGCTAACGGCGCGGTAAGA +TCGGCTTTGTGGTTGAGTGGTAAGGAAAGCGGTCTTTTTGATATGCGAGATGTACTTGATCTCAATAATT +TGTAACCACAAAATATTTGTTATGGTGCAAAAATAACACATTTAATTTATTGATTATAAAGGGCTTTAAT +TTTTGGCCCTTTTATTTTTGGTGTTATGTTTTTAAATTGTCTATAAGTGCCAAAAATTACATGTTTTGTC +TTCTGTTTTTGTTGTTTTAATGTAAATTTTGACCATTTGGTCCACTTTTTTCTGCTCGTTTTTATTTCAT +GCAATCTTCTTGCTGCGCAAGCGTTTTCCAGAACAGGTTAGATGATCTTTTTGTCGCTTAATGCCTGTAA +AACATGCATGAGCCACAAAATAATATAAAAAATCCCGCCATTAAGTTGACTTTTAGCGCCCATATCTCCA +GAATGCCGCCGTTTGCCAGAAATTCGTCGGTAAGCAGATTTGCATTGATTTACGTCATCATTGTGAATTA +ATATGCAAATAAAGTGAGTGAATATTCTCTGGAGGGTGTTTTGATTAAGTCAGCGCTATTGGTTCTGGAA +GACGGAACCCAGTTTCACGGTCGGGCCATAGGGGCAACAGGTTCGGCGGTTGGGGAAGTCGTTTTCAATA +CTTCAATGACCGGTTATCAAGAAATCCTCACTGATCCTTCCTATTCTCGTCAAATCGTTACTCTTACTTA +TCCCCATATTGGCAATGTCGGCACCAATGACGCCGATGAAGAATCTTCTCAGGTACATGCACAAGGTCTG +GTGATTCGCGACCTGCCGCTGATTGCCAGCAACTTCCGTAATACCGAAGACCTCTCTTCTTACCTGAAAC +GCCATAACATCGTGGCGATTGCCGATATCGATACCCGTAAGCTGACGCGTTTACTGCGCGAGAAAGGCGC +ACAGAATGGCTGCATTATCGCGGGCGATAACCCGGATGCGGCGCTGGCGTTAGAAAAAGCCCGCGCGTTC +CCAGGTCTGAATGGCATGGATCTGGCAAAAGAAGTGACCACCGCAGAAGCCTATAGCTGGACACAAGGGA +GCTGGACGTTGACCGGTGGCCTGCCAGAAGCGAAAAAAGAAGACGAGCTGCCGTTCCACGTCGTGGCTTA +TGATTTTGGTGCCAAGCGCAACATCCTGCGGATGCTGGTGGATAGAGGCTGTCGCCTGACCATCGTTCCG +GCGCAAACTTCTGCGGAAGATGTGCTGAAAATGAATCCAGACGGCATCTTCCTCTCCAACGGTCCTGGCG +ACCCGGCCCCGTGCGATTACGCCATTACCGCCATCCAGAAATTCCTCGAAACCGATATTCCGGTATTCGG +CATCTGTCTCGGTCATCAGCTGCTGGCGCTGGCGAGCGGTGCGAAGACTGTCAAAATGAAATTTGGTCAC +CACGGCGGCAACCATCCGGTTAAAGATGTGGAGAAAAACGTGGTAATGATCACCGCCCAGAACCACGGTT +TTGCGGTGGACGAAGCAACATTACCTGCAAACCTGCGTGTCACGCATAAATCCCTGTTCGACGGTACGTT +ACAGGGCATTCATCGCACCGATAAACCGGCATTCAGCTTCCAGGGGCACCCTGAAGCCAGCCCTGGTCCA +CACGACGCCGCGCCGTTGTTCGACCACTTTATCGAGTTAATTGAGCAGTACCGTAAAACCGCTAAGTAAT +CAGGAGTAAAAGAGCCATGCCAAAACGTACAGATATAAAAAGTATCCTGATTCTGGGTGCGGGCCCGATT +GTTATCGGTCAGGCGTGTGAGTTTGACTACTCTGGCGCGCAAGCGTGTAAAGCCCTGCGTGAAGAGGGTT +ACCGCGTCATTCTGGTGAACTCCAACCCGGCGACCATCATGACCGACCCGGAAATGGCTGATGCAACCTA +CATCGAGCCGATTCACTGGGAAGTTGTACGCAAGATTATTGAAAAAGAGCGCCCGGACGCGGTGCTGCCA +ACGATGGGCGGTCAGACGGCGCTGAACTGCGCGCTGGAGCTGGAACGTCAGGGCGTGTTGGAAGAGTTCG +GTGTCACCATGATTGGTGCCACTGCCGATGCGATTGATAAAGCAGAAGACCGCCGTCGTTTCGACGTAGC +GATGAAGAAAATTGGTCTGGAAACCGCGCGTTCCGGTATCGCACACACGATGGAAGAAGCGCTGGCGGTT +GCCGCTGACGTGGGCTTCCCGTGCATTATTCGCCCATCCTTTACCATGGGCGGTAGCGGCGGCGGTATCG +CTTATAACCGTGAAGAGTTTGAAGAAATTTGCGCCCGCGGTCTGGATCTCTCTCCGACCAAAGAGTTGCT +GATTGATGAGTCGCTGATCGGCTGGAAAGAGTACGAGATGGAAGTGGTGCGTGATAAAAACGACAACTGC +ATCATCGTCTGCTCTATCGAAAACTTCGATGCGATGGGCATCCACACCGGTGACTCCATCACTGTCGCGC +CAGCCCAAACGCTGACCGACAAAGAATATCAAATCATGCGTAACGCCTCGATGGCGGTGCTGCGTGAAAT +CGGCGTTGAAACCGGTGGTTCCAACGTTCAGTTTGCGGTGAACCCGAAAAACGGTCGTCTGATTGTTATC +GAAATGAACCCACGCGTGTCCCGTTCTTCGGCGCTGGCGTCGAAAGCGACCGGTTTCCCGATTGCTAAAG +TGGCGGCGAAACTGGCGGTGGGTTACACCCTCGACGAACTGATGAACGACATCACTGGCGGACGTACTCC +GGCCTCCTTCGAGCCGTCCATCGACTATGTGGTTACTAAAATTCCTCGCTTCAACTTCGAAAAATTCGCC +GGTGCTAACGACCGTCTGACCACTCAGATGAAATCGGTTGGCGAAGTGATGGCGATTGGTCGCACGCAGC +AGGAATCCCTGCAAAAAGCGCTGCGCGGCCTGGAAGTCGGTGCGACTGGATTCGACCCGAAAGTGAGCCT +GGATGACCCGGAAGCGTTAACCAAAATCCGTCGCGAACTGAAAGACGCAGGCGCAGATCGTATCTGGTAC +ATCGCCGATGCGTTCCGTGCGGGCCTGTCTGTGGACGGCGTCTTCAACCTGACCAACATTGACCGCTGGT +TCCTGGTACAGATTGAAGAGCTGGTGCGTCTGGAAGAGAAAGTGGCGGAAGTGGGCATCACTGGCCTGAA +CGCTGACTTCCTGCGCCAGCTGAAACGCAAAGGCTTTGCCGATGCGCGCTTGGCAAAACTGGCGGGCGTA +CGCGAAGCGGAAATCCGTAAGCTGCGTGACCAGTATGACCTGCACCCGGTTTATAAGCGCGTGGATACCT +GTGCGGCAGAGTTCGCCACCGACACCGCTTACATGTACTCCACTTATGAAGAAGAGTGCGAAGCGAATCC +GTCTACCGACCGTGAAAAAATCATGGTGCTTGGCGGCGGCCCGAACCGTATCGGTCAGGGTATCGAATTC +GACTACTGTTGCGTACACGCCTCGCTGGCGCTGCGCGAAGACGGTTACGAAACCATTATGGTTAACTGTA +ACCCGGAAACCGTCTCCACCGACTACGACACTTCCGACCGCCTCTACTTCGAGCCGGTAACTCTGGAAGA +TGTGCTGGAAATCGTGCGTATCGAGAAGCCGAAAGGCGTTATCGTCCAGTACGGCGGTCAGACCCCGCTG +AAACTGGCGCGCGCGCTGGAAGCTGCTGGCGTACCGGTTATCGGCACCAGCCCGGATGCTATCGACCGTG +CAGAAGACCGTGAACGCTTCCAGCATGCGGTTGAGCGTCTGAAACTGAAACAACCGGCGAACGCCACCGT +TACCGCTATTGAAATGGCGGTAGAGAAGGCGAAAGAGATTGGCTACCCGCTGGTGGTACGTCCGTCTTAC +GTTCTCGGCGGTCGGGCGATGGAAATCGTCTATGACGAAGCTGACCTGCGTCGCTACTTCCAGACGGCGG +TCAGCGTGTCTAACGATGCGCCAGTGTTGCTGGACCACTTCCTCGATGACGCGGTAGAAGTTGACGTGGA +TGCCATCTGCGACGGCGAAATGGTGCTGATTGGCGGCATCATGGAGCATATTGAGCAGGCGGGCGTGCAC +TCCGGTGACTCCGCATGTTCTCTGCCAGCCTACACCTTAAGTCAGGAAATTCAGGATGTGATGCGCCAGC +AGGTGCAGAAACTGGCCTTCGAATTGCAGGTGCGCGGCCTGATGAACGTGCAGTTTGCGGTGAAAAACAA +CGAAGTCTACCTGATTGAAGTTAACCCGCGTGCGGCGCGTACCGTTCCGTTCGTCTCCAAAGCCACCGGC +GTACCGCTGGCAAAAGTGGCGGCGCGCGTGATGGCTGGCAAATCGCTGGCTGAGCAGGGCGTAACCAAAG +AAGTTATCCCGCCGTACTACTCGGTGAAAGAAGTGGTGCTGCCGTTCAATAAATTCCCGGGCGTTGACCC +GCTGTTAGGGCCAGAAATGCGCTCTACCGGGGAAGTCATGGGCGTGGGCCGCACCTTCGCTGAAGCGTTT +GCCAAAGCGCAGCTGGGCAGCAACTCCACCATGAAGAAACACGGTCGTGCGCTGCTTTCCGTGCGCGAAG +GCGATAAAGAACGCGTGGTGGACCTGGCGGCAAAACTGCTGAAACAGGGCTTCGAGCTGGATGCGACCCA +CGGCACGGCGATTGTGCTGGGCGAAGCAGGTATCAACCCGCGTCTGGTAAACAAGGTGCATGAAGGCCGT +CCGCACATTCAGGACCGTATCAAGAATGGCGAATATACCTACATCATCAACACCACCTCAGGCCGTCGTG +CGATTGAAGACTCCCGCGTGATTCGTCGCAGTGCGCTGCAATATAAAGTGCATTACGACACCACCCTGAA +CGGCGGCTTTGCCACCGCGATGGCGCTGAATGCCGATGCGACTGAAAAAGTAATTTCGGTGCAGGAAATG +CACGCACAGATCAAATAATAGCGTGTCATGGCAGATATTTTTCATCCGCTAATTTGATCGAATAACTAAT +ACGGTTCTCTGATGAGGACCGTTTTTTTTTGCCCATTAAGTAAATCTTTTGGGGAATCGATATTTTTGAT +GACATAAGCAGGATTTAGCTCACACTTATCGACGGTGAAGTTGCATACTATCGATATATCCACAATTTTA +ATATGGCCTTGTTTAATTGCTTCAAAACGAGTCATAGCCAGACTTTTAATTTGTGAAACTGGAGTTCGTA +TGTGTGAAGGATATGTTGAAAAACCACTCTACTTGTTAATCGCCGAATGGATGATGGCTGAAAATCGGTG +GGTGATAGCAAGAGAGATCTCTATTCATTTCGATATTGAACACAGCAAGGCGGTTAATACCCTGACTTAT +ATTCTGTCGGAAGTCACAGAAATAAGCTGCGAAGTTAAGATGATCCCTAATAAGCTGGAAGGGCGGGGAT +GCCAGTGTCAGCGACTGGTTAAAGTGGTCGATATCGATGAGCAAATTTACGCGCGCCTGCGCAATAACAG +TCGGGAAAAATTAGTCGGTGTAAGAAAGACGCCGCGTATTCCTGCCGTTCCGCTCACGGAACTTAACCGC +GAGCAGAAGTGGCAGATGATGTTGTCAAAGAGTATGCGTCGTTAATTTTATCTCGTTGATACCGGGCGTC +CTGCTTGCCAGATGCGATGTTGTAGCATCTTATCCAGCAACCAGGTCGCATCCGGCAAGATCACCGTTTA +GGCGTCACATCCGTCGTCCCCTGCAAACGGGGGCGATTTTCCTCCATTTGCCTCAGTGGCTGCGTTTCAT +GTAACGATACATGACAGCGCCCGACAAGATCCTGATACTCTTTGGTATTCAACCGTTTCCAGTGTAACTC +GTCGTCACTAACATTGCGTACAGCGCGGGCTGGCGTACCCATCAACAACTGGCGTTTCTCGCCGCGAAAG +CCCGCTTTGACAAAGCTCATGGCGGCAACAATGCTCTCTTCGCCAATGACCGCGCCATCCATAATCACGC +TGTTCATCCCGACCAATGCATCGCGACCAATCAAACAACCATGCAGGATCGCTCCGTGCCCGATATGGCC +GTTTTCCCCAACGATAGTGTCAGTGTCGCAGTAGCCATGCATAATGCAGCCATCCTGAATATTGGCTCCC +GCTTGCACGATCAACCGCCCGTAGTCACCACGCAGTGAGGCGAGTGGGCCGATGTAGACACCGGCTCCCA +CAATCACATCGCCAATCAAGACGGCACTGGGATGGACAAACGCCGTCGGGTGAACCACCGGAATTAACCC +CTCAAAGGCGTAATAGCTCACGGTTGTTAACGTCCTTTCCACACCGGATCGCGCTTCTCGGCAAACGCCA +GCGGCCCTTCAATGGCATCTTCCGAATGCAGAACCGATGGATAGTGTTTCAACACGCCGCTGCGAATATA +GCGATACGCTTCTTCTACCGGCATTTCGCTGGTGGTGCGGTAGATCTCTTTCAGCGCCGCAATCGCCAGC +GGGGCGCTGTTAACCAGCTGCTGAGCCAGTTCGCGGGCGTTATCCATCAGTTCCGCCTGGCTAACCACGC +GGTTGACTATCCCCCAACGCAGCGCCTCTTCTGCGCCCATTCGTCTGCCGGTCATCACCATTTCATTGAC +GATGGCAGGCGGCAGGATCTTCGGCAGACGCAGCACACCGCCGCTGTCAGGAACGATGCCCAGTTTGGCT +TCCGGCAGGGCGAAGCTGGCGTTATCGGCACAAACAATAAAATCTGCCGCCAGCGCCAGTTCAAAGCCGC +CGCCAAAGGCATAGCCGTTCACAGCTGCGATAACCGGTTTGTCGAGATTGAAAATTTCGGTTAATCCCGC +AAAACCACCCGGACCAAAGTCAGCATCCGGTGCTTCGCCTTCTGCTGCCGCTTTTAAATCCCAGCCCGCG +GAAAAGAACTTCTCTCCGGCACCGGTAATAATGGCGACACGTAATTGCGGATCGTCACGGAAATTTAGAA +ATACTTCGCCCATTTCAAAGCTGGTTTTTGCATCAATAGCATTCGCTTTTGGACGATCAAGGGTAATTTC +CAGAATTGATCCATTGCGGGTCAGATGTAATGATTCACTCATTCCTTTTCTCCATTTTTGCTTTTTCAGG +GACGACAACATCCCTGCAAAAAATGCATATTGTTTTAGAGTGTGATTATTAGCTGGCAGGGTAGTTCCCT +GCTGTTTCATTTATTTCAGATTCTTTCTAATTATTTTCCCCGAGCAATTACGTGGCAGATCTTTTCTGAT +CTCCAGATAAGAGGGCACTTTAAATTTCGCCATATTTTGTTCGCAGAAGCGGAAAAATTCCTCTTCGCTC +AATGTTTCACCTTCATTCAGCACCACAAATGCTTTGATGGCTTCATCGCGAATCGAATCTTTAATACCCA +CAACCACGATGTCCTGAATTTTCGGGTGCGCGGCGATAATATTTTCCAGCTCCACGCAGGAGACATTCTC +GCCGCCACGTTTAATCATATTGCAGCGGCGATCGACGAAATAAAAAAAGTCCTCTTCGTCGCGGTATCCG +GTATCGCCGGTATGCAGCCAGCCATCGGCTTCCAGCACTTTCGCAGTGGCTTGTGGGTTGAGAAAGTACT +CTTTGAAGATGGTTTTCCCAGGTATGCCTTTAATGCAGATTTCACCGATCTCACCAGCCGGGAGCGGGCG +ATTGTGATCGTCGCGGATCTCCGCTTCGTAGCAAAACCCCACCCGACCAATCGACGGCCAGCGTCGTTTA +TCGCCAGGACGATCGCCGATAATGCCCACAATGGTTTCCGTCATCCCATAAGACGTCAGCAAGCGAACGC +CGAAGCGTTCACAAAACGCATCTTTTTCCTGCTCCGACAAGTTGAGATAAAACATCACTTCCCGCAGGCG +GTGTTGCTGATCGTTCGCTGAAGGCGGCTGTACCATCAACGTACGGATCATCATCGGAATACATTCGGTA +ACGGTGGCGCGGTACTTCTGTACCTGTCCCCAGAAGGCGCGGGCGCTGTATTTCTCGACCAGCACAAAGG +TGGCCCCGGCAGAAAACGCCGCCATCGCCGCAGTACACTGGCAATCGATATGAAACGCAGGCATTACCGT +CAGGTAGACGTCATCGTCACGCAGTGCACACTGCCAGGCGGAGTAATATCCAGCGAAGCGCAGGTTGTAA +TGGGTAATCACCACACCTTTCGGTCGGGAGGTGGTGCCGGAGGTGAAGAGAATTTCCGCCGTATCGTCAG +TCGATAGCGGCGGTGCATAGCACAAGGTGGCAGGTTGTTGATTTTTCAGTTGAGTAAACGAACTCACGCC +ATCATCAGCGGGAAGTGCCACATCTGTCAGGCAAATGTGCCGCAATTGAGTGGCATCTTCCTGCTGAATC +TGTTGATACATAGGATAGAATTGCGCACTGGTCACCAGCAGGCACGCCTGGCTATTTTGCAGGATCCACG +CGCTTTCCTCGCACAACAGGCGGGCGTTAATCGGCACCATAATCGCGCCAATTTTTGCCAGCCCGAACCA +GCAAAAGATAAATTCCGGGCAGTTGTCGAGATGTAGTGCAACCTTGTCGCCTTTGCGAATCCCCAGCGTA +TAAAACAGGTTTGCCGTGCGGTTAATCTCCTGATTTAACTCAAGATAACTATACCGGTTAACGACTCCGC +CGCTGGATTCACAAATCAGCGCCGTTTTATGACCGTAAACGTCCGCAAGATCGTCCCACATTTGACGTAG +ATGTTGTCCGCCAATGATATCCATTGCACCTCTATCCATTTTTGTTCGTTTGTTATTGGGCGGGCGCTAG +TCAGGCAAGCCGACTGACGCCACGCGTTTAGTCCTCAACTTTGGCCAGACCTTTGCTGACCAACTCCTGA +ATGTCGTTTTCGCTGTAGCCGATATTTTTCAAAATGGCAGCCGTGTCCATGCCATGTGAGGGCATTCCGC +GCCAGATTTGTCCGGGGTTATTTTTGAATTTCGGCATGATGTTCGGCCCTTTGCAGGTGCGACCATCCAT +CGTTTGCCACTGAGTGATTGATTCGCGAGCCACATACTGTGGATTGCTTTCCAGTTCCGGTACGGTCAGC +ACTTTGGCGCAGGCGATATTCAGTTCAGCAAAGCGTTCTTTTACTTCCGCGATGGTATGTGTCGCCAGCC +AGGCATCGAGTTTCTCTTCAACCAGTGGGCCGTAAGGGCATTCGATACGGTGGATAAGCTGAGTGCCTTC +CGGGATTTCTGGCGTGCCAAGCAGATGTGCGAGGCCAATATCTTTAAAGCACTCTTCAATTTGGGTAATG +CCCACCAGTTCCATCACGATGTAGCCGTCGGCACATTTATACAGACCGCAACCGGCGTAGTAGGGATCTT +TACCTTTGCTCATGCGCGGGCACATTTCGCCGCCGTTGAAGTAATCCATCATGAAGTACTGGCCCATACG +CAGCATCACTTCATACATGGCGATGTCGATACTTTCGCCTTTACCGGTTTCACGCACTTTATGCAGTGCT +GCCAGCGCCGCCGTGGTGGCGGTCAGGCCAGAAAAGTAATCGGCGGTATACGGGAAGGCAGGCATTGGCT +GGTCAACATCACCGTTCTGAATCAGGTAACCACTAAAGGCCTGGGCGATAGTGTTATAGGCCGGAAGATT +GGTGTACTCCTCGGTGCCGTACTGACCAAAACCGGACAGGTGAGCGATAACCAGTTTCGGGTTGTGCTGC +CACAGTACTTCATCGGTAATGCCACGACGGGCAAAGGCCGGACCTTTACTGGCTTCGATGAAGATATCGG +TGGTTTCCATTAATTTCAGAAACGCTTCGCGGCCTTCATCTTTGAAAATATTTAACGACAGCGCGTGCAA +ATTGCGGCGGGAGAGTTGCGGGTAGTTCGGTTGAACGCGAATGGTGTCGGCCCAGGCGACGTTCTCGATC +CAGATAACTTCCGCGCCCCATTCTGCGAACATTTGCCCGGCAAACGGTCCGGCGATTTCGATACCGGAGA +AGACAACGCGCAATCCGGCCAACGGCCCGAATTTCGGCATGGGTAGATGATCCATTATTTGCTCCTGAAA +AATTTATGTAGCGCATGACTGCCGGATGCGGCGTAAACGCTTTATCCGGCCTACATTCGTGCTCCCGTAG +GCCTGATAAGACGCATCAGCGTCGCATCAGGCAGCGCACGGACTTAGCGGTATTGCTTCAGCACCGCACG +ACCCAGCGTCAGGATCTGCATTTCGTCAGATCCCCCGGAGACGCGGTCTACACGCAGATCACGCCAGAAG +CGGCTGATGCGGTGGTTGCCCGCAATCCCGACACCGCCCAGCACCTGCATTGCGCTATCCACAACTTCAA +ATGCCGCATTGGCGCAGAAGTATTTGCACATCGCTGCATCGCCAGAGGTGATGGTGCCGTTGTCTGCTTT +CCACGCTGCTTCATACAGCATGTTTTTCATGGAGTTTAATTTGATCGCCATGTGGGCGAATTTTTCCTGA +ATCAACTGGAAACGACCAATAGCCTCGCCAAACTGCACGCGCTGATTGGCGTAGCGCGCCGCATCTTCAA +AGGCGCACATCGCCGTACCGTAGTTGGTGAGGGCTACCAGGAAACGTTCATGGTCGAACTCTTCTTTGAC +GCGGTTAAAGCCGTTACCTTCCCGACCGAACATGTCTTTCTCGTCCAGTTCCACGTCGTCAAAGGTGATT +TCACAGCAGCTATCCATACGCAGACCGAGCTTTTCAAGTTTGGTCACTTTGATGCCCGGTTTGCTCATAT +CAACAAACCATTCGGTGTAGACAGGTTTGTCCGGAGAAGCCCCGTCGCGCGCCATCACCACGATGTACGG +GGTGTAGGCGCTGCTGGTAATAAAACACTTACTACCATTAAGATAAATCTTACCATTTCTACGGGTATAA +GTCGTTTTCAGGCTACCCACGTCGGAGCCCGCGCCCGGTTCGGTAATCGCTGAGTTCCACATCTGCTTAC +CGGTGCCGCGGAAAGCCATAATTTTGTCGATCTGCTCTTGTGTGCCTTCGCGCAGGAAGGTGTTGAACCC +GCCCGGCAACTGGTACAGCACATAGGTTGGTGCCCCCAGACGTCCCAGCTCCATCCACACGGCGGCGAGA +GTAACAAACCCCGCGTCCAGACCACCGTGCTCTTCAGGGATCAGCAGACTGTCGATACCCATATCCGCCA +GTGCTTTGACAAAACGTTCCGGGTAGACGCTGTCACGGTCGCACTCGGCAAAATAGGCCTCCCAGTTTTC +GCTGGCCATCAGTTCGCGGATACCGGCGACAAACAGTTCCTGCTCATCATTTAAATTAAAATCCATCTTT +CAACCTCTTGATATTTTGGGGGTTAATTAATCTTTCCAGTTCTGTTTCGCGTCTTTAATAAAGGAGAGCG +TCACCATAATGTTGACGAAGAACAGCGGGCATCCTCCGGCGATAATGGCGGTTTGAATCGGTTTCAGGCC +GCCGAGCGCCAGCAGAACAATACCGATAATGCCAACCAGAATTGACCAACCGATACGCACCAGCAGAGGT +GGTTCTTCACCATCGCGTACTTCGCGGCAAGTGGACATCGCCAGGGTATAAGAGCAGGCGTTAACCAGCG +TAACGGTGGCAATAAAGCAGAGGATGAAGAAGCCCCACATGGTGGCGGTGCTGAGTGGCAGAGCGGCCCA +GGTTTCAATGATGGCGCGCGCCACACCGTACTGTTCGATCAGATTTGGAATGTTGATGATGTTTTTATCT +ATCAACAGCAGAGTGTTACTACCGAGTACAGTCCACAGGATCCAGGTTGACGCTGTCAGCCCCAGCACCA +TGCCGAAGCACAGTTCACGCACAGTACGACCACGGGAGATGCGGGCGAGGAAGATACTCATCTGGATAGC +ATAAATCACCCACCATGCCCAGTAGAACACGGTCCAGCCCTGCGGGAAGCCGCCTTTAGCGATGGGATCG +GTATAGAACAACATGCGCGGCAGATACATCAGCAACATCCCCACCGAATCGGTGAAGTAGTTCATGATGA +AGCTGGCACCGCTGACAATGAACACCCAACCCAGCATCAGGAAGCTCAGGTAACTACGCACGTCACTGGC +GATACGTACCCCTTTTTGCAGACCGCAAGCGACGCAAATGGCGTTGAGGATAATCCAGCAGGTAATGATG +ATAGCGTCCAGTTGCAGGGTATGCGGAATGCCAAACAACCATTGCATACACTCGGTCACCAGCGGCGTGG +CAAGGCCCAGACTGGTACCCATCGCGAAGATCAAGGCGACGAGATAGAAGTTGTCGACGATAGTGCCGAA +CAACCCTTTGGCGTGTTTTTCACCTACCAGCGGCACCAGTGTCGAGCTGGGGCGAATCACTTCCATTTTG +CGGACAAAGAAGAAGTAAGCGAAGGCGACTGAAAGGAAGCTGTAAGTGGCCCACGGCAGAGGTCCCCAGT +GGAACAAGCTGTAAGCCAGCCCCAACTCTTTCGCCCCTGTCGAGTTCGGTTCTAAGCCAAACGGCGGGGT +GGAGATGTAGTAGTAGATCTCAATCGATCCCCAGAACAGTACGGCAGCAGACGTACAGGAGGCGAACATC +ATAAAGATCCAACTGGCGGTGCTAAATTCTGGCGGTTCGTTACCTAAACGCTTTTTGGCATACGGGCCAA +ACACCAGCCAGAACCAACCGAAAAGCATCACCACCATATACCATTCAAATGCCCATCCCCATACATTGGT +GACGTAACTGAATACAGCATTAATAACGACATTCGCTGCATCCAGATCTCTGACTGTAAGCCAACAAAGT +ATGCCGACGATTATTAACGGCGGAAAGAAAACCTTCGGTTCTATTCCCGTTTTTCTCTTTTCATTCTTCA +TGAGTTAATTCCACTGTGAAAACGAATATTTATTTTGCGTTCCCGTTTGTTTTATTTTTGTTAACATTTA +ATATAATTATTATTAACCTCGTGGACGCGTTAATGGCTAACTCATAATGGGTATTCAATAAGCTGTATTC +TGTGATTGGTATCACATTTTTGTTTCGGGTGAATAGAGGGCGTTTTTTCGTTAATTTTGATTAATAATCA +GTTTGTTATGCTCTGTTGTGAGTAAAAAATAACATCTGACTTTCAATATTGGTGATCCATAAAACAATAT +TGAAAATTTCTTTTTGCTACGCCGTGTTTTCAATATTGGTGAGGAACTTAACAATATTGAAAGTTGGATT +TATCTGCGTGTGACATTTTCAATATTGGTGATTAAAGTTTTATTTCAAAATTAAAGGGCGTGATATCTGT +AATTAACACCACCGATATGAACGACGTTTCCTTCATGATTTCTGGAGATGCAATGAAGATTATTACTTGC +TATAAGTGCGTGCCTGATGAACAGGATATTGCGGTCAATAATGCTGATGGTTCATTAGACTTCAGCAAAG +CCGATGCCAAAATAAGCCAATACGATCTCAACGCTATTGAAGCGGCTTGCCAGCTAAAGCAACAGGCAGC +AGAGGCGCAGGTGACAGCCTTAAGTGTGGGCGGTAAAGCCCTGACCAACGCCAAAGGGCGTAAAGATGTG +CTATCGCGCGGCCCGGATGAACTGATTGTGGTGATTGATGACCAGTTCGAGCAGGCACTGCCGCAACAAA +CGGCGAGCGCACTGGCTGCAGCCGCCCAGAAAGCAGGCTTTGATCTGATCCTCTGTGGCGATGGTTCTTC +CGACCTTTATGCCCAGCAGGTTGGTCTGCTGGTGGGCGAAATCCTCAATATTCCGGCAGTTAACGGCGTC +AGCAAAATTATCTCCCTGACGGCAGATACCCTCACCGTTGAGCGCGAACTGGAAGATGAAACCGAAACCT +TAAGCATTCCGCTGCCTGCGGTTGTTGCTGTTTCCACTGATATCAACTCCCCACAAATTCCTTCGATGAA +AGCCATTCTCGGCGCGGCGAAAAAGCCCGTCCAGGTATGGTCGGCGGCGGATATTGGTTTTAACGCAGAG +GCAGCCTGGTCAGAACAACAGGTTGCCGCGCCGAAACAGCGCGAACGTCAGCGCATCGTGATTGAAGGCG +ACGGCGAAGAACAGATCGCCGCATTTGCTGAAAATCTTCGCAAAGTCATTTAATTACAGGGGATGCTATG +AACACGTTTTCTCAAGTCTGGGTATTCAGCGATACCCCTTCTCGTCTGCCGGAACTGATGAACGGTGCGC +AGGCTTTAGCTAATCAAATCAACACCTTTGTCCTCAATGATGCCGACGGCGCACAGGCAATCCAGCTCGG +CGCTAATCATGTCTGGAAATTAAACGGCAAACCGGACGATCGGATGATCGAAGATTACGCCGGTGTCATG +GCTGACACTATTCGCCAGCACGGCGCAGACGGCCTGGTGCTGCTGCCAAACACCCGTCGCGGCAAATTAC +TGGCGGCAAAACTGGGTTATCGCCTTAAAGCGGCGGTGTCTAACGATGCCAGCACCGTCAGCGTACAGGA +CGGTAAAGCGACAGTGAAACACATGGTTTACGGTGGTCTGGCGATTGGCGAAGAACGCATTGCCACGCCG +TATGCGGTACTGACCATCAGCAGCGGCACGTTCGATGCGGCTCAGCCAGACGCGTCACGCACTGGCGAAA +CGCACACCGTGGAGTGGCAGGCTCCGGCTGTGGCGATTACCCGCACGGCAACCCAGGCGCGCCAGAGCAA +CAGCGTCGATCTCGACAAAGCCCGTCTGGTGGTCAGCGTCGGTCGCGGTATTGGCAGCAAAGAGAACATT +GCGCTGGCAGAACAGCTTTGCAAGGCGATAGGTGCGGAGTTGGCCTGTTCTCGTCCGGTGGCGGAAAACG +AAAAATGGATGGAGCACGAACGCTATGTCGGTATCTCCAACCTGATGCTGAAACCTGAACTGTACCTGGC +GGTGGGGATCTCCGGGCAGATCCAGCACATGGTTGGCGCTAACGCGTCGCAAACCATTTTCGCCATCAAT +AAAGATAAAAATGCGCCGATCTTCCAGTACGCGGATTACGGCATTGTTGGCGACGCCGTGAAGATCCTTC +CGGCGCTGACCGCAGCTTTAGCGCGTTGATCCACTCTGGCAGGGCTGCATTTTGGCCCTGCCGCTGACAG +GGAGCTCTTATGTCCGAAGATATCTTTGACGCCATCATCGTCGGTGCAGGGCTTGCCGGTTCGGTTGCCG +CACTGGTGCTCGCCCGCGAAGGTGCGCAAGTGTTAGTTATCGAGCGTGGCAATTCCGCAGGTGCCAAGAA +CGTCACCGGCGGGCGTCTCTATGCCCACAGTCTGGAACACATTATTCCTGGTTTCGCCGACTCCGCCCCC +GTAGAACGCCTGATCACCCATGAAAAACTCGCGTTTATGACGGAAAAGTCAGCGATGACTATGGACTACT +GCAATGGTGACGAAACCTCGCCATCCCAGCGTTCTTACTCCGTTTTGCGCAGTAAATTTGATGCCTGGCT +GATGGAGCAGGCCGAAGAAGCGGGCGCGCAGTTAATTACCGGGATCCGCGTCGATAACCTCGTACAGCGC +GATGGCAAAGTCGTCGGTGTAGAAGCCGATGGCGATGTGATTGAAGCGAAAACGGTGATCCTTGCTGATG +GGGTGAACTCCATCCTTGCCGAAAAATTGGGGATGGCAAAACGCGTCAAACCGACGGATGTGGCGGTTGG +CGTGAAGGAACTGATCGAGTTACCGAAGTCGGTTATTGAAGACCGTTTTCAGTTGCAGGGTAATCAGGGG +GCGGCTTGCCTGTTTGCGGGATCACCCACCGATGGCCTGATGGGCGGCGGCTTCCTTTATACCAATGAAA +ACACCCTGTCGCTGGGGCTGGTTTGTGGTTTGCATCATCTGCATGACGCGAAAAAATCGGTGCCGCAAAT +GCTGGAAGATTTCAAACAGCATCCGGCCGTTGCACCGCTGATCGCGGGCGGCAAGCTGGTGGAATATTCC +GCTCACGTAGTGCCGGAAGCAGGCATCAACATGCTGCCGGAGTTGGTTGGTGACGGCGTATTGATTGCCG +GTGATGCCGCCGGAATGTGTATGAACCTCGGTTTTACCATTCGCGGTATGGATCTGGCGATTGCCGCCGG +GGAAGCCGCAGCAAAAACCGTGCTTTCAGCGATGAAAAGCGACGATTTCAGTAAGCAAAAACTGGCGGAA +TATCGTCAGCATCTTGAGAGTGGTCCGCTGCGCGATATGCGTATGTACCAGAAACTACCGGCGTTCCTTG +ATAACCCACGCATGTTTAGCGGCTACCCGGAGCTGGCGGTGGGTGTGGCGCGTGACCTGTTCACCATTGA +TGGCAGCGCGCCGGAACTGATGCGCAAGAAAATCCTCCGCCACGGCAAGAAAGTGGGCTTCATCAATCTA +ATCAAGGATGGCATGAAAGGAGTGACCGTTTTATGACTTCTCCCGTCAATGTGGACGTCAAACTGGGCGT +CAATAAATTCAATGTCGATGAAGAGCATCCGCACATTGTTGTGAAGGCCGATGCTGATAAACAGGCGCTG +GAGCTGCTGGTGAAAGCGTGCCCCGCAGGTCTGTACAAGAAGCAGGATGACGGCAGTGTGCGCTTCGATT +ACGCCGGATGTCTGGAGTGCGGCACCTGTCGCATTCTGGGGCTGGGGTCGGCGCTGGAACAGTGGGAATA +CCCGCGCGGCACCTTTGGTGTGGAGTTCCGTTACGGCTGATGTTGGTTTGATACGTAACGCCGCACTGAC +TCTCATTGCAAAAAACAGGAATAACCATGCAACCGTCCAGAAACTTTGACGATCTCAAATTCTCCTCTAT +TCACCGCCGCATTTTGCTGTGGGGAAGCGGTGGTCCGTTTCTGGATGGTTATGTACTGGTAATGATTGGC +GTGGCGCTGGAGCAACTGACGCCGGCGCTGAAACTGGACGCTGACTGGATTGGCTTGCTGGGCGCGGGAA +CGCTCGCCGGGCTGTTCGTTGGCACATCGCTGTTTGGTTATATTTCCGATAAAGTCGGACGGCGCAAAAT +GTTCCTCATTGATATCATCGCCATCGGCGTGATATCGGTGGCGACGATGTTTGTTTCATCCCCCGTCGAA +CTGTTGGTGATGCGGGTACTTATCGGCATTGTCATCGGTGCAGATTATCCCATCGCCACCTCAATGATCA +CCGAGTTCTCCAGTACCCGTCAGCGGGCGTTTTCCATCAGCTTTATTGCCGCGATGTGGTATGTCGGCGC +GACCTGTGCCGATCTGGTCGGCTACTGGCTTTATGATGTGGAAGGCGGCTGGCGCTGGATGCTGGGTAGC +GCGGCGATCCCCTGTTTGTTGATTTTGATTGGTCGATTCGAACTGCCTGAATCTCCCCGCTGGTTATTAC +GCAAAGGGCGAGTAAAAGAGTGCGAAGAGATGATGATCAAACTGTTTGGCGAACCGGTGGCTTTCGATGA +AGAGCAGCCGCAGCAAACCCGTTTTCGCGATCTGTTTAATCGCCGCCATTTTCCTTTTGTTCTGTTTGTT +GCCGCCATCTGGACCTGCCAGGTGATCCCAATGTTCGCCATTTACACCTTTGGCCCGCAAATCGTTGGTT +TGTTGGGATTGGGGGTTGGCAAAAACGCGGCACTAGGGAATGTGGTGATTAGCCTGTTCTTTATGCTCGG +CTGTATTCCGCCGATGCTGTGGTTAAACACTGCCGGACGGCGTCCATTGTTGATTGGCAGCTTTGCCATG +ATGACGCTGGCGCTGGCGGTTTTGGGGCTAATCCCGGATATGGGGATCTGGCTGGTAGTGATGGCCTTTG +CGGTGTATGCCTTTTTCTCTGGCGGGCCGGGTAATTTGCAGTGGCTCTATCCTAATGAACTCTTCCCGAC +AGATATCCGCGCCTCTGCCGTGGGCGTGATTATGTCCTTAAGTCGTATTGGCACCATTGTTTCGACCTGG +GCACTACCGATCTTTATCAATAATTACGGTATCAGTAACACGATGCTAATGGGGGCGGGTATCTCGCTGT +TTGGCTTGTTGATTTCCGTAGCGTTTGCCCCGGAGACTCGAGGGATGTCACTGGCGCAGACCAGCAATAT +GACGATCCGCGGGCAGAGAATGGGGTAAATTGTTCAGATTTCTCTCTTTTCTGAATCAATATTATTGACT +ATAAGCCGCGTGAATATATGACTACACTTTGTGGGAAAACAAAGGCGTAATCACGCGGGCTACCTATGAT +TCTTATAATTTATGCGCATCCGTATCCGCATCATTCCCATGCGAATAAACGGATGCTTGAACAGGCAAGG +ACGCTGGAAGGCGTCGAAATTCGCTCTCTTTATCAACTCTATCCTGACTTCAATATCGATATTGCCGCCG +AGCAGGAGGCGCTGTCTCGCGCCGATCTGATCGTCTGGCAGCATCCGATGCAGTGGTACAGCATTCCTCC +GCTCCTCAAACTTTGGATCGATAAAGTTTTCTCCCACGGCTGGGCTTACGGTCATGGCGGCACGGCGCTG +CATGGCAAACATTTGCTGTGGGCGGTGACGACCGGCGGCGGGGAAAGCCATTTTGAAATTGGTGCGCATC +CGGGCTTTGATGTGCTGTCGCAGCCGCTACAGGCGACGGCAATCTACTGCGGGCTGAACTGGCTGCCACC +GTTTGCCATGCACTGCACCTTTATTTGTGACGACGAAACCCTCGAAGGGCAGGCGCGTCACTATAAGCAA +CGTCTGCTGGAATGGCAGGAGGCCCATCATGGATAGCCATACGCTGATTCAGGCGCTGATTTATCTCGGT +TCGGCAGCGCTGATTGTACCCATTGCGGTACGTCTTGGTCTGGGATCGGTACTTGGCTACCTGATCGCCG +GCTGCATTATTGGCCCGTGGGGGCTGCGACTGGTGACCGATGCCGAATCTATTCTGCACTTTGCCGAGAT +TGGGGTGGTGCTGATGCTGTTTATTATCGGCCTCGAACTCGATCCACAAAGGCTGTGGAAGCTGCGTGCG +GCAGTGTTCGGCTGTGGCGCATTGCAGATGGTGATTTGCGGCGGCCTGCTGGGGCTGTTCTGCATGTTAC +TTGGGCTGCGCTGGCAGGTCGCGGAATTGATCGGCATGACGCTGGCGCTCTCCTCTACGGCGATTGCCAT +GCAGGCGATGAATGAACGCAATCTGATGGTGACGCAAATGGGTCGCAGTGCCTTTGCGGTGCTGCTGTTC +CAGGATATCGCGGCGATCCCGCTGGTGGCGATGATTCCGCTACTGGCAACGAGCAGTGCCTCGACGACGA +TGGGCGCATTTGCTCTCTCGGCGTTAAAAGTGGCGGGTGCGCTGGTGCTGGTGGTATTGCTGGGGCGCTA +TGTCACGCGTCCGGCGCTGCGTTTTGTAGCCCGCTCTGGCTTGCGGGAAGTGTTTAGTGCCGTGGCGTTA +TTCCTCGTGTTTGGCTTTGGTTTGCTGCTGGAAGAGGTCGGCTTGTCGATGGCGATGGGCGCGTTTCTGG +CGGGCGTACTGCTGGCAAGCTCGGAATACCGTCATGCGCTGGAGAGCGATATCGAACCATTTAAAGGTTT +GCTGTTGGGGCTGTTTTTCATCGGTGTTGGCATGTCGATAGACTTTGGCACGCTGCTTGAAAACCCATTG +CGCATTGTCATTTTGCTGCTCGGTTTCCTCATCATCAAAATCGCCATGCTGTGGCTGATTGCCCGACCGT +TGCAAGTGCCAAATAAACAGCGTCGTTGGTTTGCGGTGTTGTTAGGGCAGGGCAGTGAGTTTGCCTTTGT +GGTATTTGGCGCGGCGCAGATGGCGAATGTGCTGGAGCCGGAGTGGGCGAAATCGCTGACCCTGGCGGTG +GCGCTGTCGATGGCAGCAACGCCGATTCTGCTGGTGATCCTCAATCGCCTTGAGCAATCTTCTACTGAGG +AAGCGCGTGAAGCCGATGAGATCGACGAAGAACAGCCGCGCGTGATTATCGCCGGATTCGGTCGTTTTGG +GCAGATTACCGGACGTTTACTGCTCTCCAGCGGGGTGAAAATGGTGGTACTCGATCACGATCCGGACCAT +ATCGAAACCTTGCGTAAATTTGGTATGAAAGTGTTTTATGGCGATGCCACGCGGATGGATTTACTGGAAT +CTGCCGGAGCGGCGAAAGCGGAAGTGCTGATTAACGCCATCGACGATCCGCAAACCAACCTGCAACTGAC +AGAGATGGTGAAAGAACATTTCCCGCATTTGCAGATTATTGCCCGCGCCCGCGATGTCGACCACTACATT +CGTTTGCGTCAGGCAGGCGTTGAAAAGCCGGAGCGTGAAACCTTCGAAGGTGCGCTGAAAACCGGGCGTC +TGGCACTGGAAAGTTTAGGTCTGGGGCCGTATGAAGCGCGAGAACGTGCCGATGTGTTCCGCCGCTTTAA +TATTCAGATGGTGGAAGAGATGGCAATGGTTGAGAACGACACCAAAGCCCGCGCGGCGGTCTATAAACGC +ACCAGCGCGATGTTAAGTGAGATCATTACCGAGGACCGCGAACATCTGTCATTAATTCAACGACATGGCT +GGCAGGGAACCGAAGAAGGTAAACATACCGGCAACATGGCGGATGAACCGGAAACGAAACCCTCATCCTA +ATAAAGAGTGACGTAAATCACACTTTACAGCTAACTGTTTGTTTTTGTTTCATTGTAATGCGGCGAGTCC +AGGGAGAGAGCGTGGACTCGCCAGCAGAATATAAAATTTTCCTCAACATCATCCTCGCACCAGTCGACGA +CGGTTTACGCTTTACGTATAGTGGCGACAATTTTTTTTATCGGGAAATCTCAATGATCAGTCTGATTGCG +GCGTTAGCGGTAGATCGCGTTATCGGCATGGAAAACGCCATGCCGTGGAACCTGCCTGCCGATCTCGCCT +GGTTTAAACGCAACACCTTAAATAAACCCGTGATTATGGGCCGCCATACCTGGGAATCAATCGGTCGTCC +GTTGCCAGGACGCAAAAATATTATCCTCAGCAGTCAACCGGGTACGGACGATCGCGTAACGTGGGTGAAG +TCGGTGGATGAAGCCATCGCGGCGTGTGGTGACGTACCAGAAATCATGGTGATTGGCGGCGGTCGCGTTT +ATGAACAGTTCTTGCCAAAAGCGCAAAAACTGTATCTGACGCATATCGACGCAGAAGTGGAAGGCGACAC +CCATTTCCCGGATTACGAGCCGGATGACTGGGAATCGGTATTCAGCGAATTCCACGATGCTGATGCGCAG +AACTCTCACAGCTATTGCTTTGAGATTCTGGAGCGGCGGTAATTTTGTATAGAATTTACGGCTAGCGCCG +GATGCGACGCCGGTCGCGTCTTATCCGGCCTTCCTATATCAGGCTGTGTTTAAGACGCCGCCGCTTCGCC +CAAATCCTTATGCCGGTTCGACGGCTGGACAAAATACTGTTTATCTTCCCAGCGCAGGCAGGTTAATGTA +CCACCCCAGCAGCAGCCGGTATCCAGCGCGTATATACCTTCCGGCGTACCTTTGCCCTCCAGCGATGCCC +AGTGACCAAAGGCGATGCTGTATTCTTCAGCGACAGGGCCAGGAATCGCAAACCACGGTTTCAGTGGGGC +AGGGGCCTCTTCCGGCGATTCTTTGCTGTACATATCCAGTTGACCGTTCGGGAAGCAAAAACGCATACGG +GTAAAAGCGTTGGTGATAAAACGCAGTCTTCCCAGCCCCCGCAATTCCGGTGACCAGTTATTTGGCATAT +CGCCGTACATGGCATCAAGAAAGAAGGGATAGGAGTCACTCGATAGCACCGCTTCTACATCGCGTGCGCA +CTCTTTGGCGGTCTGCAGATCCCACTGCGGCGTGATCCCTGCGTGGGCCATCACCAGCTTTTTCTCTTCG +TCGATTTGCAGCAGAGGCTGGCGCCGCAGCCAGTTAAGCAGCTCGTCGGCATCCGGCGCTTCCAGCAGCG +GTGTCAGGCGATCTTTCGGTTTATTGCGGCTGATCCCGGCAAATACCGCCAGCAGATGCAGATCGTGATT +GCCCAGCACCAGACGTACGCTGTCGCCTAAGGATTTCACATAGCGCAGAACATCCAGCGAACCCGGCCCG +CGCGCGACCAGATCGCCCGTCAGCCAGAGGGTATCTTTCCCAGGGGTAAATTCTACTTTATGCAGCAATG +CGATCAGTTCATCGTAACAACCATGAACGTCGCCAATAAGGTATGTCGCCATATTCTTTTAATGAATGAG +TGTGGGAACGGCGAGTCGGAATACGGGAATGTCGATGCTGAAAGGGACGCCATTTTCATCGATCATTTCG +TAGTGACCCTGCATGGTGCCCAGCGGGGTTTCAATGATTGCACCGCTGGTGTACTGGTACTCTTCGCCAG +GCGCGATAAGTGGCTGGACGCCAACCACTCCTTCGCCCTGGACTTCGGTTTCACGGCCATTGCCATTGGT +GATCAGCCAGTAACGCCCCAACAACTGCACTGGCGCTCGCCCCAGATTGCGTATGGTTACGGTATAAGCA +AAAACGTAACGTTCATTATCAGGTGAAGATTGAGCCTCAATGTAGACGCTTTGAACCTGAATACACACTC +GGGGCGAATTGATCATCGTTAACTCTCCTGCAAAGGCGCGTTCTCCGCCAGATAGTTCGCCATCTGGCAA +TATTGCGCGACAGAGATATTTTCCGCTCGCATCGCCGGGTCGATCCCCATTCCCGTTAACACCTCGACGC +TAAACAGGTTGCCGAGGCTGTTACGAATGGTTTTACGACGCTGGTTAAAGGCTTCGGTGGTGATGCGGCT +CAACACACGAACATCTTTAACCGGGTGAGGCATCGTTGCATGAGGAACCAGGCGCACGACGGCGGAATCC +ACTTTGGGTGGTGGTGTAAAGGCTGACGGCGGTACTTCCAGTACCGGGATCACATTGCAATAGTATTGCG +CCATGACGCTTAATCGACCATACGCTTTGCTGTTCGGTCCTGCAACCAGACGATTCACCACCTCTTTTTG +CAACATAAAGTGCATGTCGGCAATGGCATCAGTATAGCTAAACAGATGGAACATCAACGGCGTGGAGATG +TTATAAGGCAGGTTGCCGAAAACACGCAGCGGCTGACCCATTTTCTCGGCCAGTTCACCAAAGTTAAAGG +TCATCGCATCCTGCTGATAAATCGTCAGTTTCGGGCCTAAGAATGGATGCGTTTGCAGACGTGCCGCCAG +ATCGCGGTCAAGTTCGATGACCGTCAGCTGGTCCAGACGTTCGCCGACCGGTTCGGTCAATGCCGCCAGA +CCGGGGCCGATTTCGACCATCGCCTGGCCCTTTTGCGGGTTAATGGCAGACACAATACTGTCGATCACGA +ACTGATCGTTGAGAAAGTTTTGCCCGAAGCGTTTACGGGCTAAGTGGCCCTGGTGGACTCGATTATTCAT +TGGGTGTTAACAATCATTTTGATGGCGAGATTAAGCGCCGTAATAAAACTGCCGACATCGGCTTTGCCAC +GTCCCGCCAGTTCAAGCGCGGTGCCGTGGTCCACTGATGTGCGAATAAAGGGCAGGCCCAGCGTAATGTT +CACACCGCGCCCGAAGCCCTGGTATTTTAGCACGGGAAGACCCTGATCGTGGTACATCGCCAGCACGGCG +TCGGCGTTATCAAGATATTTCGGCTGAAACAGGGTATCGGCAGGCAGCGGCCCGTTGAGTTTCATCCCCT +GCGCCCGCAGCTCATTGAGCACCGGAATAATGGTGTCTATCTCTTCCGTACCCATATGACCGCCTTCGCC +CGCGTGCGGATTCAGCCCGCAGACCAGAATGCGCGGTTCGGCAATACCAAATTTGGTCCGCAAATCGTGA +TGCAAAATAGCAATCACTTCGTGCAAAAGTGCAGGGGTGATAGCGTCTGCGATATCGCGCAGCGGTAAAT +GCGTCGTTGCCAGCGCCACGCGAAGTTCTTCGGTCGCCAGCATCATCACCACCTTTTTCGCCTGCGAACG +CTCTTCGAAAAACTCGGTATGACCGGTAAAAGGAATGCCAGCGTCGTTAATAACGCCTTTATGCACCGGA +CCTGTGATCAGCGCGGCAAATTCGCCGTTCAGACAACCATCGCACGCTCGCGCCAGCGTTTCCACCACAT +AATGCCCATTTTCAACCGCTAACTGCCCCGCAGTGACAGGTGCACGTAGCGCGACAGGAAGTAGCGTTAA +TGTGCCCGCAGTTTGCGGTTGTGCAGGGGAGTTGGGGGAATAAGGGCGGAGGGTGAGCGGCAAACCGAGC +ATCGCTGCCCGGTTGGTAAGGAGAGTGGCATCGGCACAAACAACCAGTTCGACCGGCCACTCACGCTGTG +CAAGCTGGACAACTAAGTCCGGGCCAATCCCGGCGGGCTCGCCGGGAGTGATCACAACACGTTGGGTTTT +AACCATTAGTTGCTCAGGATTTTAACGTAGGCGCTGGCACGTTGTTCCTGCATCCAGCTTGCTGCTTCTT +CCGAGAACTTACGGTTCATCAGCATGCGGTATGCACGATCTTTCTGCGCAGCGTCGGTTTTATCGACATT +ACGGGTATCCAGCAGTTCGATTAAATGCCAGCCGAATGAAGAGTGAACCGGTGCACTCATTTGACCTTTG +TTCAGGCGAGTCAGGGCGTCACGGAAGGCCGGATCGAAAATATCTGGTGTAGCCCAGCCGAGATCGCCGC +CCTGGTTAGCAGAGCCTGGATCCTGAGAGAACTCTTTCGCTGCGGCAGCAAAAGTCGTTTTACCACTCTT +GATATCAGCAGCAATCTGTTCCAGTTTCACACGGGCCTGTTCGTCAGTCATGATCGGCGACGGTTTCAGC +AGAATATGGCGAGCATGAACTTCGGTCACCGAGATATTTTTGCTTTCGCCGCGCAGGTCGTTAACTTTCA +GAATATGGAAGCCAACGCCGGAACGAATCGGGCCAACAATGTCGCCTTTCTTCGCGGTGCTTAATGCCTG +GGCGAAGATCCCGGGCAACTCCTGAATACGGCCCCAGCCCATCTGGCCGCCGTTCAGCGCCTGCTGGTCG +GCAGAATGAGCAATCGCCAGCTTACCGAAATCAGCGCCGTTACGCGCCTGATCGACAATGGCGCGCGCCT +GGCTTTCCGCTTCGTTCACCTGATCAGAGGTCGGGTTTTCCGGCAGCGGGATCAGGATGTGGCTCAGGTT +CAGCTCAGTGCTGGCGTCGTTTTGGTTACCCACCTGCTGCGCCAGGGATTCGACTTCCTGCGGCAGGATG +GTGATGCGACGACGCACCTCGTTGTTACGCACTTCAGAGATAATCATCTCTTTGCGGATCTGGTTACGAT +AGGTGTTGTAGTTCAGTCCATCGTAAGCCAGACGGCTGCGCATCTGATCCAGCGTCATGTTGTTCTGTTT +CGCGATGTTAGCAATCGCCTGATCCAGCTGCTCATCGGAGATTTTCACTCCCATTTTCTGCCCCATCTGC +AGGATGATTTGATCCATGATCAAACGTTCCATGATTTGGTGGCGCAGCGTCGCGTCATCAGGAAGTTGCT +GCCTTGCCTGAGCAGCGTTCAGTTTTACCGACTGCATTAATCCATCAACGTCGCTTTCCAGCACGACGCC +GTTATTGACGACGGCTGCGACTTTATCGACTACCTGGGGGGCAGCGAAACTGGTATTCGCGATCATGGCG +ATACCGAGAAGCAGCGTTTTCCAGTTCTTCATACTTTTTCCATTTCAATTAACCGCACTGCGGATTACGT +GGTAAATCAACAAATCACAAAGTGTTTTGATACGGCAGAATGTTCGAACGCAGCATCTCTTGCGTACCCA +GACCGTAGTTGGAGCTCAGGCCGCGAAGTTCGATGTTAAAGCCGATTGCGTTGTCATATACCGCATGTTG +TTTATCGTTATCCCAACCGTTCAGCTTCCGCTCGTAACCGACGCGAATTGCATAGCAGCAGGAGCTGTAT +TGCACACCTAACATAGAGTCGGCTTGCTTGTTAGCATTGGTGTCGTAGTAGTAGGCCCCAACAATGGACC +AACGATCGGCAATTGGCCAGCTGGCGACAGCACCTACCTGCGAAATACCATTCTTATATTGCTCAGCAGT +GGAATAGTACTTAGGCAGCGTAGCCTGAATATATTCCGGGCTGGCGTAACGGTAATTCAGCTGTACCAGA +CGGTCTTCATCCCGACGGTATTCAATGCTGGAGTTACTGGTCGCTACGTTATCCAGACGTGTATCGTACT +GAATCCCGCCACGCAATCCCCAACGCTCGGAGATACGCCAGTAAGTATCGCCTGCCCACACCAGTGAACC +CGTTTTGTCGTCATTCTCCCATGTTATGTTGTCATCGCCAGTGCGAGACTCCGTGAAATAGTAGATTTGA +CCAACGGAAATATTAAAACGTTCAACGGCAGCATCATCATATATGCGAGATGTGACACCGGTCGTCACCT +GGTTAGCGGAGGCAATACGGTCAAGACCGCCGTAAGTCCGGTCCCGGAACAGGCCAGAGTAGTCAGATTG +CAGCAGAGACGAGTCGTAGTTATAGATGTCGCTCTGATCGCGATACGGCACGTACAAATACTGCGCGCGC +GGTTCCAGCGTTTGGGTATAACCCGGAGCCAGCATTTCCATATCGCGTTCAAAGACCATTTTGCCGTCAA +CTTTGAATTGCGGCATTACGCGGTTAACGGATTCGTCCAGCTTGGTCGTGTTTCTGGAGTTATACCAGTC +AAGATTGGTTTGCTGATAATGGGTTGCCAGCAACTTCGCTTCGGTATTGATGCTGCCCCAGTTATTAGAG +AGCGGCAAATTGATGGTCGGTTCCAGGTGAACACGGGTTGCTTCAGGCATGTCGTCTCTGGTGTTAACAA +AGTGCACTGCCTGGCCGTAAATACGCGTATCAAACGGACCAACATCATTCTGGTAGTAATTAACGTCTAA +CTGCGGCTCTGCCGAGTAGCTACTGGTGTTCTGTTCGCTGAAAACCTGGAACTGCTTGGTTGAAACGGTG +GCATTGAAGTTTTGCACCGCATAGCCAACGCTGAATTTTTGCGTTGCGTAGCCGTCAGTACTGGAACCGT +ACTTGTTATCGAAATCATTGAAGTAGCTAGGATCGCTGACCTTGGTGTAGTCGACGTTGAAACGCCACAC +CTGATCCATGACCCCGGAGTGGTTCCAGTAGAATAACCAACGACGTGAACTGTCATCGTTCGGGTGTTCA +TCTTCATAGACTTTATCTGAAGGCAGATAGTCCAGTTCCATCAAGCCAGCGCCCGCCTGGGAGAGGTAGC +GGAATTCGTTCTCCCACATGATGTTGCCACGACGATGCATATAATGCGGCGTGATGGTGGCATCCATATT +TGGCGCGATGTTCCAGTAATATGGCAGGTAGAACTCAAAGTAGTTGGTGGTGGTGTACTTGGCGTTCGGG +ATCAAGAAACCAGAGCGACGTTTGTCACCCACCGGCAACTGCAAATAGGGGCTATAAAAGATCGGTACCG +GACCCACCTTAAAGCGGGCGTTCCAGATCTCCGCAACTTGTTCTTCGCGGTCATGAATAATTTCGCTACC +TACCACGCTCCAGGTGTCAGAACCCGGCAGACAGGAGGTAAAGCTACCGTTATCCAGAATGGTATAGCGG +TTTTCGCCACGTTGTTTCATCAGGTCCGCTTTACCGCGACCCTGGCGACCCACCATCTGGTAATCACCTT +CCCAGACGTTGGTATCTTTGGTGTTCAGATTCGCCCAGCCTTTCGGCCCTTTGAGGATCACCTGGTTATC +GTCGTAATGGACATTACCGAGCGCATCAACGGTACGTACCGGCTCCGGTTGTCCTGGTGCCTCTTTTTGA +TGGAGCTGCACTTCGTCGGCCTGCAGACGGCTGTTACCCTGCATGATATCCACGCTGCCAGTAAACACGG +CGTCATCCGGGTAGTCCCCTTTCGCGTGGTCAGCATTGATAGTCACGGGTAAGTCATTGGTATCGCCCTG +TACCAGAGGACGGTCATAGCTTGGCACGCCCAACATGCACTGTGAGGCGAGGTCGGCTGCCAGTCCCTGT +TGACTATAAAGGGCGGTGGCAATCATGGTGGCCAGGAGAGTGGGGATACGTTTTTTCATACGTTGATTTT +ATTGTTCCATCATCGGTAACGTTGCGCGTGACAAACGGTCAGAGACTAACGTACTCGTCATCTCTACGCT +AGTGTTAATCCTGTCCGAATAGCGTCAGTGGTGTTAGGCACGGCATTGAATGACAGGTATGATAATGCAA +ATTATAGGCGATGTCCCACAATTGACCGCAGCCGGAAAACGGTAAAAGCACCTTTATATTGTGGGAGATA +GCCCTGATATCCGTGTGTCGATTTGGGGAATATATGCAGTATTGGGGAAAAATCATTGGCGTGGCCGTGG +CCTTACTGATGGGCGGCGGCTTTTGGGGCGTAGTGTTAGGCCTGTTAATTGGCCATATGTTTGATAAAGC +CCGTAGCCGTAAAATGGCGTGGTTCGCCAACCAGCGTGAGCGTCAGGCGCTGTTTTTTGCCACCACTTTT +GAAGTGATGGGGCATTTAACCAAATCCAAAGGTCGCGTCACGGAGGCTGATATTCATATCGCCAGCCAGT +TGATGGACCGAATGAATCTTCATGGCGCTTCCCGTACTGCGGCGCAAAATGCGTTCCGGGTGGGAAAATC +AGACAATTACCCGCTGCGCGAAAAGATGCGCCAGTTTCGCAGTGTCTGCTTTGGTCGTTTTGACTTAATT +CGTATGTTTCTGGAGATCCAGATTCAGGCGGCGTTTGCTGATGGTTCACTGCACCCGAATGAACGGGCGG +TGCTGTATGTCATTGCAGAAGAATTAGGGATCTCCCGCGCTCAGTTTGACCAGTTTTTGCGCATGATGCA +GGGCGGTGCACAGTTTGGCGGCGGTTATCAGCAGCAAACTGGCGGTGGTAACTGGCAGCAAGCGCAGCGT +GGCCCAACGCTGGAAGATGCCTGTAATGTGCTGGGCGTGAAGCCGACGGATGATGCGACCACCATCAAAC +GTGCCTACCGTAAGCTGATGAGTGAACACCATCCCGATAAGCTGGTGGCGAAAGGTTTGCCGCCTGAGAT +GATGGAGATGGCGAAGCAGAAAGCGCAGGAAATTCAGCAGGCATATGAGCTGATAAAGCAGCAGAAAGGG +TTTAAATGACCCTGTAAATGATGCTGAGTAACTGCCCACGATTAAAGGTGGCCGCCCTGGCGGTCACTTC +TTTGAGAAAAGGCGTTTACTCAGAATGGTGGACAGGCTCAATGCACGGTTTACGGGAGGGGTTCTGTAGG +TTTTATCGCGTTGACCCTGCTTAAGGTTGAGAGCTTTACGACGAGCGGAATTATATTTTTACGTCTTAAA +AATAAAAAACACATACCTGAATGAGCGATTTTTGAAAGTATATTTATTCAGAACGCGCATCATGAGTTTT +TAACTCAATGCGAGGCTATTACCATGAAAGTATCAGTTCCAGGCATGCCGGTTACACTTTTAAATATGAG +CAAGAACGATATTTATAAGATGGTGAGCGGGGACAAGATGGACGTGAAGATGAATATCTTTCAACGCTTG +TGGGAGACGTTACGCCATCTGTTCTGGTCAGATAAACAGACTGAGGCTTATAAACTTCTGTTCAATTTCG +TGAATAACCAGACTGGCAACATCAACGCCTCAGAATACTTTACTGGGGCTATCAACGAGAATGAGAGAGA +AAAGTTTATCAATAGCCTGGAATTATTCAATAAACTTAAAACATGCGCAAAAAATCCGGATGAGTTGGTC +GCAAAGGGCAATATGCGCTGGGTCGCCCAGACCTTCGGGGATATCGAGTTAAGTGTCACTTTTTTCATTG +AAAAGAATAAGATATGTACTCAGACGTTGCAGCTGCATAAGGGCCAAGGTAACTTGGGCGTTGATCTTAG +AAAGGCTTACCTTCCCGGCGTTGACATGAGGGATTGTTACCTTGGTAAAAAAACAATGAAAGGTAGCAAT +GATATCCTTTATGAGAGACCTGGGTGGAATGCTAACCTGGGCGTGCTACCCCGGACGGTGCTACCCCGGA +CGGTGCTAACCCGGACGGTGCTAACCTGGACGGTGCTACCGTGAACGGTGCTACCTCCTTATATGATGAG +GTAATTATTATTAATAAAATCCCCCCCAAAAAAATTGATACTAAAGGAGTTGCTACTGAAGAAGTTGCTA +CTAAAAAAGTACTGCTGAACAAATTACTGACAACGCAATTATTGAATGAGCCAGAATAAGCTAAGGTTGA +AGGGGCTGGAACGCCCCTTCAACCTTAGCAGTAGCGTGGGATGATTTCACAATTAGAAAGACCTGCATGA +TGAGCTAGAGAAGAGGCTAGTGACGCAAGGCGTCGTGCAGGACACGGATCACCGAGATGGGCATCGCCAA +CCAGACTGCTAATTAGCCCATGAATAACAATCAGAAAGGACCATAACAGACCCGTTAAAATGAAATATAA +GAGACGGTCAACGGGTGAAGAAAAAGTTCAAAAATTCGCTGTGGAGCAGGAAGGGAATTACCGAATGGAA +AGCGTAGCCACACGCAACAACTGAAAGCAGTTTGGCAGAAACAAAAAATCCCCGGACTCGGGGATTTATG +TACAAGAGGCAGCCCTTAGGATGAGGGTATAAACGTACAGGAAAGGTTAAAAATCCGCTGGCGCTTTAAA +CGTCATACTATTGCCATACGCCGGATGGGTAATCGTCAACATCTCTGCATGTAGCAACAAACGTGGTGCC +ATCGCTCTCGCTTCTGGTGATGCATAAAAACGATCGCCGAGAATCGGATGACCCAGCGCCAGCATATGCA +CACGCAATTGATGCGAACGCCCGGTAATCGGTTTTAACACCACTCTTGCCGTGTTATCCGCCGCATACTC +CACCACTTCATATTCCGTCTGCGCAGGTTTACCCGTTTCGTAACAGACTTTCTGTTTCGGGCGGTTTGGC +CAGTCGCAAATCAGCGGCAGATCCACCAGACCTTCTGCGGGGGATGGATGCCCCCAGACGCGGGCCACAT +ACTGCTTTTTCGGCTCGCGCTCGCGGAACTGGCGTTTTAACTCCCGCTCCGCGGCTTTGGTCAGCGCCAC +TACAATCACGCCGCTGGTAGCCATATCCAGACGATGCACCGATTCTGCCTGCGGATAATCACGCTGAATG +CGCGTCATCACGCTGTCTTTGTGCTCTTCCAGACGACCCGGCACTGACAACAAACCGCTCGGCTTGTTGA +CCACCATAATATGGTCATCCTGATACAGGATAACCAACCAGGGTTCCTGCGGTGGATTGTAGTTTTCCAT +CCCCATTTTCGGCTCCGTTACTGATGCGTTACAACGATCAAACGCAGGGCATCCAGACGCCAACCTGCCT +GATCCAGGCTTTCCATTACCTGCTGACGGTTGCTCTCAATGGCGGTCAGTTCGTCGTCACGAATGTTCGG +GTTCACTGCACGCAGAGCTTCCAGACGAGACAGCTCGGCAGACAGTTTTTCGTCGGCTTCGTTACGCGCT +GCATCAATCAATGCACGGGCAGATTTCTCGATCTGCGCTTCACCCAGTTGAAGGATAGCGTGAACATCCT +GCTGCACGGCGTTAACCAGTTTGCTGCCGGTGTGACGGTTAACCGCGTTAAGCTGGCGGTTAAAGGTTTC +AAACTCTACCTGCGCCGCCAGGTTGTTGCCGTTTTTATCCAGCAGCATACGTACCGGCGTCGGTGGCAGG +AAGCGGTTGAGCTGCAACTGCTTCGGAGCCTGGGCTTCAACCACATAAATCAGTTCCACCAACAGCGTAC +CTACCGGCAACGCTTTGTTTTTTAACAGTGAAATCGTGCTGCTACCGGTATCGCCAGAAAGGATCAGATC +CAGACCGTTGCGGATCAGCGGATGCTCCCAGGTAATAAACTGTGCATCTTCACGCGCCAGCGCCACTTCA +CGATCAAAGGTGATGGTGATGCCATCTTCCGACAGGCCAGGGAAGTCCGGCACCAGCATATGATCGGACG +GCGTCAGCACGATCATGTTGTCGCCGCGATCGTCCTGATTGATACCGATAATATCGAACAGGTTCATGGC +GAAGGCGATCAGGTTGGTATCGTCATCCTGCTCTTCAATGCTTTCTGCCAGTGCCTGGGCTTTTTCGCCA +CCGTTGGAGTGGATTTCCAGCAGGCGGTCACGACCCTGTTCCAGCTGTGCTTTCAGCGCTTCATGTTGCT +CGCGGCAGTTTTTGATCAGATCGTCAAAGCCTTCGGTTTGATCCGGTGAAGCCAGATAGTTAATCAGATC +GTTGTATACGCTATCGTAAATAGTGCGTCCGGTCGGGCAGGTGTGCTCAAATGCATCCAGACCTTCGTGA +TACCAGCGCACCAGCACCGACTGAGCGGTTTTCTCCAGATAAGGCACATGGATCTGAATATCGTGCGCCT +GGCCGATACGATCCAGACGACCAATACGCTGCTCCAGTAGATCCGGGTTGAATGGCAGGTCAAACATCAC +CATGTGGCTGGCGAACTGGAAGTTACGTCCTTCAGAACCGATTTCTGAGCACAGCAGTACCTGTGCGCCG +GTGTCTTCTTCGGCAAACCAGGCGGCAGCGCGGTCACGTTCGATAATCGACATACCTTCGTGGAACACCG +CAGCGCGAATACCTTCACGTTCGCGCAGTACCTGCTCCAGTTGCAGCGCAGTGGCAGCTTTGGCGCAGAT +CACCAGCACTTTCTGAGAGCGATGGCTGGTCAGGTAGCCCATCAGCCACTCAACGCGCGGATCGAAGTTC +CACCAGGTGGCGTTATCACCTTCAAATTCCTGATAAATACGCTCCGGGTAGAGCATATCGCGAGCACGAT +CTTCCGCACTTTTACGTGCGCCCATAATGCCGGAGACTTTAATAGCCGTCTGATACTGCGTCGGTAGCGG +CAGCTTAATGGTGTGCAGCTCGCGTTTCGGGAATCCTTTCACACCGTTACGCGTGTTACGGAACAGCACG +CGGCTGGTGCCGTGGCGATCCATCAGCATCGAAACCAGCTCCTGACGGGCGCTCTGGGCATCTTCGCTGT +CGCTGTTTGCTGCCTGCAACAGCGGCTCGATATCCTGCTCGCCGATCATCTCGCCGAGCATGTTCAGTTC +GTCATTGCTCAGTTTGTTACCTGCCAGCAGCATGGCAACGGCGTCCGCAACCGGACGATAATTTTTCTGC +TCTTCAACGAACTGCGCAAAATCGTGGAAACGGTTCGGGTCCAGCAGACGCAGACGGGCGAAGTGGCTTT +CCATCCCCAGCTGTTCCGGGGTCGCGGTCAGCAGCAGAACGCCCGGCACGTGCTCTGCCAGTTGTTCAAT +GGCCTGATATTCACGGCTTGGCGCATCTTCGCTCCACACCAGGTGATGCGCTTCATCGACCACCAGCAGG +TCCCATTCGGCTTCACAGAGATGTTCCAGGCGCTGTTTGCTACGACGGGCAAAATCCAGCGAGCAAATCA +CCAGCTGTTCGGTGTCAAACGGGTTGTAAGCATCGTGCTGAGCTTCGGCATAACGCTCATCATCAAATAG +CGCAAAGCGCAGGTTGAAACGGCGCAGCATTTCTACCAGCCACTGATGCTGTAAGGTTTCCGGGACGATA +ATTAGCACACGTTCAGCAGCGCCAGAGAGCAGTTGCTGATGCAGGATCATCCCGGCTTCAATGGTTTTCC +CTAAACCCACTTCGTCAGCCAGCAGGACGCGCGGCGCGTGGCGGCGACCAACATCATGAGCGATGTTGAG +CTGATGCGGGATCAGGCTGGTACGCTGACCGCGCAGGCCGCTGTACGGCATACGGAACTGTTCGCTGGAA +TATTTACGCGCGCGATAACGCAGCGCAAAGCGGTCCATACGGTCAATCTGCCCGGCAAACAGACGGTCCT +GCGGTTTGCTGAACACCAGTTTGCTATCAAGGAAAACTTCACGCAGGGCTACGCCGGACTCTTCAGTATC +CAGGCGAGTACCGATATAGGTCAGCAAGCCATTTTCTTCTTTTACTTCTTCGACTTGCATCTGCCAGCCG +TCATGGCTGGTAATGGTATCACCAGGGTTGAACATCACGCGGGTCACGGGGGAATCACTGCGTGCGTACA +GACGGTTTTCACCAGTAGATGGGAAAAGTAAAGTGACAGTTCGCGCATCCACCGCGACAACGGTTCCAAG +TCCCAATTCGCTTTCTGTATCGCTGATCCAGCGTTGACCAAGTGTAAAAGGCATATGTGTTCGGCTCTAT +ATCTTTAATTGCAGGCAATAACCACCCGCTACCGTGCTTATGAGGTAGTGGTGTTATTCAGGTCCAGGAA +TGGAAAGGGCGCTATGGTACTGGATGGCAAAGCATTCGTCACGCATCAAAATGGTATCTGGCGAACTCTT +TTTTTTGCTCAAAATAGCCCAAGTTGCCCGGTCATAAGTGTAGCAAAATTATCCTCAATAAAAGGGAGTA +TTCCCTCCGCCACGGGTTGTAGCTGGCGGGTCAGATAGTGTTCGTAATCCAGTGGTGAACGTTGGTAGTC +CAGCGGCTCCGGGCCGTTGGTGGTCCATACGTACTTAATGGTGCCGCGATTCTGATATTGCAAGGGGCGA +CCACGCTTTTGGTTTTCTTCATCGGCAAGGCGAGCGGCGCGTACATGAGGCGGCACATTACGCTGATACT +CGCTCAGCGGACGGCGAAGGCGTTTACGGTAAACCAGTCGCGCATCCAGTTCACCCGCCATCAGTTTGTC +GATGGTTTCGCGTACATATTCCTGATATGGCTCGTTGCGGAAGATGCGCAGGTATAGCTCCTGCTGAAAC +TGCTGGGCCAGCGGCGTCCAGTCGGTGCGCACGGTTTCCAGCCCTTTAAACACCATCCGCTGCTTGTCGC +CCTCCTGAATCAGTCCGGCATAACGCTTTTTACTGCCGGTATCGGCTCCGCGAATGGTTGGCATCAGAAA +ACGGCAGAAATGGGTTTCATACTCCAGTTCTAATGCGCTGGTCAGCCGTTGTTTTTGCAGCGTTTCCGCC +CACCAGGCGTTAACGTGCTGCACCAGTGCACGACCGATTTTCGCCGCTTCTTCTTCCGAATGTGCGCCTT +TCAGCCAGACAAACGTTGAGTCGGTATCGCCGTAGATAACGTCGTAGCCCTGTGCTTCAATCAACGCTTT +GGTTTGCCGCATGATCTGATGACCACGCATGGTGATCGACGATGCCAGCCGCGGATCGAAGAAGCGGCAG +GCGGTGGTGCCGAGCACGCCATAAAAGGCATTCATGATGATTTTCAGCGCCTGCGACAGCGGTTTGTTAC +CCTGGCGTTTGGCTTCATCGCGCCCGTGCCAGATGTTAGTCACAATCTCCGGCAGGCAATGTTTTTCTCG +CGAGAACCAGGCATCGAGAAAACCTTCGGTACTGTGCTCTGGATCAGGCTGCGCCATGCCTTCCACCAGC +CCGACGGGATCAATCAGAAAGGTGCGGATGATCGACGGGTACAGGCTTTTATAGTCCAGCACCAGCACTG +AATCATAAAGCCCTGGCCGTGAATCCATCACGTAGCCGCCAGGGCTGGCGTGCGGCGGCACTTCGCCGAG +ATTAGGCGCGACATAACCAGCGCGATGCATTCGCGGAAAATAGAGATGACCAAATGCCGCCACCGAACCG +CCGTGTCGGTCCACCGGCAGGCCGTTCACCGTTGCCCGTTCGAGTAAAAATGGCATGATTTCAGTTTTGT +GGAAGATCTGCGTCACCAGCTCGCAATCTTTCAGGTTATAAGTTGCCAGCGCAGGTTTATCTTCGGCGAA +ACGGCGGTCAATTTCGTCCATTCGATCCCACGGGTTATCGATAGATTTTCCTTCGCCTAATAGCTCCTGA +GCGACAGTTTCCAGCGAGAATGAAGAGAAATTCCAGAACGCGGATTTCAGCGCCTCGATACCGTCGATAA +TTAGCCGACCTTTAGCCTGGGCAAAAAAGACGCCGTTTTTAAAGCCGTGCTCGCGCCACTCCAGCTCGCT +ATTATCGCGCCCAAGACGCAGCGGAAGACGGTAACGCTCGGCATGTTTTTGCAGCATTCGCAGATCGAAC +TGCACCACGTTCCAACCGATGATCACATCAGGATCGTAGTTGGCAAACCAGGCGTTGAGTTTTTCCAGCA +ACTGCGGGCGGCTGGCGACGTATTCCAGTTCGAAATCAAGCGAGGAGGCGTCGCCATTCTCCGGCCCCAG +CATATAAACGATGCGCTGCCCGCAGCCTTCCAGGCCGATGCAGTACAGCTCACCGTGGCGGGTGGTTTCA +ATATCTATAGAAACCCACTTGAGCGGCGGACGATAGTCGGGATGCGGTTTCAGACGGGCATTAACGATAG +TGCCATTGTGCATATCACCCTCGACCCACACCGGTGAGGTGATAAACCGCTCCATCAGATAGCGTTCTGG +CGGACGCACATCGGCCTCGTAGACGGTAACGCCACCTTCACGCAGGCGCTTTTCGTAATTCATCAATTGG +CGATGGGCGCGACAGTAAAGGCCATACACCGGCTGGCGGTGAAAATCCTTTAACGCCAGCGGTGTCAGGC +GAAAGCCTTGTTCACCCTGCAAAATATGCTGAGCGCGGGGAACCTGATCGGCGGGAATAAACGCCACGGA +CTCTTGCGGTGCAAGCGTAACCTGCAACGGCCCGTTGTCCGTCGCCAGCCAGAAGGAGACTTCTGTCCCT +TGCGGGGTGTCCCGCCAGTGTCGGGTTAAGATAAAACCTGCCTGCGCCACGCTGAAAATCCATCAAAAAA +CCAGGCTTGAGTATAGCCTGGTTTCGTTTGATTGGCTGTGGTTTTATACAGTCATTACTGCCCGTAATAT +GCCTTCGCGCCATGCTTACGCAGATAGTGTTTATCCAGCAGCGTTTGCTGCATATCCGGTAACTGCGGCG +CTAACTGACGGCAGAATATCCCCATATAAGCGACCTCTTCCAGCACGATGGCGTTATGCACCGCATCTTC +GGCATTTTTGCCCCATGCAAACGGGCCGTGGGAATGGACCAGAACGCCGGGCATTTGCGCTGCATCGATA +CCCTGTTTTTCAAAGGTTTCTACGATGACGTTACCGGTTTCCCACTCATATTCGCCGTTGATTTCTGCGT +CGGTCATTTTGCGGGTGCAGGGAATGGTGCCGTAGAAATAGTCGGCGTGGGTGGTGCCGGTTGCTGGAAT +CGACTGACCCGCCTGCGCCCAGATGGTGGCGTGGCGCGAGTGCGTATGCACAATGCCGCCAATGGAGGGG +AATGCCTGATAGAGCAGCCGGTGAGTTGGCGTGTCGGAGGAGGGCTTTTTCGTACCTTCAACCACTTCAC +CGGTTTCGATGCTAACCACGACCATATCGTCAGCGGTCATGACGCTGTAATCGACGCCGGAAGGTTTGAT +CACAAAGACGCCGCGCTCGCGATCAACGGCGCTGACGTTGCCCCATGTGAGCGTGACCAGGTTGTGTTTT +GGCAGCGCCAGGTTGGCTTCTAATACCTGGCGTTTGAGATCTTCTAACATGTTGACTCCTTCGTGCCGGA +TGCGCTTTGCTTATCCGGCCTACAAAATCGCAGCGTGTAGGCCTGATAAGACGCGCCAGCGTCGCATCAG +GCGTTGAATGCCGGATGCGCTTTGCTTATCCGGCCTACAAAATCGCAGCGCGTAGGCCTGATAAGACGCG +CCAGCGTCGCATCAGGCGTTGAATGCCGGATGCGCTTTGCTTATCCGGCCTACAAAATCGCAGCGTGTAG +GCCAGATAAGACGCGTCAGCGTCGCATCAGGCGTTACATACCGGATGCGGCTACTTAGCGACGAAACCCG +TAATACACTTCGTTCCAGCGCAGCGCGTCTTTAAACGCTGGCAGGCGTGTGTCGTTATCAATCACCGTGA +TTTCAATGTCGTGCATCTCGGCGAATTGGCGCATATCGTTGAGGTTCAGTGCATGGCTGAAGACGGTATG +GTGCGCGCCACCAGCGAGGATCCACGCTTCGGAAGCAGTTGGCAGATCCGGTTGCGCTTTCCACAGCGCA +TTCGCCACCGGCAGTTTCGGCAGGGAGTGCGGTGTTTTCACCGTGTCGATGCAGTTAACCAGTAGACGGT +AACGATCGCCGAGATCAATCAAGCTGGCGACAATCGCTGGGCCGGTTTGGGTATTGAAGATCAGGCGGGC +AGGATCGTCCTTACCACCAATACCGAGATGCTGAACGTCGAGGATCGGTTTCTCTTCTGCGGCGATCGAC +GGGCAGACTTCCAGCATATGGGAGCCGAGCACCAGGTCATTACCTTTCTCGAAGTGATAGGTGTAGTCCT +CCATAAAGGAGGTGCCGCCCTGCAGACCGGTTGACATCACCTTCATGATGCGAAGCAGGGCGGCAGTTTT +CCAGTCGCCTTCGCCCGCAAAGCCGTAACCCTGCTGCATCAGACGCTGTACGGCCAGACCAGGAAGCTGT +TTCAGACCGTGCAAATCTTCAAAGGTGGTGGTGAACGCGTGGAAGCCACCTTGTTCCAGGAAACGCTTCA +TCCCCAGCTCAATACGCGCCGCTTCCAGCACGTTCTGTCGTTTTTTGCCGTGGATTTGTGTGGCAGGCGT +CATGGTGTAGCAGCTTTCGTACTCATCGACCAGCGCGTTAACATCGCCGTCGCTGATGGAGTTCACCACC +TGCACCAGATCGCCAACCGCCCAGGTATTGACGGAGAAACCGAACTTGATCTGTGCGGCAACTTTATCGC +CATCGGTGACCGCCACTTCACGCATGTTATCGCCAAATCGGCAGACTTTCAGATGACGGGTATCCTGTTT +AGAGACCGCCTGACGCATCCAGGAGCCGATACGCTCATGGGCTTGTTTATCCTGCCAGTGACCGGTAACC +ACGGCATGTTGCTGACGCATACGCGCGCCAATGAAGCCGAACTCGCGACCGCCATGTGCAGTCTGGTTCA +GGTTCATAAAGTCCATATCGATACTGTCCCACGGCAGCGCCGCGTTGAACTGGGTGTGGAATTGCAGCAA +CGGTTTGTTGAGCATGGTCAGGCCGTTGATCCACATTTTGGCCGGGGAGAAGGTGTGCAGCCACACCACC +AGACCAGCGCAACGATCGTCGTAATTCGCGTCGCGGCAAATAGCGGTGATTTCATCCGGCGTGGTGCCCA +GCGGTTTCAACACCAGTTTGCAGGGCAGTTTCGCTTCCGTATTCAGCGCATTAACGACGTGCTCGGCATG +TTGGGTGACCTGACGCAGGGTTTCCGGGCCATACAGATGCTGGCTGCCAATGACAAACCACACTTCATAA +TTATCAAAAATCGTCATTATCGTGTCCTTATAGAGTCGCAACGGCCTGGGCAGCCTGTGCCGGGGCGGAA +GTTGGAAGATAGTGTTGTTCGGCGCTCATCGCCCATTGCTGATAGCGGCGATAAAGCTGTTCAAAGCGTT +GTGCCTGCTCGCTGCACGGTTGCAGGGTTTTCTCTACCGCACTGGCCATTTTTTGCTGAGCTGATGGGAT +GTCTGCGTGCACTTTCGCGGCGACGGCAGCAAAAATCGCCGCACCGAGCGCACAGCACTGGTCAGAGGCA +ACAATTTGCAGCGGGCGATTCAGCACGTCGCAGCAGGCCTGCATAATGACCTGGTTTTTCCGCGCGATGC +CGCCCAGTGCCATCACGTTATTAACGGCGATCCCCTGATCGGTAAAGCACTCCATGATTGCGCGTGCGCC +AAAGGCGGTGGCAGCAATCAAACCGCCGAACAGCAGCGGAGCGTCGGTAGCGAGGTTAAGATCGGTAATC +ACCCCTTTCAGGCGTTGGTTAGCGTTCGGTGTGCGGCGGCCGTTAAACCAGTCGAGCACCACCGGCAGGT +GATCCAGAGACGGATTTTTGGCCCATGCTTCGGTCAGCGCCGGAAGCAGTTGTTTCTGGCTGGCGTTGAT +TTGCGTTTTCAGTTCCGGATGCTGGGCGGCAAGCTGTTCCAGCGGCCAGCCGAGTACGCGACCAAACCAG +GCGTAGATATCACCAAACGCCGATTGGCCTGCTTCCAGACCGATAAATCCAGGCACCACGCTGCCATCAA +CCTGACCGCAAATACCTTTAACTGCCCGCTCGCCAACGCTCTGTTTGTCGGCAATCAGAATGTCGCAGGT +GGAAGTACCGATAACTTTTACCAGTGCGTTAGGCTGTGCGCCTGCGCCAACTGCGCCCATATGGCAGTCA +AACGCGCCGCCGGAAATCACCACGCTTTCAGGCAGGCCGAGACGCTGCGCCCATTCCGGGCATAAGGTGC +CCACCGGAATATCGGCAGTCCAAGTGTCAGTGAACAGCGGGGAAGGCAAATGGCGATTGAGGATCGGGTC +CAGCTCATCAAAGAAACTGGCTGGCGGCAGGCCGCCCCAGCTTTCGTGCCACAGAGATTTATGCCCGGCG +CTGCAACGTCCGCGACGAATATCCTGCGGGCGGGTGGTACCGGAAAGCAGAGCTGGCACCCAGTCGCACA +GCTCAATCCACGATGCGGCAGATTGCGCCACGGCGCTGTCCTGGCGAGTCACATGCAGGATTTTTGCCCA +GAACCATTCGCTGGAATAAATACCACCAATGTAGCGGGAGTAGTCAACGTTGCCCGGCGCGTGGCACAAA +CGGGTAATCTCTTCCGCTTCTTCAACCGCAGTGTGGTCTTTCCACAATACGAACATCGCGTTCGGGTTTT +CGGCAAACTCCGGGCGCAGCGCCAGCACGTTTCCGTCGGCATCAATCGGTGCGGGCGTCGAGCCGGTACT +GTCAACGCCAATCCCGACCACAGCTGCGCGCTGTTCGACGCTAAGCTCTGCAAGCACGGTTTTCAGTGCC +GCTTCCATTGACTCAATGTAGTCACGCGGATGATGACGGAACTGGTTATTCGGGGCATCACAAAATTGCC diff --git a/scripts/ambig_4.fa b/scripts/ambig_4.fa new file mode 100644 index 0000000..8fba433 --- /dev/null +++ b/scripts/ambig_4.fa @@ -0,0 +1,1000 @@ +>NC_007779.1 Escherichia coli str. K-12 substr. W3110 DNA, complete genome +NAGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC +TTCTGAACTGGTTACCTGCCGTGAGTAAATTAAAATTTTATTGACTTAGGTCACTAAATACTTTAACCAA +TATAGGCATAGCGCACAGACAGATAAAAATTACAGAGTACACAACATCCATGAAACGCATTAGCACCACC +ATTACCACCACCATCACCATTACCACAGGTAACGGTGCGGGCTGACGCGTACAGGAAACACAGAAAAAAG +CCCGCACCTGACAGTGCGGGCTTTTTTTTTCGACCAAAGGTAACGAGGTAACAACCATGCGAGTGTTGAA +GTTCGGCGGTACATCAGTGGCAAATGCAGAACGTTTTCTGCGTGTTGCCGATATTCTGGAAAGCAATGCC +AGGCAGGGGCAGGTGGCCACCGTCCTCTCTGCCCCCGCCAAAATCACCAACCACCTGGTGGCGATGATTG +AAAAAACCATTAGCGGCCAGGATGCTTTACCCAATATCAGCGATGCCGAACGTATTTTTGCCGAACTTTT +GACGGGACTCGCCGCCGCCCAGCCGGGGTTCCCGCTGGCGCAATTGAAAACTTTCGTCGATCAGGAATTT +GCCCAAATAAAACATGTCCTGCATGGCATTAGTTTGTTGGGGCAGTGCCCGGATAGCATCAACGCTGCGC +TGATTTGCCGTGGCGAGAAAATGTCGATCGCCATTATGGCCGGCGTATTAGAAGCGCGCGGTCACAACGT +TACTGTTATCGATCCGGTCGAAAAACTGCTGGCAGTGGGGCATTACCTCGAATCTACCGTCGATATTGCT +GAGTCCACCCGCCGTATTGCGGCAAGCCGCATTCCGGCTGATCACATGGTGCTGATGGCAGGTTTCACCG +CCGGTAATGAAAAAGGCGAACTGGTGGTGCTTGGACGCAACGGTTCCGACTACTCTGCTGCGGTGCTGGC +TGCCTGTTTACGCGCCGATTGTTGCGAGATTTGGACGGACGTTGACGGGGTCTATACCTGCGACCCGCGT +CAGGTGCCCGATGCGAGGTTGTTGAAGTCGATGTCCTACCAGGAAGCGATGGAGCTTTCCTACTTCGGCG +CTAAAGTTCTTCACCCCCGCACCATTACCCCCATCGCCCAGTTCCAGATCCCTTGCCTGATTAAAAATAC +CGGAAATCCTCAAGCACCAGGTACGCTCATTGGTGCCAGCCGTGATGAAGACGAATTACCGGTCAAGGGC +ATTTCCAATCTGAATAACATGGCAATGTTCAGCGTTTCTGGTCCGGGGATGAAAGGGATGGTCGGCATGG +NCGGCGCGCGTCNTTTGCAGCGATGTCACGCGCCCGTATTTCCGTGGTGCTGATTACGCAATCATCTTCCGA +ATACAGCATCAGTTTCTGCGTTCCACAAAGCGACTGTGTGCGAGCTGAACGGGCAATGCAGGAAGAGTTC +TACCTGGAACTGAAAGAAGGCTTACTGGAGCCGCTGGCAGTGACGGAACGGCTGGCCATTATCTCGGTGG +TAGGTGATGGTATGCGCACCTTGCGTGGGATCTCGGCGAAATTCTTTGCCGCACTGGCCCGCGCCAATAT +CAACATTGTCGCCATTGCTCAGGGATCTTCTGAACGCTCAATCTCTGTCGTGGTAAATAACGATGATGCG +ACCACTGGCGTGCGCGTTACTCATCAGATGCTGTTCAATACCGATCAGGTTATCGAAGTGTTTGTGATTG +GCGTCGGTGGCGTTGGCGGTGCGCTGCTGGAGCAACTGAAGCGTCAGCAAAGCTGGCTGAAGAATAAACA +TATCGACTTACGTGTCTGCGGTGTTGCCAACTCGAAGGCTCTGCTCACCAATGTACATGGCCTTAATCTG +GAAAACTGGCAGGAAGAACTGGCGCAAGCCAAAGAGCCGTTTAATCTCGGGCGCTTAATTCGCCTCGTGA +AAGAATATCATCTGCTGAACCCGGTCATTGTTGACTGCACTTCCAGCCAGGCAGTGGCGGATCAATATGC +CGACTTCCTGCGCGAAGGTTTCCACGTTGTCACGCCGAACAAAAAGGCCAACACCTCGTCGATGGATTAC +TACCATCAGTTGCGTTATGCGGCGGAAAAATCGCGGCGTAAATTCCTCTATGACACCAACGTTGGGGCTG +GATTACCGGTTATTGAGAACCTGCAAAATCTGCTCAATGCAGGTGATGAATTGATGAAGTTCTCCGGCAT +TCTTTCTGGTTCGCTTTCTTATATCTTCGGCAAGTTAGACGAAGGCATGAGTTTCTCCGAGGCGACCACG +CTGGCGCGGGAAATGGGTTATACCGAACCGGACCCGCGAGATGATCTTTCTGGTATGGATGTGGCGCGTA +AACTATTGATTCTCGCTCGTGAAACGGGACGTGAACTGGAGCTGGCGGATATTGAAATTGAACCTGTGCT +GCCCGCAGAGTTTAACGCCGAGGGTGATGTTGCCGCTTTTATGGCGAATCTGTCACAACTCGACGATCTC +TTTGCCGCGCGCGTGGCGAAGGCCCGTGATGAAGGAAAAGTTTTGCGCTATGTTGGCAATATTGATGAAG +ATGGCGTCTGCCGCGTGAAGATTGCCGAAGTGGATGGTAATGATCCGCTGTTCAAAGTGAAAAATGGCGA +AAACGCCCTGGCCTTCTATAGCCACTATTATCAGCCGCTGCCGTTGGTACTGCGCGGATATGGTGCGGGC +AATGACGTTACAGCTGCCGGTGTCTTTGCTGATCTGCTACGTACCCTCTCATGGAAGTTAGGAGTCTGAC +ATGGTTAAAGTTTATGCCCCGGCTTCCAGTGCCAATATGAGCGTCGGGTTTGATGTGCTCGGGGCGGCGG +TGACACCTGTTGATGGTGCATTGCTCGGAGATGTAGTCACGGTTGAGGCGGCAGAGACATTCAGTCTCAA +CAACCTCGGACGCTTTGCCGATAAGCTGCCGTCAGAACCACGGGAAAATATCGTTTATCAGTGCTGGGAG +CGTTTTTGCCAGGAACTGGGTAAGCAAATTCCAGTGGCGATGACCCTGGAAAAGAATATGCCGATCGGTT +CGGGCTTAGGCTCCAGTGCCTGTTCGGTGGTCGCGGCGCTGATGGCGATGAATGAACACTGCGGCAAGCC +GCTTAATGACACTCGTTTGCTGGCTTTGATGGGCGAGCTGGAAGGCCGTATCTCCGGCAGCATTCATTAC +GACAACGTGGCACCGTGTTTTCTCGGTGGTATGCAGTTGATGATCGAAGAAAACGACATCATCAGCCAGC +AAGTGCCAGGGTTTGATGAGTGGCTGTGGGTGCTGGCGTATCCGGGGATTAAAGTCTCGACGGCAGAAGC +CAGGGCTATTTTACCGGCGCAGTATCGCCGCCAGGATTGCATTGCGCACGGGCGACATCTGGCAGGCTTC +ATTCACGCCTGCTATTCCCGTCAGCCTGAGCTTGCCGCGAAGCTGATGAAAGATGTTATCGCTGAACCCT +ACCGTGAACGGTTACTGCCAGGCTTCCGGCAGGCGCGGCAGGCGGTCGCGGAAATCGGCGCGGTAGCGAG +CGGTATCTCCGGCTCCGGCCCGACCTTGTTCGCTCTGTGTGACAAGCCGGAAACCGCCCAGCGCGTTGCC +GACTGGTTGGGTAAGAACTACCTGCAAAATCAGGAAGGTTTTGTTCATATTTGCCGGCTGGATACGGCGG +GCGCACGAGTACTGGAAAACTAAATGAAACTCTACAATCTGAAAGATCACAACGAGCAGGTCAGCTTTGC +GCAAGCCGTAACCCAGGGGTTGGGCAAAAATCAGGGGCTGTTTTTTCCGCACGACCTGCCGGAATTCAGC +CTGACTGAAATTGATGAGATGCTGAAGCTGGATTTTGTCACCCGCAGTGCGAAGATCCTCTCGGCGTTTA +TTGGTGATGAAATCCCACAGGAAATCCTGGAAGAGCGCGTGCGCGCGGCGTTTGCCTTCCCGGCTCCGGT +CGCCAATGTTGAAAGCGATGTCGGTTGTCTGGAATTGTTCCACGGGCCAACGCTGGCATTTAAAGATTTC +GGCGGTCGCTTTATGGCACAAATGCTGACCCATATTGCGGGTGATAAGCCAGTGACCATTCTGACCGCGA +CCTCCGGTGATACCGGAGCGGCAGTGGCTCATGCTTTCTACGGTTTACCGAATGTGAAAGTGGTTATCCT +CTATCCACGAGGCAAAATCAGTCCACTGCAAGAAAAACTGTTCTGTACATTGGGCGGCAATATCGAAACT +GTTGCCATCGACGGCGATTTCGATGCCTGTCAGGCGCTGGTGAAGCAGGCGTTTGATGATGAAGAACTGA +AAGTGGCGCTAGGGTTAAACTCGGCTAACTCGATTAACATCAGCCGTTTGCTGGCGCAGATTTGCTACTA +CTTTGAAGCTGTTGCGCAGCTGCCGCAGGAGACGCGCAACCAGCTGGTTGTCTCGGTGCCAAGCGGAAAC +TTCGGCGATTTGACGGCGGGTCTGCTGGCGAAGTCACTCGGTCTGCCGGTGAAACGTTTTATTGCTGCGA +CCAACGTGAACGATACCGTGCCACGTTTCCTGCACGACGGTCAGTGGTCACCCAAAGCGACTCAGGCGAC +GTTATCCAACGCGATGGACGTGAGTCAGCCGAACAACTGGCCGCGTGTGGAAGAGTTGTTCCGCCGCAAA +ATCTGGCAACTGAAAGAGCTGGGTTATGCAGCCGTGGATGATGAAACCACGCAACAGACAATGCGTGAGT +TAAAAGAACTGGGCTACACTTCGGAGCCGCACGCTGCCGTAGCTTATCGTGCGCTGCGTGATCAGTTGAA +TCCAGGCGAATATGGCTTGTTCCTCGGCACCGCGCATCCGGCGAAATTTAAAGAGAGCGTGGAAGCGATT +CTCGGTGAAACGTTGGATCTGCCAAAAGAGCTGGCAGAACGTGCTGATTTACCCTTGCTTTCACATAATC +TGCCCGCCGATTTTGCTGCGTTGCGTAAATTGATGATGAATCATCAGTAAAATCTATTCATTATCTCAAT +CAGGCCGGGTTTGCTTTTATGCAGCCCGGCTTTTTTATGAAGAAATTATGGAGAAAAATGACAGGGAAAA +AGGAGAAATTCTCAATAAATGCGGTAACTTAGAGATTAGGATTGCGGAGAATAACAACCGCCGTTCTCAT +CGAGTAATCTCCGGATATCGACCCATAACGGGCAATGATAAAAGGAGTAACCTGTGAAAAAGATGCAATC +TATCGTACTCGCACTTTCCCTGGTTCTGGTCGCTCCCATGGCAGCACAGGCTGCGGAAATTACGTTAGTC +CCGTCAGTAAAATTACAGATAGGCGATCGTGATAATCGTGGCTATTACTGGGATGGAGGTCACTGGCGCG +ACCACGGCTGGTGGAAACAACATTATGAATGGCGAGGCAATCGCTGGCACCTACACGGACCGCCGCCACC +GCCGCGCCACCATAAGAAAGCTCCTCATGATCATCACGGCGGTCATGGTCCAGGCAAACATCACCGCTAA +ATGACAAATGCCGGGTAACAATCCGGCATTCAGCGCCTGATGCGACGCTGGCGCGTCTTATCAGGCCTAC +GTTAATTCTGCAATATATTGAATCTGCATGCTTTTGTAGGCAGGATAAGGCGTTCACGCCGCATCCGGCA +TTGACTGCAAACTTAACGCTGCTCGTAGCGTTTAAACACCAGTTCGCCATTGCTGGAGGAATCTTCATCA +AAGAAGTAACCTTCGCTATTAAAACCAGTCAGTTGCTCTGGTTTGGTCAGCCGATTTTCAATAATGAAAC +GACTCATCAGACCGCGTGCTTTCTTAGCGTAGAAGCTGATGATCTTAAATTTGCCGTTCTTCTCATCGAG +GAACACCGGCTTGATAATCTCGGCATTCAATTTCTTCGGCTTCACCGATTTAAAATACTCATCTGACGCC +AGATTAATCACCACATTATCGCCTTGTGCTGCGAGCGCCTCGTTCAGCTTGTTGGTGATGATATCTCCCC +AGAATTGATACAGATCTTTCCCTCGGGCATTCTCAAGACGGATCCCCATTTCCAGACGATAAGGCTGCAT +TAAATCGAGCGGGCGGAGTACGCCATACAAGCCGGAAAGCATTCGCAAATGCTGTTGGGCAAAATCGAAA +TCGTCTTCGCTGAAGGTTTCGGCCTGCAAGCCGGTGTAGACATCACCTTTAAACGCCAGAATCGCCTGGC +GGGCATTCGCCGGCGTGAAATCTGGCTGCCAGTCATGAAAGCGAGCGGCGTTGATACCCGCCAGTTTGTC +GCTGATGCGCATCAGCGTGCTAATCTGCGGAGGCGTCAGTTTCCGCGCCTCATGGATCAACTGCTGGGAA +TTGTCTAACAGCTCCGGCAGCGTATAGCGCGTGGTGGTCAACGGGCTTTGGTAATCAAGCGTTTTCGCAG +GTGAAATAAGAATCAGCATATCCAGTCCTTGCAGGAAATTTATGCCGACTTTAGCAAAAAATGAGAATGA +GTTGATCGATAGTTGTGATTACTCCTGCGAAACATCATCCCACGCGTCCGGAGAAAGCTGGCGACCGATA +TCCGGATAACGCAATGGATCAAACACCGGGCGCACGCCGAGTTTACGCTGGCGTAGATAATCACTGGCAA +TGGTATGAACCACAGGCGAGAGCAGTAAAATGGCGGTCAAATTGGTAATAGCCATGCAGGCCATTATGAT +ATCTGCCAGTTGCCACATCAGCGGAAGGCTTAGCAAGGTGCCGCCGATGACCGTTGCGAAGGTGCAGATC +CGCAAACACCAGATCGCTTTAGGGTTGTTCAGGCGTAAAAAGAAGAGATTGTTTTCGGCATAAATGTAGT +TGGCAACGATGGAGCTGAAGGCAAACAGAATAACCACAAGGGTAACAAACTCAGCACCCCAGGAACCCAT +TAGCACCCGCATCGCCTTCTGGATAAGCTGAATACCTTCCAGCGGCATGTAGGTTGTGCCGTTACCCGCC +AGTAATATCAGCATGGCGCTTGCCGTACAGATGACCAGGGTGTCGATAAAAATGCCAATCATCTGGACAA +TCCCTTGCGCTGCCGGATGCGGAGGCCAGGACGCCGCTGCCGCTGCCGCGTTTGGCGTCGAACCCATTCC +CGCCTCATTGGAAAACATACTGCGCTGAAAACCGTTAGTAATCGCCTGGCTTAAGGTATATCCCGCCGCG +CCGCCTGCCGCTTCCTGCCAGCCAAAAGCACTCTCAAAAATAGACCAAATGACGTGGGGAAGTTGCCCGA +TATTCATTACGCAAATTACCAGGCTGGTCAGTACCCAGATTATCGCCATCAACGGGACAAAGCCCTGCAT +GAGCCGGGCGACGCCATGAAGACCGCGAGTGATTGCCAGCAGAGTAAAGACAGCGAGAATAATGCCTGTC +ACCAGCGGGGGAAAATCAAAAGAAAAACTCAGGGCGCGGGCAACGGCGTTCGCTTGAACTCCGCTGAAAA +TTATGCCATAGGCGATGAGCAAAAAGACGGCGAACAGAACGCCCATCCAGCGCATCCCCAGCCCGCGCGC +CATATACCATGCCGGTCCGCCACGAAACTGCCCATTGACGTCACGTTCTTTATAAAGTTGTGCCAGAGAA +CATTCGGCAAACGAGGTCGCCATGCCGATAAACGCGGCAACCCACATCCAAAAGACGGCTCCAGGTCCAC +CGGCGGTAATAGCCAGCGCAACGCCGGCCAGGTTGCCGCTACCCACGCGCGCCGCAAGACTGGTACACAA +TGACTGAAATGAGGTTAAACCGCCTGGCTGTGGATGAATGCTATTTTTAAGACTTTTGCCAAACTGGCGG +ATGTAGCGAAACTGCACAAATCCGGTGCGAAAAGTGAACCAACAACCTGCGCCGAAGAGCAGGTAAATCA +TTACCGATCCCCAAAGGACGCTGTTAATGAAGGAGAAAAAATCTGGCATGCATATCCCTCTTATTGCCGG +TCGCGATGACTTTCCTGTGTAAACGTTACCAATTGTTTAAGAAGTATATACGCTACGAGGTACTTGATAA +CTTCTGCGTAGCATACATGAGGTTTTGTATAAAAATGGCGGGCGATATCAACGCAGTGTCAGAAATCCGA +AACAGTCTCGCCTGGCGATAACCGTCTTGTCGGCGGTTGCGCTGACGTTGCGTCGTGATATCATCAGGGC +AGACCGGTTACATCCCCCTAACAAGCTGTTTAAAGAGAAATACTATCATGACGGACAAATTGACCTCCCT +TCGTCAGTACACCACCGTAGTGGCCGACACTGGGGACATCGCGGCAATGAAGCTGTATCAACCGCAGGAT +GCCACAACCAACCCTTCTCTCATTCTTAACGCAGCGCAGATTCCGGAATACCGTAAGTTGATTGATGATG +CTGTCGCCTGGGCGAAACAGCAGAGCAACGATCGCGCGCAGCAGATCGTGGACGCGACCGACAAACTGGC +AGTAAATATTGGTCTGGAAATCCTGAAACTGGTTCCGGGCCGTATCTCAACTGAAGTTGATGCGCGTCTT +TCCTATGACACCGAAGCGTCAATTGCGAAAGCAAAACGCCTGATCAAACTCTACAACGATGCTGGTATTA +GCAACGATCGTATTCTGATCAAACTGGCTTCTACCTGGCAGGGTATCCGTGCTGCAGAACAGCTGGAAAA +AGAAGGCATCAACTGTAACCTGACCCTGCTGTTCTCCTTCGCTCAGGCTCGTGCTTGTGCGGAAGCGGGC +GTGTTCCTGATCTCGCCGTTTGTTGGCCGTATTCTTGACTGGTACAAAGCGAATACCGATAAGAAAGAGT +ACGCTCCGGCAGAAGATCCGGGCGTGGTTTCTGTATCTGAAATCTACCAGTACTACAAAGAGCACGGTTA +TGAAACCGTGGTTATGGGCGCAAGCTTCCGTAACATCGGCGAAATTCTGGAACTGGCAGGCTGCGACCGT +CTGACCATCGCACCGGCACTGCTGAAAGAGCTGGCGGAGAGCGAAGGGGCTATCGAACGTAAACTGTCTT +ACACCGGCGAAGTGAAAGCGCGTCCGGCGCGTATCACTGAGTCCGAGTTCCTGTGGCAGCACAACCAGGA +TCCAATGGCAGTAGATAAACTGGCGGAAGGTATCCGTAAGTTTGCTATTGACCAGGAAAAACTGGAAAAA +ATGATCGGCGATCTGCTGTAATCATTCTTAGCGTGACCGGGAAGTCGGTCACGCTACCTCTTCTGAAGCC +TGTCTGTCACTCCCTTCGCAGTGTATCATTCTGTTTAACGAGACTGTTTAAACGGAAAAATCTTGATGAA +TACTTTACGTATTGGCTTAGTTTCCATCTCTGATCGCGCATCCAGCGGCGTTTATCAGGATAAAGGCATC +CCTGCGCTGGAAGAATGGCTGACATCGGCGCTAACCACGCCGTTTGAACTGGAAACCCGCTTAATCCCCG +ATGAGCAGGCGATCATCGAGCAAACGTTGTGTGAGCTGGTGGATGAAATGAGTTGCCATCTGGTGCTCAC +CACGGGCGGAACTGGCCCGGCGCGTCGTGACGTAACGCCCGATGCGACGCTGGCAGTAGCGGACCGCGAG +ATGCCTGGCTTTGGTGAACAGATGCGCCAGATCAGCCTGCATTTTGTACCAACTGCGATCCTTTCGCGTC +AGGTGGGCGTGATTCGCAAACAGGCGCTGATCCTTAACTTACCCGGTCAGCCGAAGTCTATTAAAGAGAC +GCTGGAAGGTGTGAAGGACGCTGAGGGTAACGTTGTGGTACACGGTATTTTTGCCAGCGTACCGTACTGC +ATTCAGTTGCTGGAAGGGCCATACGTTGAAACGGCACCGGAAGTGGTTGCAGCATTCAGACCGAAGAGTG +CAAGACGCGACGTTAGCGAATAAAAAAATCCCCCCGAGCGGGGGGATCTCAAAACAATTAGTGGGATTCA +CCAATCGGCAGAACGGTGCGACCAAACTGCTCGTTCAGTACTTCACCCATCGCCAGATAGATTGCGCTGG +CACCGCAGATCAGCCCAATCCAGCCGGCAAAGTGGATGATTGCGGCGTTACCGGCAATGTTACCGATCGC +CAGCAGGGCAAACAGCACGGTCAGGCTAAAGAAAACGAATTGCAGAACGCGTGCGCCTTTCAGCGTGCCG +AAGAACATAAACAGCGTAAATACGCCCCACAGACCCAGGTAGACACCAAGGAACTGTGCATTTGGCGCAT +CGGTCAGACCCAGTTTCGGCATCAGCAGAATCGCAACCAGCGTCAGCCAGAAAGAACCGTAAGAGGTGAA +TGCGGTTAAACCGAAAGTGTTGCCTTTTTTGTACTCCAGCAGACCAGCAAAAATTTGCGCGATGCCGCCG +TAGAAAATGCCCATGGCAAGAATAATACCGTCCAGAGCGAAATAACCCACGTTGTGCAGGTTAAGCAGAA +TGGTGGTCATGCCGAAGCCCATCAGGCCCAGCGGTGCCGGATTAGCCAACTTAGTGTTGCCCATAATTCC +TCAAAAATCATCATCGAATGAATGGTGAAATAATTTCCCTGAATAACTGTAGTGTTTTCAGGGCGCGGCA +TAATAATCAGCCAGTGGGGCAGTGTCTACGATCTTTTGAGGGGAAAATGAAAATTTTCCCCGGTTTCCGG +TATCAGACCTGAGTGGCGCTAACCATCCGGCGCAGGCAGGCGATTTGCAGTACGGCTGGAATCGTCACGC +GATAGGCGCTGCCGCTGACCGCTTTAACCCCATTTAGTGCCGCACCTACAGGGCCTCCCAGCCCCGCGCC +GCGCAGCAAACCATGCCCAAGTACGCTCATTGCTGCGTGGGTGCGTAAAATGCGGGTCAGTTGGCTGGAA +AGCAAATGCGACACACCTTTTGCCAATAATTTGTCTTTCATCAGCAGCGGCAGCAGCTCTTCCAGCTCAT +TCACCCTGGCATCGACCGCGTGCAGAAACTCCTGCTTATGTTCCTCGTCCATTTTCTTCCAGGTATTACG +CAGAAATTGTTCCAGTAACTGTTGCTCAATTTCAAACGTAGACATCTCTTTGTCGGCTTTCAGCTTCAAT +CGCTTTGAAACATCGAGCAAAATGGCCCGATACAATTTACCGTGTCCGCGCAGTTTGTTGGCGATACTAT +CGCCACCAAAATGCTGTAATTCTCCGGCAATCAGCTGCCAGTTGCGGCGATGTTGCTCGGGATGCCCTTC +CATCGATTTAAACAGTTCGTTGCGCATCAGTACGCTGGAGAGGCGAGTTTTGCCTTTTTCATTATGGGTG +AGCAATCGGGCGAAATTTGCCAACTGTTCCTCACTACAATGCTGAAGAAAATCCAGATCTGAATCATTCA +GGTAATTAACATTCATTTTTTGTGGCTTCTATATTCTGGCGTTAGTCGTCGCCGATAATTTTCAGCGTGG +CCATATCCGATGAGTTCACCGTATGACCCGAAAAGGTGATTTTTGAGACGCAGCGTTTATTGTCGTTATC +GCTGTTAATGTTGATCCAGTCAGTGGTTTGCCCTTCTTTTATTTCTGAAGGAATATTCAGGCTCTGACTG +GCGCTACGGGCGGCTTTGAAATAAACCGATGCACCGCTTAACTGTAAATCGCCATGGTCGGCAGAGAGTT +GTATGCGTTTCACAATGCGACAAACAGGAAGTTTCAGCGCCAGATCGTTGGTTTCGTTACGCGGCATTGC +AATGGCGCCGAGGAGTTTATGGTCGTTTGCCTGCGCCGTGCAGCACAGCATCAGGCTAATCGCCAGGCTG +GCGGAAATCGTAAAAACGGATTTCATAAGGATTCTCTTAGTGGGAAGAGGTAGGGGGATGAATACCCACT +AGTTTACTGCTGATAAAGAGAAGATTCAGGCACGTAATCTTTTCTTTTTATTACAATTTTTTGATGAATG +CCTTGGCTGCGATTCATTCTTTATATGAATAAAATTGCTGTCAATTTTACGTCTTGTCCTGCCATATCGC +GAAATTTCTGCGCAAAAGCACAAAAAATTTTTGCATCTCCCCCTTGATGACGTGGTTTACGACCCCATTT +AGTAGTCAACCGCAGTGAGTGAGTCTGCAAAAAAATGAAATTGGGCAGTTGAAACCAGACGTTTCGCCCC +TATTACAGACTCACAACCACATGATGACCGAATATATAGTGGAGACGTTTAGATGGGTAAAATAATTGGT +ATCGACCTGGGTACTACCAACTCTTGTGTAGCGATTATGGATGGCACCACTCCTCGCGTGCTGGAGAACG +CCGAAGGCGATCGCACCACGCCTTCTATCATTGCCTATACCCAGGATGGTGAAACTCTAGTTGGTCAGCC +GGCTAAACGTCAGGCAGTGACGAACCCGCAAAACACTCTGTTTGCGATTAAACGCCTGATTGGTCGCCGC +TTCCAGGACGAAGAAGTACAGCGTGATGTTTCCATCATGCCGTTCAAAATTATTGCTGCTGATAACGGCG +ACGCATGGGTCGAAGTTAAAGGCCAGAAAATGGCACCGCCGCAGATTTCTGCTGAAGTGCTGAAAAAAAT +GAAGAAAACCGCTGAAGATTACCTGGGTGAACCGGTAACTGAAGCTGTTATCACCGTACCGGCATACTTT +AACGATGCTCAGCGTCAGGCAACCAAAGACGCAGGCCGTATCGCTGGTCTGGAAGTAAAACGTATCATCA +ACGAACCGACCGCAGCTGCGCTGGCTTACGGTCTGGACAAAGGCACTGGCAACCGTACTATCGCGGTTTA +TGACCTGGGTGGTGGTACTTTCGATATTTCTATTATCGAAATCGACGAAGTTGACGGCGAAAAAACCTTC +GAAGTTCTGGCAACCAACGGTGATACCCACCTGGGGGGTGAAGACTTCGACAGCCGTCTGATCAACTATC +TGGTTGAAGAATTCAAGAAAGATCAGGGCATTGACCTGCGCAACGATCCGCTGGCAATGCAGCGCCTGAA +AGAAGCGGCAGAAAAAGCGAAAATCGAACTGTCTTCCGCTCAGCAGACCGACGTTAACCTGCCATACATC +ACTGCAGACGCGACCGGTCCGAAACACATGAACATCAAAGTGACTCGTGCGAAACTGGAAAGCCTGGTTG +AAGATCTGGTAAACCGTTCCATTGAGCCGCTGAAAGTTGCACTGCAGGACGCTGGCCTGTCCGTATCTGA +TATCGACGACGTTATCCTCGTTGGTGGTCAGACTCGTATGCCAATGGTTCAGAAGAAAGTTGCTGAGTTC +TTTGGTAAAGAGCCGCGTAAAGACGTTAACCCGGACGAAGCTGTAGCAATCGGTGCTGCTGTTCAGGGTG +GTGTTCTGACTGGTGACGTAAAAGACGTACTGCTGCTGGACGTTACCCCGCTGTCTCTGGGTATCGAAAC +CATGGGCGGTGTGATGACGACGCTGATCGCGAAAAACACCACTATCCCGACCAAGCACAGCCAGGTGTTC +TCTACCGCTGAAGACAACCAGTCTGCGGTAACCATCCATGTGCTGCAGGGTGAACGTAAACGTGCGGCTG +ATAACAAATCTCTGGGTCAGTTCAACCTAGATGGTATCAACCCGGCACCGCGCGGCATGCCGCAGATCGA +AGTTACCTTCGATATCGATGCTGACGGTATCCTGCACGTTTCCGCGAAAGATAAAAACAGCGGTAAAGAG +CAGAAGATCACCATCAAGGCTTCTTCTGGTCTGAACGAAGATGAAATCCAGAAAATGGTACGCGACGCAG +AAGCTAACGCCGAAGCTGACCGTAAGTTTGAAGAGCTGGTACAGACTCGCAACCAGGGCGACCATCTGCT +GCACAGCACCCGTAAGCAGGTTGAAGAAGCAGGCGACAAACTGCCGGCTGACGACAAAACTGCTATCGAG +TCTGCGCTGACTGCACTGGAAACTGCTCTGAAAGGTGAAGACAAAGCCGCTATCGAAGCGAAAATGCAGG +AACTGGCACAGGTTTCCCAGAAACTGATGGAAATCGCCCAGCAGCAACATGCCCAGCAGCAGACTGCCGG +TGCTGATGCTTCTGCAAACAACGCGAAAGATGACGATGTTGTCGACGCTGAATTTGAAGAAGTCAAAGAC +AAAAAATAATCGCCCTATAAACGGGTAATTATACTGACACGGGCGAAGGGGAATTTCCTCTCCGCCCGTG +CATTCATCTAGGGGCAATTTAAAAAAGATGGCTAAGCAAGATTATTACGAGATTTTAGGCGTTTCCAAAA +CAGCGGAAGAGCGTGAAATCAGAAAGGCCTACAAACGCCTGGCCATGAAATACCACCCGGACCGTAACCA +GGGTGACAAAGAGGCCGAGGCGAAATTTAAAGAGATCAAGGAAGCTTATGAAGTTCTGACCGACTCGCAA +AAACGTGCGGCATACGATCAGTATGGTCATGCTGCGTTTGAGCAAGGTGGCATGGGCGGCGGCGGTTTTG +GCGGCGGCGCAGACTTCAGCGATATTTTTGGTGACGTTTTCGGCGATATTTTTGGCGGCGGACGTGGTCG +TCAACGTGCGGCGCGCGGTGCTGATTTACGCTATAACATGGAGCTCACCCTCGAAGAAGCTGTACGTGGC +GTGACCAAAGAGATCCGCATTCCGACTCTGGAAGAGTGTGACGTTTGCCACGGTAGCGGTGCAAAACCAG +GTACACAGCCGCAGACTTGTCCGACCTGTCATGGTTCTGGTCAGGTGCAGATGCGCCAGGGATTCTTCGC +TGTACAGCAGACCTGTCCACACTGTCAGGGCCGCGGTACGCTGATCAAAGATCCGTGCAACAAATGTCAT +GGTCATGGTCGTGTTGAGCGCAGCAAAACGCTGTCCGTTAAAATCCCGGCAGGGGTGGACACTGGAGACC +GCATCCGTCTTGCGGGCGAAGGTGAAGCGGGCGAGCATGGCGCACCGGCAGGCGATCTGTACGTTCAGGT +TCAGGTTAAACAGCACCCGATTTTCGAGCGTGAAGGCAACAACCTGTATTGCGAAGTCCCGATCAACTTC +GCTATGGCGGCGCTGGGTGGCGAAATCGAAGTACCGACCCTTGATGGTCGCGTCAAACTGAAAGTGCCTG +GCGAAACCCAGACCGGTAAGCTATTCCGTATGCGCGGTAAAGGCGTCAAGTCTGTCCGCGGTGGCGCACA +GGGTGATTTGCTGTGCCGCGTTGTCGTCGAAACACCGGTAGGCCTGAACGAAAGGCAGAAACAGCTGCTG +CAAGAGCTGCAAGAAAGCTTCGGTGGCCCAACCGGCGAGCACAACAGCCCGCGCTCAAAGAGCTTCTTTG +ATGGTGTGAAGAAGTTTTTTGACGACCTGACCCGCTAACCTCCCCAAAAGCCTGCCCGTGGGCAGGCCTG +GGTAAAAATAGGGTGCGTTGAAGATATGCGAGCACCTGTAAAGTGGCGGGGATCACTCCCATAAGCGCTA +ACTTAAGGGTTGTGGTATTACGCCTGATATGATTTAACGTGCCGATGAATTACTCTCACGATAACTGGTC +AGCAATTCTGGCCCATATTGGTAAGCCCGAAGAACTGGATACTTCGGCACGTAATGCCGGGGCTCTAACC +CGCCGCCGCGAAATTCGTGATGCTGCAACTCTGCTACGTCTGGGGCTGGCTTACGGCCCCGGGGGGATGT +CATTACGTGAAGTCACTGCATGGGCTCAGCTCCATGACGTTGCAACATTATCTGACGTGGCTCTCCTGAA +GCGGCTGCGGAATGCCGCCGACTGGTTTGGCATACTTGCCGCACAAACACTTGCTGTACGCGCCGCAGTT +ACGGGTTGTACAAGCGGAAAGAGATTGCGTCTTGTCGATGGAACAGCAATCAGTGCGCCCGGGGGCGGCA +GCGCTGAATGGCGACTACATATGGGATATGATCCTCATACCTGTCAGTTCACTGATTTTGAGCTAACCGA +CAGCAGAGACGCTGAACGGCTGGACCGATTTGCGCAAACGGCAGACGAGATACGCATTGCTGACCGGGGA +TTCGGTTCGCGTCCCGAATGTATCCGCTCACTTGCTTTTGGAGAAGCTGATTATATCGTCCGGGTTCACT +GGCGAGGATTGCGCTGGTTAACTGCAGAAGGAATGCGCTTTGACATGATGGGTTTTCTGCGCGGGCTGGA +TTGCGGTAAGAACGGTGAAACCACTGTAATGATAGGCAATTCAGGTAATAAAAAAGCCGGAGCTCCCTTT +CCGGCACGTCTCATTGCCGTATCACTTCCTCCCGAAAAAGCATTAATCAGTAAAACCCGACTGCTCAGCG +AGAATCGTCGAAAAGGACGAGTAGTTCAGGCGGAAACGCTGGAAGCAGCGGGCCATGTGCTATTGCTAAC +ATCATTACCGGAAGATGAATATTCAGCAGAGCAAGTGGCTGATTGTTACCGTCTGCGATGGCAAATTGAA +CTGGCTTTTAAGCGGCTCAAAAGTTTGCTGCACCTGGATGCTTTGCGTGCAAAGGAACCTGAACTCGCGA +AAGCGTGGATATTTGCTAATCTACTCGCCGCATTTTTAATTGACGACATAATCCAGCCATCGCTGGATTT +CCCCCCCAGAAGTGCCGGATCCGAAAAGAAGAACTAACTCGTTGTGGAGAATAACAAAAATGGTCATCTG +GAGCTTACAGGTGGCCATTCGTGGGACAGTATCCCTGACAGCCTACAAAACGCAATTGAAGAACGCGAGG +CATCGTCTTAACGAGGCACCGAGGCGTCGCATTCTTCAGATGGTTCAACCCTTAAGTTAGCGCTTATGGG +ATCACTCCCCGCCGTTGCTCTTACTCGGATTCGTAAGCCGTGAAAACAGCAACCTCCGTCTGGCCAGTTC +GGATGTGAACCTCACAGAGGTCTTTTCTCGTTACCAGCGCCGCCACTACGGCGGTGATACAGATGACGAT +CAGGGCGACAATCATCGCCTTATGCTGCTTCATTGCTCTCTTCTCCTTGACCTTACGGTCAGTAAGAGGC +ACTCTACATGTGTTCAGCATATAGGAGGCCTCGGGTTGATGGTAAAATATCACTCGGGGCTTTTCTCTAT +CTGCCGTTCAGCTAATGCCTGAGACAGACAGCCTCAAGCACCCGCCGCTATTATATCGCTCTCTTTAACC +CATTTTGTTTTATCGATTCTAATCCTGAAGACGCCTCGCATTTTTGTGGCGTAATTTTTTAATGATTTAA +TTATTTAACTTTAATTTATCTCTTCATCGCAATTATTGACGACAAGCTGGATTATTTTTGAAATATTGGC +CTAACAAGCATCGCCGACTGACAACAAATTAATTATTACTTTTCCTAATTAATCCCTCAGGAATCCTCAC +CTTAAGCTATGATTATCTAGGCTTAGGGTCACTCGTGAGCGCTTACAGCCGTCAAAAACGCATCTCACCG +CTGATGGCGCAAATTCTTCAATAGCTCGTAAAAAACGAATTATTCCTACACTATAATCTGATTTTAACGA +TGATTCGTGCGGGGTAAAATAGTAAAAACGATCTATTCACCTGAAAGAGAAATAAAAAGTGAAACATCTG +CATCGATTCTTTAGCAGTGATGCCTCGGGAGGCATTATTCTTATCATTGCCGCTATCCTGGCGATGATTA +TGGCCAACAGCGGCGCAACCAGTGGATGGTATCACGACTTTCTGGAGACGCCGGTTCAGCTCCGGGTTGG +TTCACTCGAAATCAACAAAAACATGCTGTTATGGATAAATGACGCGCTGATGGCGGTATTTTTCCTGTTA +GTCGGTCTGGAAGTTAAACGTGAACTGATGCAAGGATCGCTAGCCAGCTTACGCCAGGCCGCATTTCCAG +TTATCGCCGCTATTGGTGGGATGATTGTGCCGGCATTACTCTATCTGGCTTTTAACTATGCCGATCCGAT +TACCCGCGAAGGGTGGGCGATCCCGGCGGCTACTGACATTGCTTTTGCACTTGGTGTACTGGCGCTGTTG +GGAAGTCGTGTTCCGTTAGCGCTGAAGATCTTTTTGATGGCTCTGGCTATTATCGACGATCTTGGGGCCA +TCATTATCATCGCATTGTTCTACACTAATGACTTATCGATGGCCTCTCTTGGCGTCGCGGCTGTAGCAAT +TGCGGTACTCGCGGTATTGAATCTGTGTGGTGCACGCCGCACGGGCGTCTATATTCTTGTTGGCGTGGTG +TTGTGGACTGCGGTGTTGAAATCGGGGGTTCACGCAACTCTGGCGGGGGTAATTGTCGGCTTCTTTATTC +CTTTGAAAGAGAAGCATGGGCGTTCTCCAGCGAAGCGACTGGAGCATGTGTTGCACCCGTGGGTGGCGTA +TCTGATTTTGCCGCTGTTTGCATTTGCTAATGCTGGCGTTTCACTGCAAGGCGTCACGCTGGATGGCTTG +ACCTCCATTCTGCCATTGGGGATCATCGCTGGCTTGCTGATTGGCAAACCGCTGGGGATTAGTCTGTTCT +GCTGGTTGGCGCTGCGTTTGAAACTGGCGCATCTGCCTGAGGGAACGACTTATCAGCAAATTATGGTGGT +GGGGATCCTGTGCGGTATCGGTTTTACTATGTCTATCTTTATTGCCAGCCTGGCCTTTGGTAGCGTAGAT +CCAGAACTGATTAACTGGGCGAAACTCGGTATCCTGGTCGGTTCTATCTCTTCGGCGGTAATTGGATACA +GCTGGTTACGCGTTCGTTTGCGTCCATCAGTTTGACAGGACGGTTTACCGGGGAGCCATAAACGGCTCCC +TTTTCATTGTTATCAGGGAGAGAAATGAGCATGTCTCATATCAATTACAACCACTTGTATTACTTCTGGC +ATGTCTATAAAGAAGGTTCCGTGGTTGGCGCAGCGGAGGCGCTTTATTTAACTCCACAAACCATTACCGG +ACAGATTCGAGCGCTGGAAGAGCGCCTGCAAGGCAAATTATTTAAACGCAAGGGACGTGGTCTCGAACCC +AGCGAGCTGGGAGAACTGGTCTATCGCTATGCCGATAAAATGTTCACCTTAAGCCAGGAAATGCTGGATA +TTGTGAACTATCGCAAAGAATCCAATTTATTGTTTGACGTTGGCGTGGCTGATGCACTTTCCAAACGCCT +GGTCAGTAGCGTACTTAACGCCGCAGTGGTAGAAGGCGAGCCCATTCATCTTCGCTGCTTCGAATCCACC +CACGAAATGCTGCTGGAGCAATTAAGTCAGCATAAACTGGATATGATCATTTCTGACTGTCCGATAGACT +CTACGCAGCAGGAAGGCCTGTTCTCCGTGAGAATTGGCGAATGTGGCGTGAGTTTCTGGTGTACAAATCC +ACCACCAGAAAAACCGTTCCCGGCTTGTCTGGAAGAACGGCGACTTTTGATTCCTGGGCGACGTTCAATG +TTAGGGCGCAAATTGCTTAACTGGTTTAACTCCCAGGGATTAAACGTAGAAATCCTCGGCGAGTTTGATG +ATGCCGCTTTGATGAAAGCTTTTGGTGCGATGCACAATGCAATCTTCGTTGCCCCAACGCTTTATGCATA +TGACTTTTATGCCGATAAAACTGTCGTAGAAATTGGTCGCGTCGAGAATGTGATGGAAGAGTACCATGCT +ATTTTTGCTGAGCGGATGATTCAGCACCCGGCGGTACAGCGAATCTGCAATACGGATTATTCTGCGCTTT +TTAGTCCAGCGGTGCGTTAATCGGCAGCTCCCCCAAAGTTAAGGTGGGGGAGATAGATTAGTTGTACATT +ACCACGATTTTGACTCGGCTCATTATTTGCCCGCTTGAGACATTGTTTCCATATGTACGCGGGCGAATAA +ATAGAGGAATCTGATTACTTCCTTCATGGGGATGCTGAAAAGAGTAGTAATTGCTGGTAATGACTCCAAC +TTATTGATAGTGTTTTATGTTCAGATAATGCCCGATGACTTTGTCATGCAGCTCCACCGATTTTGAGAAC +GACAGCGACTTCCGTCCCAGCCGTGCCAGGTGCTGCCTCAGATTCAGGTTATGCCGCTCAATTCGCTGCG +TATATCGCTTGCTGATTACGTGCAGCTTTCCCTTCAGGCGGGATTCATACAGCGGCCAGCCATCCGTCAT +CCATATCACCACGTCAAAGGGTGACAGCAGGCTCATAAGACGCCCCAGCGTCGCCATAGTGCGTTCACCG +AATACGTGCGCAACAACCGTCTTCCGGAGACTGTCATACGCGTAAAACAGCCAGCGCTGGCGCGATTTAG +CCCCGACATAGCCCCACTGTTCGTCCATTTCCGCGCAGACGATGACGTCACTGCCCGGCTGTATGCGCGA +GGTTACCGACTGCGGCCTGAGTTTTTTAAGTGACGTAAAATCGTGTTGAGGCCAACGCCCATAATGCGGG +CTGTTGCCCGGCATCCAACGCCATTCATGGCCATATCAATGATTTTCTGGTGCGTACCGGGTTGAGAAGC +GGTGTAAGTGAACTGCAGTTGCCATGTTTTACGGCAGTGAGAGCAGAGATAGCGCTGATGTCCGGCGGTG +CTTTTGCCGTTACGCACCACCCCGTCAGTAGCTGAACAGGAGGGACAGCTGATAGAAACAGAAGCCACTG +GAGCACCTCAAAAACACCATCATACACTAAATCAGTAAGTTGGCAGCATCACCTACCTCAATGTGTATCA +CAATATCCATATTCTTTGTGGGGGAGTCTGGAGATTGAGTAGATATTCTTGTTCAGAATGTATCAGCCGA +TGGTTCTACGATTCTTAAGCCACGAAGAGTTCAGATAGTACAACGGCATGTCTCTTTTGACTATCTGGCA +ACCGGCAGTGTGTTCTCTCACGCATCACAAAAGCAGCAGGCATAAAAAAACCCGCTTGCGCGGGCTTTTT +CACAAAGCTTCAGCAAATTGGCGATTAAGCCAGTTTGTTGATCTGTGCAGTCAGGTTAGCCTTATGACGT +GCAGCTTTGTTTTTGTGGATCAGACCTTTAGCAGCCTGACGGTCCACGATCGGTTGCATTTCGTTAAATG +CTTTCTGTGCAGCAGCTTTGTCGCCAGCTTCGATAGCTGCGTATACTTTCTTGATGAAAGTACGCATCAT +AGAGCGACGGCTTGCGTTGTGCTTACGAGCCTTTTCAGACTGAATGGCGCGCTTCTTAGCTGATTTGATA +TTAGCCAAGGTCCAACTCCCAAATGTGTTCTATATGGACAATTCAAAGGCCGAGGAATATGCCCTTTTAG +CCTTCTTTTGTCAATGGATTTGTGCAAATAAGCGCCGTTAATGTGCCGGCACTCGTTACGTAGTGATGGC +GCAGGATTCTACCAGCTTGCGGGGTGTGAATACAGCTTTTCCGCGATAAAAATTGCAGCAGGCGGTCAGT +TTCTTCCCGTGATTTGCGCCATGGCAATGAAAAGCCACTTCTTTCTGATTTCGGTACTCAATCGCCGGTT +AACCTTGACCGCTGTACAAGGTATACTCGGACGATTTTCACTGTTTTGAGCCAGACATGAAGCTGATACG +CGGCATACATAATCTCAGCCAGGCCCCGCAAGAAGGGTGTGTGCTGACTATTGGTAATTTCGACGGCGTG +CATCGCGGTCATCGCGCGCTGTTACAGGGCTTGCAGGAAGAAGGGCGCAAGCGCAACTTACCGGTGATGG +TGATGCTTTTTGAACCTCAACCACTGGAACTGTTTGCTACCGATAAAGCCCCGGCAAGACTGACCCGGCT +GCGGGAAAAACTGCGTTACCTTGCAGAGTGTGGCGTTGATTACGTGCTGTGCGTGCGTTTCGACAGGCGT +TTCGCGGCGTTAACCGCGCAAAATTTCATCAGCGATCTTCTGGTGAAGCATTTGCGCGTAAAATTTCTTG +CCGTAGGTGATGATTTCCGCTTTGGCGCTGGTCGTGAAGGCGATTTCTTGTTATTACAGAAAGCTGGCAT +GGAATACGGCTTCGATATCACCAGTACGCAAACTTTTTGCGAAGGTGGCGTGCGCATCAGCAGCACCGCC +GTGCGTCAGGCCCTTGCGGATGACAATCTGGCTCTGGCAGAGAGTTTACTGGGGCACCCGTTTGCCATCT +CCGGGCGTGTAGTCCACGGTGATGAATTAGGGCGCACTATAGGTTTCCCGACGGCGAATGTACCGCTGCG +CCGTCAGGTTTCCCCGGTGAAAGGGGTTTATGCGGTAGAAGTGCTGGGCCTCGGTGAAAAGCCGTTACCC +GGCGTGGCAAACATCGGAACACGCCCAACGGTTGCCGGTATTCGCCAGCAGCTGGAAGTGCATTTGTTAG +ATGTTGCAATGGACCTTTACGGTCGCCATATACAAGTAGTGCTGCGTAAAAAAATACGCAATGAGCAGCG +ATTTGCGTCGCTGGACGAACTGAAAGCGCAGATTGCGCGTGATGAATTAACCGCCCGCGAATTTTTTGGG +CTAACAAAACCGGCTTAAGCCTGTTATGTAATCAAACCGAAATACGGAACCGAGAATCTGATGAGTGACT +ATAAATCAACCCTGAATTTGCCGGAAACAGGGTTCCCGATGCGTGGCGATCTCGCCAAGCGCGAACCCGG +AATGCTGGCGCGTTGGACTGATGATGATCTGTACGGCATCATCCGTGCGGCTAAAAAAGGCAAAAAAACC +TTCATTCTGCATGATGGCCCTCCTTATGCGAATGGCAGCATTCATATTGGTCACTCGGTTAACAAGATTC +TGAAAGACATTATCGTGAAGTCCAAAGGGCTTTCCGGTTATGACTCGCCGTATGTGCCTGGCTGGGACTG +CCACGGTCTGCCGATCGAGCTGAAAGTCGAGCAAGAATACGGTAAGCCGGGTGAGAAATTCACCGCCGCC +GAGTTCCGCGCCAAGTGCCGCGAATACGCGGCGACCCAGGTTGACGGTCAACGCAAAGACTTTATCCGTC +TGGGCGTGCTGGGCGACTGGTCGCACCCGTACCTGACCATGGACTTCAAAACTGAAGCCAACATCATCCG +CGCGCTGGGCAAAATCATCGGCAACGGTCACCTGCACAAAGGCGCGAAGCCAGTTCACTGGTGCGTTGAC +TGCCGTTCTGCGCTGGCGGAAGCGGAAGTTGAGTATTACGACAAAACTTCTCCGTCCATCGACGTTGCTT +TCCAGGCAGTCGATCAGGATGCACTGAAAGCAAAATTTGCCGTAAGCAACGTTAACGGCCCAATCTCGCT +GGTAATCTGGACCACCACGCCGTGGACTCTGCCTGCCAACCGCGCAATCTCTATTGCACCAGATTTCGAC +TATGCGCTGGTGCAGATCGACGGTCAGGCCGTGATTCTGGCGAAAGATCTGGTTGAAAGCGTAATGCAGC +GTATCGGCGTGACCGATTACACCATTCTCGGCACGGTAAAAGGTGCGGAGCTTGAGCTGCTGCGCTTTAC +CCATCCGTTTATGGGCTTCGACGTTCCGGCAATCCTCGGCGATCACGTTACCCTGGATGCCGGTACCGGT +GCCGTTCACACCGCGCCTGGCCACGGCCCGGACGACTATGTGATCGGTCAGAAATACGGCCTGGAAACCG +CTAACCCGGTTGGCCCGGACGGCACTTATCTGCCGGGCACTTATCCGACGCTGGATGGCGTGAACGTCTT +CAAAGCGAACGACATCGTCGTTGCGCTGCTGCAGGAAAAAGGCGCGCTGCTGCACGTTGAGAAAATGCAG +CACAGCTATCCGTGCTGCTGGCGTCACAAAACGCCGATCATCTTCCGCGCGACGCCGCAGTGGTTCGTCA +GCATGGATCAGAAAGGTCTGCGTGCGCAGTCACTGAAAGAGATCAAAGGCGTGCAGTGGATCCCGGACTG +GGGCCAGGCGCGTATCGAGTCGATGGTTGCTAACCGTCCTGACTGGTGTATCTCCCGTCAGCGCACCTGG +GGTGTACCGATGTCACTGTTCGTGCACAAAGACACGGAAGAGCTGCATCCGCGTACCCTTGAACTGATGG +AAGAAGTGGCAAAACGCGTTGAAGTCGATGGCATCCAGGCGTGGTGGGATCTCGATGCGAAAGAGATCCT +CGGCGACGAAGCTGATCAGTACGTGAAAGTGCCGGACACATTGGATGTATGGTTTGACTCCGGATCTACC +CACTCTTCTGTTGTTGACGTGCGTCCGGAATTTGCCGGTCACGCAGCGGACATGTATCTGGAAGGTTCTG +ACCAACACCGCGGCTGGTTCATGTCTTCCCTAATGATCTCCACCGCGATGAAGGGTAAAGCGCCGTATCG +TCAGGTACTGACCCACGGCTTTACCGTGGATGGTCAGGGCCGCAAGATGTCTAAATCCATCGGCAATACC +GTTTCGCCGCAGGATGTGATGAACAAACTGGGCGCGGATATTCTGCGTCTGTGGGTGGCATCAACCGACT +ACACCGGTGAAATGGCCGTTTCTGACGAGATCCTGAAACGTGCTGCCGATAGCTATCGTCGTATCCGTAA +CACCGCGCGCTTCCTGCTGGCAAACCTGAACGGTTTTGATCCAGCAAAAGATATGGTGAAACCGGAAGAG +ATGGTGGTACTGGATCGCTGGGCCGTAGGTTGTGCGAAAGCGGCACAGGAAGACATCCTCAAGGCGTACG +AAGCATACGATTTCCACGAAGTGGTACAGCGTCTGATGCGCTTCTGCTCCGTTGAGATGGGTTCCTTCTA +CCTCGACATCATCAAAGACCGTCAGTACACCGCCAAAGCGGACAGTGTGGCGCGTCGTAGCTGCCAGACT +GCGCTATATCACATCGCAGAAGCGCTGGTGCGCTGGATGGCACCAATCCTCTCCTTCACCGCTGATGAAG +TGTGGGGCTACCTGCCGGGCGAACGTGAAAAATACGTCTTCACCGGTGAGTGGTACGAAGGCCTGTTTGG +CCTGGCAGACAGTGAAGCGATGAACGATGCGTTCTGGGACGAGCTGTTGAAAGTGCGTGGCGAAGTGAAC +AAAGTCATTGAGCAAGCGCGTGCCGACAAGAAAGTGGGTGGCTCGCTGGAAGCGGCAGTAACCTTGTATG +CAGAACCGGAACTGTCGGCGAAACTGACCGCGCTGGGCGATGAATTACGATTTGTCCTGTTGACCTCCGG +CGCTACCGTTGCAGACTATAACGACGCACCTGCTGATGCTCAGCAGAGCGAAGTACTCAAAGGGCTGAAA +GTCGCGTTGAGTAAAGCCGAAGGTGAGAAGTGCCCACGCTGCTGGCACTACACCCAGGATGTCGGCAAGG +TGGCGGAACACGCAGAAATCTGCGGCCGCTGTGTCAGCAACGTCGCCGGTGACGGTGAAAAACGTAAGTT +TGCCTGATGAGTCAATCGATCTGTTCAACAGGGCTACGCTGGCTGTGGCTGGTGGTAGTCGTGCTGATTA +TCGATCTGGGCAGCAAATACCTGATCCTCCAGAACTTTGCTCTGGGGGATACGGTCCCGCTGTTCCCGTC +GCTTAATCTGCATTATGCGCGTAACTATGGCGCGGCGTTTAGTTTCCTTGCCGATAGCGGCGGCTGGCAG +CGTTGGTTCTTTGCCGGTATTGCGATTGGTATTAGCGTGATCCTGGCAGTGATGATGTATCGCTCGAAGG +CCACGCAGAAGCTAAACAATATCGCTTACGCGCTGATTATTGGCGGCGCGCTGGGCAACCTGTTCGACCG +CCTGTGGCACGGCTTCGTTGTCGATATGATCGACTTCTACGTCGGCGACTGGCACTTCGCCACCTTCAAC +CTTGCCGATACTGCCATCTGTGTCGGTGCGGCACTGATTGTGCTGGAAGGTTTTTTGCCTTCTAGAGCGA +AAAAACAATAATAAACCCTGCCGGATGCGATGCTGACGCATCTTATCCGGCCTACAGATTGCTGCGAAAT +CGTAGGCCGGATAAGGCGTTTACGCCGCATCCGGCAAAAATCCTTAAATATAAGAGCAAACCTGCATGTC +TGAATCTGTACAGAGCAATAGCGCCGTCCTGGTGCACTTCACGCTAAAACTCGACGATGGCACCACCGCC +GAGTCTACCCGCAACAACGGTAAACCGGCGCTGTTCCGCCTGGGTGATGCTTCTCTTTCTGAAGGGCTGG +AGCAACACCTGTTGGGGCTGAAAGTGGGCGATAAAACCACCTTCTCGTTGGAGCCAGATGCGGCGTTTGG +CGTGCCGTCACCGGACCTGATTCAGTACTTCTCCCGCCGTGAATTTATGGATGCAGGCGAGCCAGAAATT +GGCGCAATCATGCTTTTTACCGCAATGGATGGCAGTGAGATGCCTGGCGTGATCCGCGAAATTAACGGCG +ACTCCATTACCGTTGATTTCAACCATCCGCTGGCCGGGCAGACCGTTCATTTTGATATTGAAGTGCTGGA +AATCGATCCGGCACTGGAGGCGTAACATGCAGATCCTGTTGGCCAACCCGCGTGGTTTTTGTGCCGGGGT +AGACCGCGCTATCAGCATTGTTGAAAACGCGCTGGCCATTTACGGCGCACCGATATATGTCCGTCACGAA +GTGGTACATAACCGCTATGTGGTCGATAGCTTGCGTGAGCGTGGGGCTATCTTTATTGAGCAGATTAGCG +AAGTACCGGACGGCGCGATCCTGATTTTCTCCGCACACGGTGTTTCTCAGGCGGTACGTAACGAAGCAAA +AAGTCGCGATTTGACGGTGTTTGATGCCACCTGTCCGCTGGTGACCAAAGTGCATATGGAAGTCGCCCGC +GCCAGTCGCCGTGGCGAAGAATCTATTCTCATCGGTCACGCCGGGCACCCGGAAGTGGAAGGGACAATGG +GCCAGTACAGTAACCCGGAAGGGGGAATGTATCTGGTCGAATCGCCGGACGATGTGTGGAAACTGACGGT +CAAAAACGAAGAGAAGCTCTCCTTTATGACCCAGACCACGCTGTCGGTGGATGACACGTCTGATGTGATC +GACGCGCTGCGTAAACGCTTCCCGAAAATTGTCGGTCCGCGCAAAGATGACATCTGCTACGCCACGACTA +ACCGTCAGGAAGCGGTACGCGCCCTGGCAGAACAGGCGGAAGTTGTGTTGGTGGTCGGTTCGAAAAACTC +CTCCAACTCCAACCGTCTGGCGGAGCTGGCCCAGCGTATGGGCAAACGCGCGTTTTTGATTGACGATGCG +AAAGACATCCAGGAAGAGTGGGTGAAAGAGGTTAAATGCGTCGGCGTGACTGCGGGCGCATCGGCTCCGG +ATATTCTGGTGCAGAATGTGGTGGCACGTTTGCAGCAGCTGGGCGGTGGTGAAGCCATTCCGCTGGAAGG +CCGTGAAGAAAACATTGTTTTCGAAGTGCCGAAAGAGCTGCGTGTCGATATTCGTGAAGTCGATTAAGTC +ATTAGCAGCCTAAGTTATGCGAAAATGCCGGTCTTGTTACCGGCATTTTTTATGGAGAAAACATGCGTTT +ACCTATCTTCCTCGATACTGACCCCGGCATTGACGATGCCGTCGCCATTGCCGCCGCGATTTTTGCACCC +GAACTCGACCTGCAACTGATGACCACCGTCGCGGGTAATGTCTCGGTTGAGAAAACTACCCGCAATGCCC +TGCAACTGCTGCATTTCTGGAATGCGGAGATTCCGCTCGCCCAAGGGGCCGCTGTGCCACTGGTACGCGC +ACCGCGTGATGCGGCATCTGTGCACGGCGAATCGGGAATGGCTGGCTACGACTTTGTTGAGCACAACCGA +AAGCCGCTCGGGATACCGGCGTTTCTGGCGATTCGGGATGCCCTGATGCGTGCACCAGAGCCTGTTACCC +TGGTGGCCATCGGCCCGTTAACCAATATTGCGCTGTTACTTTCACAATGCCCGGAATGCAAGCCGTATAT +TCGCCGTCTGGTGATCATGGGTGGTTCTGCCGGACGCGGCAACTGTACGCCAAACGCCGAGTTTAATATT +GCTGCCGATCCAGAAGCTGCTGCCTGTGTCTTCCGCAGTGGTATTGAAATCGTCATGTGCGGTTTGGATG +TCACCAATCAGGCAATATTAACTCCTGACTATCTCTCTACACTGCCGCAGTTAAACCGTACCGGGAAAAT +GCTTCACGCCCTGTTTAGCCACTACCGTAGCGGCAGTATGCAAAGCGGCTTGCGAATGCACGATCTCTGC +GCCATCGCCTGGCTGGTGCGCCCGGACCTGTTCACTCTCAAACCCTGTTTTGTGGCAGTGGAAACTCAGG +GCGAATTTACCTCAGGCACGACGGTGGTTGATATCGACGGTTGCCTGGGCAAGCCAGCCAATGTACAGGT +GGCATTGGATCTGGATGTGAAAGGCTTCCAGCAGTGGGTGGCTGAGGTGCTGGCTCTGGCGTCGTAACCT +GTCACATGTTATTGGCATGCAGTCATTCATCGACTCATGCCTTTCACTGATATCCCTCCCTGTTTATCAT +TAATTTCTAATTATCAGCGTTTTTGGCTGGCGGCGTAGCGATGCGCTGGTTACTCTGAAAACGGTCTATG +CAAATTAACAAAAGAGAATAGCTATGCATGATGCAAACATCCGCGTTGCCATCGCGGGAGCCGGGGGGCG +TATGGGCCGCCAGTTGATTCAGGCGGCGCTGGCATTAGAGGGCGTGCAGTTGGGCGCTGCGCTGGAGCGT +GAAGGATCTTCTTTACTGGGCAGCGACGCCGGTGAGCTGGCCGGAGCCGGGAAAACAGGCGTTACCGTGC +AAAGCAGCCTCGATGCGGTAAAAGATGATTTTGATGTGTTTATCGATTTTACCCGTCCGGAAGGTACGCT +GAACCATCTCGCTTTTTGTCGCCAGCATGGCAAAGGGATGGTGATCGGCACTACGGGGTTTGACGAAGCC +GGTAAACAAGCAATTCGTGACGCCGCTGCCGATATTGCGATTGTCTTTGCTGCCAATTTTAGCGTTGGCG +TTAACGTCATGCTTAAGCTGCTGGAGAAAGCAGCCAAAGTGATGGGTGACTACACCGATATCGAAATTAT +TGAAGCACATCATAGACATAAAGTTGATGCGCCGTCAGGCACCGCACTGGCAATGGGAGAGGCGATCGCC +CACGCCCTTGATAAAGATCTGAAAGATTGCGCGGTCTACAGTCGTGAAGGCCACACCGGTGAACGTGTGC +CTGGCACCATTGGTTTTGCCACCGTGCGTGCAGGTGACATCGTTGGTGAACATACCGCGATGTTTGCCGA +TATTGGCGAGCGTCTGGAGATCACCCATAAGGCGTCCAGCCGTATGACATTTGCTAACGGCGCGGTAAGA +TCGGCTTTGTGGTTGAGTGGTAAGGAAAGCGGTCTTTTTGATATGCGAGATGTACTTGATCTCAATAATT +TGTAACCACAAAATATTTGTTATGGTGCAAAAATAACACATTTAATTTATTGATTATAAAGGGCTTTAAT +TTTTGGCCCTTTTATTTTTGGTGTTATGTTTTTAAATTGTCTATAAGTGCCAAAAATTACATGTTTTGTC +TTCTGTTTTTGTTGTTTTAATGTAAATTTTGACCATTTGGTCCACTTTTTTCTGCTCGTTTTTATTTCAT +GCAATCTTCTTGCTGCGCAAGCGTTTTCCAGAACAGGTTAGATGATCTTTTTGTCGCTTAATGCCTGTAA +AACATGCATGAGCCACAAAATAATATAAAAAATCCCGCCATTAAGTTGACTTTTAGCGCCCATATCTCCA +GAATGCCGCCGTTTGCCAGAAATTCGTCGGTAAGCAGATTTGCATTGATTTACGTCATCATTGTGAATTA +ATATGCAAATAAAGTGAGTGAATATTCTCTGGAGGGTGTTTTGATTAAGTCAGCGCTATTGGTTCTGGAA +GACGGAACCCAGTTTCACGGTCGGGCCATAGGGGCAACAGGTTCGGCGGTTGGGGAAGTCGTTTTCAATA +CTTCAATGACCGGTTATCAAGAAATCCTCACTGATCCTTCCTATTCTCGTCAAATCGTTACTCTTACTTA +TCCCCATATTGGCAATGTCGGCACCAATGACGCCGATGAAGAATCTTCTCAGGTACATGCACAAGGTCTG +GTGATTCGCGACCTGCCGCTGATTGCCAGCAACTTCCGTAATACCGAAGACCTCTCTTCTTACCTGAAAC +GCCATAACATCGTGGCGATTGCCGATATCGATACCCGTAAGCTGACGCGTTTACTGCGCGAGAAAGGCGC +ACAGAATGGCTGCATTATCGCGGGCGATAACCCGGATGCGGCGCTGGCGTTAGAAAAAGCCCGCGCGTTC +CCAGGTCTGAATGGCATGGATCTGGCAAAAGAAGTGACCACCGCAGAAGCCTATAGCTGGACACAAGGGA +GCTGGACGTTGACCGGTGGCCTGCCAGAAGCGAAAAAAGAAGACGAGCTGCCGTTCCACGTCGTGGCTTA +TGATTTTGGTGCCAAGCGCAACATCCTGCGGATGCTGGTGGATAGAGGCTGTCGCCTGACCATCGTTCCG +GCGCAAACTTCTGCGGAAGATGTGCTGAAAATGAATCCAGACGGCATCTTCCTCTCCAACGGTCCTGGCG +ACCCGGCCCCGTGCGATTACGCCATTACCGCCATCCAGAAATTCCTCGAAACCGATATTCCGGTATTCGG +CATCTGTCTCGGTCATCAGCTGCTGGCGCTGGCGAGCGGTGCGAAGACTGTCAAAATGAAATTTGGTCAC +CACGGCGGCAACCATCCGGTTAAAGATGTGGAGAAAAACGTGGTAATGATCACCGCCCAGAACCACGGTT +TTGCGGTGGACGAAGCAACATTACCTGCAAACCTGCGTGTCACGCATAAATCCCTGTTCGACGGTACGTT +ACAGGGCATTCATCGCACCGATAAACCGGCATTCAGCTTCCAGGGGCACCCTGAAGCCAGCCCTGGTCCA +CACGACGCCGCGCCGTTGTTCGACCACTTTATCGAGTTAATTGAGCAGTACCGTAAAACCGCTAAGTAAT +CAGGAGTAAAAGAGCCATGCCAAAACGTACAGATATAAAAAGTATCCTGATTCTGGGTGCGGGCCCGATT +GTTATCGGTCAGGCGTGTGAGTTTGACTACTCTGGCGCGCAAGCGTGTAAAGCCCTGCGTGAAGAGGGTT +ACCGCGTCATTCTGGTGAACTCCAACCCGGCGACCATCATGACCGACCCGGAAATGGCTGATGCAACCTA +CATCGAGCCGATTCACTGGGAAGTTGTACGCAAGATTATTGAAAAAGAGCGCCCGGACGCGGTGCTGCCA +ACGATGGGCGGTCAGACGGCGCTGAACTGCGCGCTGGAGCTGGAACGTCAGGGCGTGTTGGAAGAGTTCG +GTGTCACCATGATTGGTGCCACTGCCGATGCGATTGATAAAGCAGAAGACCGCCGTCGTTTCGACGTAGC +GATGAAGAAAATTGGTCTGGAAACCGCGCGTTCCGGTATCGCACACACGATGGAAGAAGCGCTGGCGGTT +GCCGCTGACGTGGGCTTCCCGTGCATTATTCGCCCATCCTTTACCATGGGCGGTAGCGGCGGCGGTATCG +CTTATAACCGTGAAGAGTTTGAAGAAATTTGCGCCCGCGGTCTGGATCTCTCTCCGACCAAAGAGTTGCT +GATTGATGAGTCGCTGATCGGCTGGAAAGAGTACGAGATGGAAGTGGTGCGTGATAAAAACGACAACTGC +ATCATCGTCTGCTCTATCGAAAACTTCGATGCGATGGGCATCCACACCGGTGACTCCATCACTGTCGCGC +CAGCCCAAACGCTGACCGACAAAGAATATCAAATCATGCGTAACGCCTCGATGGCGGTGCTGCGTGAAAT +CGGCGTTGAAACCGGTGGTTCCAACGTTCAGTTTGCGGTGAACCCGAAAAACGGTCGTCTGATTGTTATC +GAAATGAACCCACGCGTGTCCCGTTCTTCGGCGCTGGCGTCGAAAGCGACCGGTTTCCCGATTGCTAAAG +TGGCGGCGAAACTGGCGGTGGGTTACACCCTCGACGAACTGATGAACGACATCACTGGCGGACGTACTCC +GGCCTCCTTCGAGCCGTCCATCGACTATGTGGTTACTAAAATTCCTCGCTTCAACTTCGAAAAATTCGCC +GGTGCTAACGACCGTCTGACCACTCAGATGAAATCGGTTGGCGAAGTGATGGCGATTGGTCGCACGCAGC +AGGAATCCCTGCAAAAAGCGCTGCGCGGCCTGGAAGTCGGTGCGACTGGATTCGACCCGAAAGTGAGCCT +GGATGACCCGGAAGCGTTAACCAAAATCCGTCGCGAACTGAAAGACGCAGGCGCAGATCGTATCTGGTAC +ATCGCCGATGCGTTCCGTGCGGGCCTGTCTGTGGACGGCGTCTTCAACCTGACCAACATTGACCGCTGGT +TCCTGGTACAGATTGAAGAGCTGGTGCGTCTGGAAGAGAAAGTGGCGGAAGTGGGCATCACTGGCCTGAA +CGCTGACTTCCTGCGCCAGCTGAAACGCAAAGGCTTTGCCGATGCGCGCTTGGCAAAACTGGCGGGCGTA +CGCGAAGCGGAAATCCGTAAGCTGCGTGACCAGTATGACCTGCACCCGGTTTATAAGCGCGTGGATACCT +GTGCGGCAGAGTTCGCCACCGACACCGCTTACATGTACTCCACTTATGAAGAAGAGTGCGAAGCGAATCC +GTCTACCGACCGTGAAAAAATCATGGTGCTTGGCGGCGGCCCGAACCGTATCGGTCAGGGTATCGAATTC +GACTACTGTTGCGTACACGCCTCGCTGGCGCTGCGCGAAGACGGTTACGAAACCATTATGGTTAACTGTA +ACCCGGAAACCGTCTCCACCGACTACGACACTTCCGACCGCCTCTACTTCGAGCCGGTAACTCTGGAAGA +TGTGCTGGAAATCGTGCGTATCGAGAAGCCGAAAGGCGTTATCGTCCAGTACGGCGGTCAGACCCCGCTG +AAACTGGCGCGCGCGCTGGAAGCTGCTGGCGTACCGGTTATCGGCACCAGCCCGGATGCTATCGACCGTG +CAGAAGACCGTGAACGCTTCCAGCATGCGGTTGAGCGTCTGAAACTGAAACAACCGGCGAACGCCACCGT +TACCGCTATTGAAATGGCGGTAGAGAAGGCGAAAGAGATTGGCTACCCGCTGGTGGTACGTCCGTCTTAC +GTTCTCGGCGGTCGGGCGATGGAAATCGTCTATGACGAAGCTGACCTGCGTCGCTACTTCCAGACGGCGG +TCAGCGTGTCTAACGATGCGCCAGTGTTGCTGGACCACTTCCTCGATGACGCGGTAGAAGTTGACGTGGA +TGCCATCTGCGACGGCGAAATGGTGCTGATTGGCGGCATCATGGAGCATATTGAGCAGGCGGGCGTGCAC +TCCGGTGACTCCGCATGTTCTCTGCCAGCCTACACCTTAAGTCAGGAAATTCAGGATGTGATGCGCCAGC +AGGTGCAGAAACTGGCCTTCGAATTGCAGGTGCGCGGCCTGATGAACGTGCAGTTTGCGGTGAAAAACAA +CGAAGTCTACCTGATTGAAGTTAACCCGCGTGCGGCGCGTACCGTTCCGTTCGTCTCCAAAGCCACCGGC +GTACCGCTGGCAAAAGTGGCGGCGCGCGTGATGGCTGGCAAATCGCTGGCTGAGCAGGGCGTAACCAAAG +AAGTTATCCCGCCGTACTACTCGGTGAAAGAAGTGGTGCTGCCGTTCAATAAATTCCCGGGCGTTGACCC +GCTGTTAGGGCCAGAAATGCGCTCTACCGGGGAAGTCATGGGCGTGGGCCGCACCTTCGCTGAAGCGTTT +GCCAAAGCGCAGCTGGGCAGCAACTCCACCATGAAGAAACACGGTCGTGCGCTGCTTTCCGTGCGCGAAG +GCGATAAAGAACGCGTGGTGGACCTGGCGGCAAAACTGCTGAAACAGGGCTTCGAGCTGGATGCGACCCA +CGGCACGGCGATTGTGCTGGGCGAAGCAGGTATCAACCCGCGTCTGGTAAACAAGGTGCATGAAGGCCGT +CCGCACATTCAGGACCGTATCAAGAATGGCGAATATACCTACATCATCAACACCACCTCAGGCCGTCGTG +CGATTGAAGACTCCCGCGTGATTCGTCGCAGTGCGCTGCAATATAAAGTGCATTACGACACCACCCTGAA +CGGCGGCTTTGCCACCGCGATGGCGCTGAATGCCGATGCGACTGAAAAAGTAATTTCGGTGCAGGAAATG +CACGCACAGATCAAATAATAGCGTGTCATGGCAGATATTTTTCATCCGCTAATTTGATCGAATAACTAAT +ACGGTTCTCTGATGAGGACCGTTTTTTTTTGCCCATTAAGTAAATCTTTTGGGGAATCGATATTTTTGAT +GACATAAGCAGGATTTAGCTCACACTTATCGACGGTGAAGTTGCATACTATCGATATATCCACAATTTTA +ATATGGCCTTGTTTAATTGCTTCAAAACGAGTCATAGCCAGACTTTTAATTTGTGAAACTGGAGTTCGTA +TGTGTGAAGGATATGTTGAAAAACCACTCTACTTGTTAATCGCCGAATGGATGATGGCTGAAAATCGGTG +GGTGATAGCAAGAGAGATCTCTATTCATTTCGATATTGAACACAGCAAGGCGGTTAATACCCTGACTTAT +ATTCTGTCGGAAGTCACAGAAATAAGCTGCGAAGTTAAGATGATCCCTAATAAGCTGGAAGGGCGGGGAT +GCCAGTGTCAGCGACTGGTTAAAGTGGTCGATATCGATGAGCAAATTTACGCGCGCCTGCGCAATAACAG +TCGGGAAAAATTAGTCGGTGTAAGAAAGACGCCGCGTATTCCTGCCGTTCCGCTCACGGAACTTAACCGC +GAGCAGAAGTGGCAGATGATGTTGTCAAAGAGTATGCGTCGTTAATTTTATCTCGTTGATACCGGGCGTC +CTGCTTGCCAGATGCGATGTTGTAGCATCTTATCCAGCAACCAGGTCGCATCCGGCAAGATCACCGTTTA +GGCGTCACATCCGTCGTCCCCTGCAAACGGGGGCGATTTTCCTCCATTTGCCTCAGTGGCTGCGTTTCAT +GTAACGATACATGACAGCGCCCGACAAGATCCTGATACTCTTTGGTATTCAACCGTTTCCAGTGTAACTC +GTCGTCACTAACATTGCGTACAGCGCGGGCTGGCGTACCCATCAACAACTGGCGTTTCTCGCCGCGAAAG +CCCGCTTTGACAAAGCTCATGGCGGCAACAATGCTCTCTTCGCCAATGACCGCGCCATCCATAATCACGC +TGTTCATCCCGACCAATGCATCGCGACCAATCAAACAACCATGCAGGATCGCTCCGTGCCCGATATGGCC +GTTTTCCCCAACGATAGTGTCAGTGTCGCAGTAGCCATGCATAATGCAGCCATCCTGAATATTGGCTCCC +GCTTGCACGATCAACCGCCCGTAGTCACCACGCAGTGAGGCGAGTGGGCCGATGTAGACACCGGCTCCCA +CAATCACATCGCCAATCAAGACGGCACTGGGATGGACAAACGCCGTCGGGTGAACCACCGGAATTAACCC +CTCAAAGGCGTAATAGCTCACGGTTGTTAACGTCCTTTCCACACCGGATCGCGCTTCTCGGCAAACGCCA +GCGGCCCTTCAATGGCATCTTCCGAATGCAGAACCGATGGATAGTGTTTCAACACGCCGCTGCGAATATA +GCGATACGCTTCTTCTACCGGCATTTCGCTGGTGGTGCGGTAGATCTCTTTCAGCGCCGCAATCGCCAGC +GGGGCGCTGTTAACCAGCTGCTGAGCCAGTTCGCGGGCGTTATCCATCAGTTCCGCCTGGCTAACCACGC +GGTTGACTATCCCCCAACGCAGCGCCTCTTCTGCGCCCATTCGTCTGCCGGTCATCACCATTTCATTGAC +GATGGCAGGCGGCAGGATCTTCGGCAGACGCAGCACACCGCCGCTGTCAGGAACGATGCCCAGTTTGGCT +TCCGGCAGGGCGAAGCTGGCGTTATCGGCACAAACAATAAAATCTGCCGCCAGCGCCAGTTCAAAGCCGC +CGCCAAAGGCATAGCCGTTCACAGCTGCGATAACCGGTTTGTCGAGATTGAAAATTTCGGTTAATCCCGC +AAAACCACCCGGACCAAAGTCAGCATCCGGTGCTTCGCCTTCTGCTGCCGCTTTTAAATCCCAGCCCGCG +GAAAAGAACTTCTCTCCGGCACCGGTAATAATGGCGACACGTAATTGCGGATCGTCACGGAAATTTAGAA +ATACTTCGCCCATTTCAAAGCTGGTTTTTGCATCAATAGCATTCGCTTTTGGACGATCAAGGGTAATTTC +CAGAATTGATCCATTGCGGGTCAGATGTAATGATTCACTCATTCCTTTTCTCCATTTTTGCTTTTTCAGG +GACGACAACATCCCTGCAAAAAATGCATATTGTTTTAGAGTGTGATTATTAGCTGGCAGGGTAGTTCCCT +GCTGTTTCATTTATTTCAGATTCTTTCTAATTATTTTCCCCGAGCAATTACGTGGCAGATCTTTTCTGAT +CTCCAGATAAGAGGGCACTTTAAATTTCGCCATATTTTGTTCGCAGAAGCGGAAAAATTCCTCTTCGCTC +AATGTTTCACCTTCATTCAGCACCACAAATGCTTTGATGGCTTCATCGCGAATCGAATCTTTAATACCCA +CAACCACGATGTCCTGAATTTTCGGGTGCGCGGCGATAATATTTTCCAGCTCCACGCAGGAGACATTCTC +GCCGCCACGTTTAATCATATTGCAGCGGCGATCGACGAAATAAAAAAAGTCCTCTTCGTCGCGGTATCCG +GTATCGCCGGTATGCAGCCAGCCATCGGCTTCCAGCACTTTCGCAGTGGCTTGTGGGTTGAGAAAGTACT +CTTTGAAGATGGTTTTCCCAGGTATGCCTTTAATGCAGATTTCACCGATCTCACCAGCCGGGAGCGGGCG +ATTGTGATCGTCGCGGATCTCCGCTTCGTAGCAAAACCCCACCCGACCAATCGACGGCCAGCGTCGTTTA +TCGCCAGGACGATCGCCGATAATGCCCACAATGGTTTCCGTCATCCCATAAGACGTCAGCAAGCGAACGC +CGAAGCGTTCACAAAACGCATCTTTTTCCTGCTCCGACAAGTTGAGATAAAACATCACTTCCCGCAGGCG +GTGTTGCTGATCGTTCGCTGAAGGCGGCTGTACCATCAACGTACGGATCATCATCGGAATACATTCGGTA +ACGGTGGCGCGGTACTTCTGTACCTGTCCCCAGAAGGCGCGGGCGCTGTATTTCTCGACCAGCACAAAGG +TGGCCCCGGCAGAAAACGCCGCCATCGCCGCAGTACACTGGCAATCGATATGAAACGCAGGCATTACCGT +CAGGTAGACGTCATCGTCACGCAGTGCACACTGCCAGGCGGAGTAATATCCAGCGAAGCGCAGGTTGTAA +TGGGTAATCACCACACCTTTCGGTCGGGAGGTGGTGCCGGAGGTGAAGAGAATTTCCGCCGTATCGTCAG +TCGATAGCGGCGGTGCATAGCACAAGGTGGCAGGTTGTTGATTTTTCAGTTGAGTAAACGAACTCACGCC +ATCATCAGCGGGAAGTGCCACATCTGTCAGGCAAATGTGCCGCAATTGAGTGGCATCTTCCTGCTGAATC +TGTTGATACATAGGATAGAATTGCGCACTGGTCACCAGCAGGCACGCCTGGCTATTTTGCAGGATCCACG +CGCTTTCCTCGCACAACAGGCGGGCGTTAATCGGCACCATAATCGCGCCAATTTTTGCCAGCCCGAACCA +GCAAAAGATAAATTCCGGGCAGTTGTCGAGATGTAGTGCAACCTTGTCGCCTTTGCGAATCCCCAGCGTA +TAAAACAGGTTTGCCGTGCGGTTAATCTCCTGATTTAACTCAAGATAACTATACCGGTTAACGACTCCGC +CGCTGGATTCACAAATCAGCGCCGTTTTATGACCGTAAACGTCCGCAAGATCGTCCCACATTTGACGTAG +ATGTTGTCCGCCAATGATATCCATTGCACCTCTATCCATTTTTGTTCGTTTGTTATTGGGCGGGCGCTAG +TCAGGCAAGCCGACTGACGCCACGCGTTTAGTCCTCAACTTTGGCCAGACCTTTGCTGACCAACTCCTGA +ATGTCGTTTTCGCTGTAGCCGATATTTTTCAAAATGGCAGCCGTGTCCATGCCATGTGAGGGCATTCCGC +GCCAGATTTGTCCGGGGTTATTTTTGAATTTCGGCATGATGTTCGGCCCTTTGCAGGTGCGACCATCCAT +CGTTTGCCACTGAGTGATTGATTCGCGAGCCACATACTGTGGATTGCTTTCCAGTTCCGGTACGGTCAGC +ACTTTGGCGCAGGCGATATTCAGTTCAGCAAAGCGTTCTTTTACTTCCGCGATGGTATGTGTCGCCAGCC +AGGCATCGAGTTTCTCTTCAACCAGTGGGCCGTAAGGGCATTCGATACGGTGGATAAGCTGAGTGCCTTC +CGGGATTTCTGGCGTGCCAAGCAGATGTGCGAGGCCAATATCTTTAAAGCACTCTTCAATTTGGGTAATG +CCCACCAGTTCCATCACGATGTAGCCGTCGGCACATTTATACAGACCGCAACCGGCGTAGTAGGGATCTT +TACCTTTGCTCATGCGCGGGCACATTTCGCCGCCGTTGAAGTAATCCATCATGAAGTACTGGCCCATACG +CAGCATCACTTCATACATGGCGATGTCGATACTTTCGCCTTTACCGGTTTCACGCACTTTATGCAGTGCT +GCCAGCGCCGCCGTGGTGGCGGTCAGGCCAGAAAAGTAATCGGCGGTATACGGGAAGGCAGGCATTGGCT +GGTCAACATCACCGTTCTGAATCAGGTAACCACTAAAGGCCTGGGCGATAGTGTTATAGGCCGGAAGATT +GGTGTACTCCTCGGTGCCGTACTGACCAAAACCGGACAGGTGAGCGATAACCAGTTTCGGGTTGTGCTGC +CACAGTACTTCATCGGTAATGCCACGACGGGCAAAGGCCGGACCTTTACTGGCTTCGATGAAGATATCGG +TGGTTTCCATTAATTTCAGAAACGCTTCGCGGCCTTCATCTTTGAAAATATTTAACGACAGCGCGTGCAA +ATTGCGGCGGGAGAGTTGCGGGTAGTTCGGTTGAACGCGAATGGTGTCGGCCCAGGCGACGTTCTCGATC +CAGATAACTTCCGCGCCCCATTCTGCGAACATTTGCCCGGCAAACGGTCCGGCGATTTCGATACCGGAGA +AGACAACGCGCAATCCGGCCAACGGCCCGAATTTCGGCATGGGTAGATGATCCATTATTTGCTCCTGAAA +AATTTATGTAGCGCATGACTGCCGGATGCGGCGTAAACGCTTTATCCGGCCTACATTCGTGCTCCCGTAG +GCCTGATAAGACGCATCAGCGTCGCATCAGGCAGCGCACGGACTTAGCGGTATTGCTTCAGCACCGCACG +ACCCAGCGTCAGGATCTGCATTTCGTCAGATCCCCCGGAGACGCGGTCTACACGCAGATCACGCCAGAAG +CGGCTGATGCGGTGGTTGCCCGCAATCCCGACACCGCCCAGCACCTGCATTGCGCTATCCACAACTTCAA +ATGCCGCATTGGCGCAGAAGTATTTGCACATCGCTGCATCGCCAGAGGTGATGGTGCCGTTGTCTGCTTT +CCACGCTGCTTCATACAGCATGTTTTTCATGGAGTTTAATTTGATCGCCATGTGGGCGAATTTTTCCTGA +ATCAACTGGAAACGACCAATAGCCTCGCCAAACTGCACGCGCTGATTGGCGTAGCGCGCCGCATCTTCAA +AGGCGCACATCGCCGTACCGTAGTTGGTGAGGGCTACCAGGAAACGTTCATGGTCGAACTCTTCTTTGAC +GCGGTTAAAGCCGTTACCTTCCCGACCGAACATGTCTTTCTCGTCCAGTTCCACGTCGTCAAAGGTGATT +TCACAGCAGCTATCCATACGCAGACCGAGCTTTTCAAGTTTGGTCACTTTGATGCCCGGTTTGCTCATAT +CAACAAACCATTCGGTGTAGACAGGTTTGTCCGGAGAAGCCCCGTCGCGCGCCATCACCACGATGTACGG +GGTGTAGGCGCTGCTGGTAATAAAACACTTACTACCATTAAGATAAATCTTACCATTTCTACGGGTATAA +GTCGTTTTCAGGCTACCCACGTCGGAGCCCGCGCCCGGTTCGGTAATCGCTGAGTTCCACATCTGCTTAC +CGGTGCCGCGGAAAGCCATAATTTTGTCGATCTGCTCTTGTGTGCCTTCGCGCAGGAAGGTGTTGAACCC +GCCCGGCAACTGGTACAGCACATAGGTTGGTGCCCCCAGACGTCCCAGCTCCATCCACACGGCGGCGAGA +GTAACAAACCCCGCGTCCAGACCACCGTGCTCTTCAGGGATCAGCAGACTGTCGATACCCATATCCGCCA +GTGCTTTGACAAAACGTTCCGGGTAGACGCTGTCACGGTCGCACTCGGCAAAATAGGCCTCCCAGTTTTC +GCTGGCCATCAGTTCGCGGATACCGGCGACAAACAGTTCCTGCTCATCATTTAAATTAAAATCCATCTTT +CAACCTCTTGATATTTTGGGGGTTAATTAATCTTTCCAGTTCTGTTTCGCGTCTTTAATAAAGGAGAGCG +TCACCATAATGTTGACGAAGAACAGCGGGCATCCTCCGGCGATAATGGCGGTTTGAATCGGTTTCAGGCC +GCCGAGCGCCAGCAGAACAATACCGATAATGCCAACCAGAATTGACCAACCGATACGCACCAGCAGAGGT +GGTTCTTCACCATCGCGTACTTCGCGGCAAGTGGACATCGCCAGGGTATAAGAGCAGGCGTTAACCAGCG +TAACGGTGGCAATAAAGCAGAGGATGAAGAAGCCCCACATGGTGGCGGTGCTGAGTGGCAGAGCGGCCCA +GGTTTCAATGATGGCGCGCGCCACACCGTACTGTTCGATCAGATTTGGAATGTTGATGATGTTTTTATCT +ATCAACAGCAGAGTGTTACTACCGAGTACAGTCCACAGGATCCAGGTTGACGCTGTCAGCCCCAGCACCA +TGCCGAAGCACAGTTCACGCACAGTACGACCACGGGAGATGCGGGCGAGGAAGATACTCATCTGGATAGC +ATAAATCACCCACCATGCCCAGTAGAACACGGTCCAGCCCTGCGGGAAGCCGCCTTTAGCGATGGGATCG +GTATAGAACAACATGCGCGGCAGATACATCAGCAACATCCCCACCGAATCGGTGAAGTAGTTCATGATGA +AGCTGGCACCGCTGACAATGAACACCCAACCCAGCATCAGGAAGCTCAGGTAACTACGCACGTCACTGGC +GATACGTACCCCTTTTTGCAGACCGCAAGCGACGCAAATGGCGTTGAGGATAATCCAGCAGGTAATGATG +ATAGCGTCCAGTTGCAGGGTATGCGGAATGCCAAACAACCATTGCATACACTCGGTCACCAGCGGCGTGG +CAAGGCCCAGACTGGTACCCATCGCGAAGATCAAGGCGACGAGATAGAAGTTGTCGACGATAGTGCCGAA +CAACCCTTTGGCGTGTTTTTCACCTACCAGCGGCACCAGTGTCGAGCTGGGGCGAATCACTTCCATTTTG +CGGACAAAGAAGAAGTAAGCGAAGGCGACTGAAAGGAAGCTGTAAGTGGCCCACGGCAGAGGTCCCCAGT +GGAACAAGCTGTAAGCCAGCCCCAACTCTTTCGCCCCTGTCGAGTTCGGTTCTAAGCCAAACGGCGGGGT +GGAGATGTAGTAGTAGATCTCAATCGATCCCCAGAACAGTACGGCAGCAGACGTACAGGAGGCGAACATC +ATAAAGATCCAACTGGCGGTGCTAAATTCTGGCGGTTCGTTACCTAAACGCTTTTTGGCATACGGGCCAA +ACACCAGCCAGAACCAACCGAAAAGCATCACCACCATATACCATTCAAATGCCCATCCCCATACATTGGT +GACGTAACTGAATACAGCATTAATAACGACATTCGCTGCATCCAGATCTCTGACTGTAAGCCAACAAAGT +ATGCCGACGATTATTAACGGCGGAAAGAAAACCTTCGGTTCTATTCCCGTTTTTCTCTTTTCATTCTTCA +TGAGTTAATTCCACTGTGAAAACGAATATTTATTTTGCGTTCCCGTTTGTTTTATTTTTGTTAACATTTA +ATATAATTATTATTAACCTCGTGGACGCGTTAATGGCTAACTCATAATGGGTATTCAATAAGCTGTATTC +TGTGATTGGTATCACATTTTTGTTTCGGGTGAATAGAGGGCGTTTTTTCGTTAATTTTGATTAATAATCA +GTTTGTTATGCTCTGTTGTGAGTAAAAAATAACATCTGACTTTCAATATTGGTGATCCATAAAACAATAT +TGAAAATTTCTTTTTGCTACGCCGTGTTTTCAATATTGGTGAGGAACTTAACAATATTGAAAGTTGGATT +TATCTGCGTGTGACATTTTCAATATTGGTGATTAAAGTTTTATTTCAAAATTAAAGGGCGTGATATCTGT +AATTAACACCACCGATATGAACGACGTTTCCTTCATGATTTCTGGAGATGCAATGAAGATTATTACTTGC +TATAAGTGCGTGCCTGATGAACAGGATATTGCGGTCAATAATGCTGATGGTTCATTAGACTTCAGCAAAG +CCGATGCCAAAATAAGCCAATACGATCTCAACGCTATTGAAGCGGCTTGCCAGCTAAAGCAACAGGCAGC +AGAGGCGCAGGTGACAGCCTTAAGTGTGGGCGGTAAAGCCCTGACCAACGCCAAAGGGCGTAAAGATGTG +CTATCGCGCGGCCCGGATGAACTGATTGTGGTGATTGATGACCAGTTCGAGCAGGCACTGCCGCAACAAA +CGGCGAGCGCACTGGCTGCAGCCGCCCAGAAAGCAGGCTTTGATCTGATCCTCTGTGGCGATGGTTCTTC +CGACCTTTATGCCCAGCAGGTTGGTCTGCTGGTGGGCGAAATCCTCAATATTCCGGCAGTTAACGGCGTC +AGCAAAATTATCTCCCTGACGGCAGATACCCTCACCGTTGAGCGCGAACTGGAAGATGAAACCGAAACCT +TAAGCATTCCGCTGCCTGCGGTTGTTGCTGTTTCCACTGATATCAACTCCCCACAAATTCCTTCGATGAA +AGCCATTCTCGGCGCGGCGAAAAAGCCCGTCCAGGTATGGTCGGCGGCGGATATTGGTTTTAACGCAGAG +GCAGCCTGGTCAGAACAACAGGTTGCCGCGCCGAAACAGCGCGAACGTCAGCGCATCGTGATTGAAGGCG +ACGGCGAAGAACAGATCGCCGCATTTGCTGAAAATCTTCGCAAAGTCATTTAATTACAGGGGATGCTATG +AACACGTTTTCTCAAGTCTGGGTATTCAGCGATACCCCTTCTCGTCTGCCGGAACTGATGAACGGTGCGC +AGGCTTTAGCTAATCAAATCAACACCTTTGTCCTCAATGATGCCGACGGCGCACAGGCAATCCAGCTCGG +CGCTAATCATGTCTGGAAATTAAACGGCAAACCGGACGATCGGATGATCGAAGATTACGCCGGTGTCATG +GCTGACACTATTCGCCAGCACGGCGCAGACGGCCTGGTGCTGCTGCCAAACACCCGTCGCGGCAAATTAC +TGGCGGCAAAACTGGGTTATCGCCTTAAAGCGGCGGTGTCTAACGATGCCAGCACCGTCAGCGTACAGGA +CGGTAAAGCGACAGTGAAACACATGGTTTACGGTGGTCTGGCGATTGGCGAAGAACGCATTGCCACGCCG +TATGCGGTACTGACCATCAGCAGCGGCACGTTCGATGCGGCTCAGCCAGACGCGTCACGCACTGGCGAAA +CGCACACCGTGGAGTGGCAGGCTCCGGCTGTGGCGATTACCCGCACGGCAACCCAGGCGCGCCAGAGCAA +CAGCGTCGATCTCGACAAAGCCCGTCTGGTGGTCAGCGTCGGTCGCGGTATTGGCAGCAAAGAGAACATT +GCGCTGGCAGAACAGCTTTGCAAGGCGATAGGTGCGGAGTTGGCCTGTTCTCGTCCGGTGGCGGAAAACG +AAAAATGGATGGAGCACGAACGCTATGTCGGTATCTCCAACCTGATGCTGAAACCTGAACTGTACCTGGC +GGTGGGGATCTCCGGGCAGATCCAGCACATGGTTGGCGCTAACGCGTCGCAAACCATTTTCGCCATCAAT +AAAGATAAAAATGCGCCGATCTTCCAGTACGCGGATTACGGCATTGTTGGCGACGCCGTGAAGATCCTTC +CGGCGCTGACCGCAGCTTTAGCGCGTTGATCCACTCTGGCAGGGCTGCATTTTGGCCCTGCCGCTGACAG +GGAGCTCTTATGTCCGAAGATATCTTTGACGCCATCATCGTCGGTGCAGGGCTTGCCGGTTCGGTTGCCG +CACTGGTGCTCGCCCGCGAAGGTGCGCAAGTGTTAGTTATCGAGCGTGGCAATTCCGCAGGTGCCAAGAA +CGTCACCGGCGGGCGTCTCTATGCCCACAGTCTGGAACACATTATTCCTGGTTTCGCCGACTCCGCCCCC +GTAGAACGCCTGATCACCCATGAAAAACTCGCGTTTATGACGGAAAAGTCAGCGATGACTATGGACTACT +GCAATGGTGACGAAACCTCGCCATCCCAGCGTTCTTACTCCGTTTTGCGCAGTAAATTTGATGCCTGGCT +GATGGAGCAGGCCGAAGAAGCGGGCGCGCAGTTAATTACCGGGATCCGCGTCGATAACCTCGTACAGCGC +GATGGCAAAGTCGTCGGTGTAGAAGCCGATGGCGATGTGATTGAAGCGAAAACGGTGATCCTTGCTGATG +GGGTGAACTCCATCCTTGCCGAAAAATTGGGGATGGCAAAACGCGTCAAACCGACGGATGTGGCGGTTGG +CGTGAAGGAACTGATCGAGTTACCGAAGTCGGTTATTGAAGACCGTTTTCAGTTGCAGGGTAATCAGGGG +GCGGCTTGCCTGTTTGCGGGATCACCCACCGATGGCCTGATGGGCGGCGGCTTCCTTTATACCAATGAAA +ACACCCTGTCGCTGGGGCTGGTTTGTGGTTTGCATCATCTGCATGACGCGAAAAAATCGGTGCCGCAAAT +GCTGGAAGATTTCAAACAGCATCCGGCCGTTGCACCGCTGATCGCGGGCGGCAAGCTGGTGGAATATTCC +GCTCACGTAGTGCCGGAAGCAGGCATCAACATGCTGCCGGAGTTGGTTGGTGACGGCGTATTGATTGCCG +GTGATGCCGCCGGAATGTGTATGAACCTCGGTTTTACCATTCGCGGTATGGATCTGGCGATTGCCGCCGG +GGAAGCCGCAGCAAAAACCGTGCTTTCAGCGATGAAAAGCGACGATTTCAGTAAGCAAAAACTGGCGGAA +TATCGTCAGCATCTTGAGAGTGGTCCGCTGCGCGATATGCGTATGTACCAGAAACTACCGGCGTTCCTTG +ATAACCCACGCATGTTTAGCGGCTACCCGGAGCTGGCGGTGGGTGTGGCGCGTGACCTGTTCACCATTGA +TGGCAGCGCGCCGGAACTGATGCGCAAGAAAATCCTCCGCCACGGCAAGAAAGTGGGCTTCATCAATCTA +ATCAAGGATGGCATGAAAGGAGTGACCGTTTTATGACTTCTCCCGTCAATGTGGACGTCAAACTGGGCGT +CAATAAATTCAATGTCGATGAAGAGCATCCGCACATTGTTGTGAAGGCCGATGCTGATAAACAGGCGCTG +GAGCTGCTGGTGAAAGCGTGCCCCGCAGGTCTGTACAAGAAGCAGGATGACGGCAGTGTGCGCTTCGATT +ACGCCGGATGTCTGGAGTGCGGCACCTGTCGCATTCTGGGGCTGGGGTCGGCGCTGGAACAGTGGGAATA +CCCGCGCGGCACCTTTGGTGTGGAGTTCCGTTACGGCTGATGTTGGTTTGATACGTAACGCCGCACTGAC +TCTCATTGCAAAAAACAGGAATAACCATGCAACCGTCCAGAAACTTTGACGATCTCAAATTCTCCTCTAT +TCACCGCCGCATTTTGCTGTGGGGAAGCGGTGGTCCGTTTCTGGATGGTTATGTACTGGTAATGATTGGC +GTGGCGCTGGAGCAACTGACGCCGGCGCTGAAACTGGACGCTGACTGGATTGGCTTGCTGGGCGCGGGAA +CGCTCGCCGGGCTGTTCGTTGGCACATCGCTGTTTGGTTATATTTCCGATAAAGTCGGACGGCGCAAAAT +GTTCCTCATTGATATCATCGCCATCGGCGTGATATCGGTGGCGACGATGTTTGTTTCATCCCCCGTCGAA +CTGTTGGTGATGCGGGTACTTATCGGCATTGTCATCGGTGCAGATTATCCCATCGCCACCTCAATGATCA +CCGAGTTCTCCAGTACCCGTCAGCGGGCGTTTTCCATCAGCTTTATTGCCGCGATGTGGTATGTCGGCGC +GACCTGTGCCGATCTGGTCGGCTACTGGCTTTATGATGTGGAAGGCGGCTGGCGCTGGATGCTGGGTAGC +GCGGCGATCCCCTGTTTGTTGATTTTGATTGGTCGATTCGAACTGCCTGAATCTCCCCGCTGGTTATTAC +GCAAAGGGCGAGTAAAAGAGTGCGAAGAGATGATGATCAAACTGTTTGGCGAACCGGTGGCTTTCGATGA +AGAGCAGCCGCAGCAAACCCGTTTTCGCGATCTGTTTAATCGCCGCCATTTTCCTTTTGTTCTGTTTGTT +GCCGCCATCTGGACCTGCCAGGTGATCCCAATGTTCGCCATTTACACCTTTGGCCCGCAAATCGTTGGTT +TGTTGGGATTGGGGGTTGGCAAAAACGCGGCACTAGGGAATGTGGTGATTAGCCTGTTCTTTATGCTCGG +CTGTATTCCGCCGATGCTGTGGTTAAACACTGCCGGACGGCGTCCATTGTTGATTGGCAGCTTTGCCATG +ATGACGCTGGCGCTGGCGGTTTTGGGGCTAATCCCGGATATGGGGATCTGGCTGGTAGTGATGGCCTTTG +CGGTGTATGCCTTTTTCTCTGGCGGGCCGGGTAATTTGCAGTGGCTCTATCCTAATGAACTCTTCCCGAC +AGATATCCGCGCCTCTGCCGTGGGCGTGATTATGTCCTTAAGTCGTATTGGCACCATTGTTTCGACCTGG +GCACTACCGATCTTTATCAATAATTACGGTATCAGTAACACGATGCTAATGGGGGCGGGTATCTCGCTGT +TTGGCTTGTTGATTTCCGTAGCGTTTGCCCCGGAGACTCGAGGGATGTCACTGGCGCAGACCAGCAATAT +GACGATCCGCGGGCAGAGAATGGGGTAAATTGTTCAGATTTCTCTCTTTTCTGAATCAATATTATTGACT +ATAAGCCGCGTGAATATATGACTACACTTTGTGGGAAAACAAAGGCGTAATCACGCGGGCTACCTATGAT +TCTTATAATTTATGCGCATCCGTATCCGCATCATTCCCATGCGAATAAACGGATGCTTGAACAGGCAAGG +ACGCTGGAAGGCGTCGAAATTCGCTCTCTTTATCAACTCTATCCTGACTTCAATATCGATATTGCCGCCG +AGCAGGAGGCGCTGTCTCGCGCCGATCTGATCGTCTGGCAGCATCCGATGCAGTGGTACAGCATTCCTCC +GCTCCTCAAACTTTGGATCGATAAAGTTTTCTCCCACGGCTGGGCTTACGGTCATGGCGGCACGGCGCTG +CATGGCAAACATTTGCTGTGGGCGGTGACGACCGGCGGCGGGGAAAGCCATTTTGAAATTGGTGCGCATC +CGGGCTTTGATGTGCTGTCGCAGCCGCTACAGGCGACGGCAATCTACTGCGGGCTGAACTGGCTGCCACC +GTTTGCCATGCACTGCACCTTTATTTGTGACGACGAAACCCTCGAAGGGCAGGCGCGTCACTATAAGCAA +CGTCTGCTGGAATGGCAGGAGGCCCATCATGGATAGCCATACGCTGATTCAGGCGCTGATTTATCTCGGT +TCGGCAGCGCTGATTGTACCCATTGCGGTACGTCTTGGTCTGGGATCGGTACTTGGCTACCTGATCGCCG +GCTGCATTATTGGCCCGTGGGGGCTGCGACTGGTGACCGATGCCGAATCTATTCTGCACTTTGCCGAGAT +TGGGGTGGTGCTGATGCTGTTTATTATCGGCCTCGAACTCGATCCACAAAGGCTGTGGAAGCTGCGTGCG +GCAGTGTTCGGCTGTGGCGCATTGCAGATGGTGATTTGCGGCGGCCTGCTGGGGCTGTTCTGCATGTTAC +TTGGGCTGCGCTGGCAGGTCGCGGAATTGATCGGCATGACGCTGGCGCTCTCCTCTACGGCGATTGCCAT +GCAGGCGATGAATGAACGCAATCTGATGGTGACGCAAATGGGTCGCAGTGCCTTTGCGGTGCTGCTGTTC +CAGGATATCGCGGCGATCCCGCTGGTGGCGATGATTCCGCTACTGGCAACGAGCAGTGCCTCGACGACGA +TGGGCGCATTTGCTCTCTCGGCGTTAAAAGTGGCGGGTGCGCTGGTGCTGGTGGTATTGCTGGGGCGCTA +TGTCACGCGTCCGGCGCTGCGTTTTGTAGCCCGCTCTGGCTTGCGGGAAGTGTTTAGTGCCGTGGCGTTA +TTCCTCGTGTTTGGCTTTGGTTTGCTGCTGGAAGAGGTCGGCTTGTCGATGGCGATGGGCGCGTTTCTGG +CGGGCGTACTGCTGGCAAGCTCGGAATACCGTCATGCGCTGGAGAGCGATATCGAACCATTTAAAGGTTT +GCTGTTGGGGCTGTTTTTCATCGGTGTTGGCATGTCGATAGACTTTGGCACGCTGCTTGAAAACCCATTG +CGCATTGTCATTTTGCTGCTCGGTTTCCTCATCATCAAAATCGCCATGCTGTGGCTGATTGCCCGACCGT +TGCAAGTGCCAAATAAACAGCGTCGTTGGTTTGCGGTGTTGTTAGGGCAGGGCAGTGAGTTTGCCTTTGT +GGTATTTGGCGCGGCGCAGATGGCGAATGTGCTGGAGCCGGAGTGGGCGAAATCGCTGACCCTGGCGGTG +GCGCTGTCGATGGCAGCAACGCCGATTCTGCTGGTGATCCTCAATCGCCTTGAGCAATCTTCTACTGAGG +AAGCGCGTGAAGCCGATGAGATCGACGAAGAACAGCCGCGCGTGATTATCGCCGGATTCGGTCGTTTTGG +GCAGATTACCGGACGTTTACTGCTCTCCAGCGGGGTGAAAATGGTGGTACTCGATCACGATCCGGACCAT +ATCGAAACCTTGCGTAAATTTGGTATGAAAGTGTTTTATGGCGATGCCACGCGGATGGATTTACTGGAAT +CTGCCGGAGCGGCGAAAGCGGAAGTGCTGATTAACGCCATCGACGATCCGCAAACCAACCTGCAACTGAC +AGAGATGGTGAAAGAACATTTCCCGCATTTGCAGATTATTGCCCGCGCCCGCGATGTCGACCACTACATT +CGTTTGCGTCAGGCAGGCGTTGAAAAGCCGGAGCGTGAAACCTTCGAAGGTGCGCTGAAAACCGGGCGTC +TGGCACTGGAAAGTTTAGGTCTGGGGCCGTATGAAGCGCGAGAACGTGCCGATGTGTTCCGCCGCTTTAA +TATTCAGATGGTGGAAGAGATGGCAATGGTTGAGAACGACACCAAAGCCCGCGCGGCGGTCTATAAACGC +ACCAGCGCGATGTTAAGTGAGATCATTACCGAGGACCGCGAACATCTGTCATTAATTCAACGACATGGCT +GGCAGGGAACCGAAGAAGGTAAACATACCGGCAACATGGCGGATGAACCGGAAACGAAACCCTCATCCTA +ATAAAGAGTGACGTAAATCACACTTTACAGCTAACTGTTTGTTTTTGTTTCATTGTAATGCGGCGAGTCC +AGGGAGAGAGCGTGGACTCGCCAGCAGAATATAAAATTTTCCTCAACATCATCCTCGCACCAGTCGACGA +CGGTTTACGCTTTACGTATAGTGGCGACAATTTTTTTTATCGGGAAATCTCAATGATCAGTCTGATTGCG +GCGTTAGCGGTAGATCGCGTTATCGGCATGGAAAACGCCATGCCGTGGAACCTGCCTGCCGATCTCGCCT +GGTTTAAACGCAACACCTTAAATAAACCCGTGATTATGGGCCGCCATACCTGGGAATCAATCGGTCGTCC +GTTGCCAGGACGCAAAAATATTATCCTCAGCAGTCAACCGGGTACGGACGATCGCGTAACGTGGGTGAAG +TCGGTGGATGAAGCCATCGCGGCGTGTGGTGACGTACCAGAAATCATGGTGATTGGCGGCGGTCGCGTTT +ATGAACAGTTCTTGCCAAAAGCGCAAAAACTGTATCTGACGCATATCGACGCAGAAGTGGAAGGCGACAC +CCATTTCCCGGATTACGAGCCGGATGACTGGGAATCGGTATTCAGCGAATTCCACGATGCTGATGCGCAG +AACTCTCACAGCTATTGCTTTGAGATTCTGGAGCGGCGGTAATTTTGTATAGAATTTACGGCTAGCGCCG +GATGCGACGCCGGTCGCGTCTTATCCGGCCTTCCTATATCAGGCTGTGTTTAAGACGCCGCCGCTTCGCC +CAAATCCTTATGCCGGTTCGACGGCTGGACAAAATACTGTTTATCTTCCCAGCGCAGGCAGGTTAATGTA +CCACCCCAGCAGCAGCCGGTATCCAGCGCGTATATACCTTCCGGCGTACCTTTGCCCTCCAGCGATGCCC +AGTGACCAAAGGCGATGCTGTATTCTTCAGCGACAGGGCCAGGAATCGCAAACCACGGTTTCAGTGGGGC +AGGGGCCTCTTCCGGCGATTCTTTGCTGTACATATCCAGTTGACCGTTCGGGAAGCAAAAACGCATACGG +GTAAAAGCGTTGGTGATAAAACGCAGTCTTCCCAGCCCCCGCAATTCCGGTGACCAGTTATTTGGCATAT +CGCCGTACATGGCATCAAGAAAGAAGGGATAGGAGTCACTCGATAGCACCGCTTCTACATCGCGTGCGCA +CTCTTTGGCGGTCTGCAGATCCCACTGCGGCGTGATCCCTGCGTGGGCCATCACCAGCTTTTTCTCTTCG +TCGATTTGCAGCAGAGGCTGGCGCCGCAGCCAGTTAAGCAGCTCGTCGGCATCCGGCGCTTCCAGCAGCG +GTGTCAGGCGATCTTTCGGTTTATTGCGGCTGATCCCGGCAAATACCGCCAGCAGATGCAGATCGTGATT +GCCCAGCACCAGACGTACGCTGTCGCCTAAGGATTTCACATAGCGCAGAACATCCAGCGAACCCGGCCCG +CGCGCGACCAGATCGCCCGTCAGCCAGAGGGTATCTTTCCCAGGGGTAAATTCTACTTTATGCAGCAATG +CGATCAGTTCATCGTAACAACCATGAACGTCGCCAATAAGGTATGTCGCCATATTCTTTTAATGAATGAG +TGTGGGAACGGCGAGTCGGAATACGGGAATGTCGATGCTGAAAGGGACGCCATTTTCATCGATCATTTCG +TAGTGACCCTGCATGGTGCCCAGCGGGGTTTCAATGATTGCACCGCTGGTGTACTGGTACTCTTCGCCAG +GCGCGATAAGTGGCTGGACGCCAACCACTCCTTCGCCCTGGACTTCGGTTTCACGGCCATTGCCATTGGT +GATCAGCCAGTAACGCCCCAACAACTGCACTGGCGCTCGCCCCAGATTGCGTATGGTTACGGTATAAGCA +AAAACGTAACGTTCATTATCAGGTGAAGATTGAGCCTCAATGTAGACGCTTTGAACCTGAATACACACTC +GGGGCGAATTGATCATCGTTAACTCTCCTGCAAAGGCGCGTTCTCCGCCAGATAGTTCGCCATCTGGCAA +TATTGCGCGACAGAGATATTTTCCGCTCGCATCGCCGGGTCGATCCCCATTCCCGTTAACACCTCGACGC +TAAACAGGTTGCCGAGGCTGTTACGAATGGTTTTACGACGCTGGTTAAAGGCTTCGGTGGTGATGCGGCT +CAACACACGAACATCTTTAACCGGGTGAGGCATCGTTGCATGAGGAACCAGGCGCACGACGGCGGAATCC +ACTTTGGGTGGTGGTGTAAAGGCTGACGGCGGTACTTCCAGTACCGGGATCACATTGCAATAGTATTGCG +CCATGACGCTTAATCGACCATACGCTTTGCTGTTCGGTCCTGCAACCAGACGATTCACCACCTCTTTTTG +CAACATAAAGTGCATGTCGGCAATGGCATCAGTATAGCTAAACAGATGGAACATCAACGGCGTGGAGATG +TTATAAGGCAGGTTGCCGAAAACACGCAGCGGCTGACCCATTTTCTCGGCCAGTTCACCAAAGTTAAAGG +TCATCGCATCCTGCTGATAAATCGTCAGTTTCGGGCCTAAGAATGGATGCGTTTGCAGACGTGCCGCCAG +ATCGCGGTCAAGTTCGATGACCGTCAGCTGGTCCAGACGTTCGCCGACCGGTTCGGTCAATGCCGCCAGA +CCGGGGCCGATTTCGACCATCGCCTGGCCCTTTTGCGGGTTAATGGCAGACACAATACTGTCGATCACGA +ACTGATCGTTGAGAAAGTTTTGCCCGAAGCGTTTACGGGCTAAGTGGCCCTGGTGGACTCGATTATTCAT +TGGGTGTTAACAATCATTTTGATGGCGAGATTAAGCGCCGTAATAAAACTGCCGACATCGGCTTTGCCAC +GTCCCGCCAGTTCAAGCGCGGTGCCGTGGTCCACTGATGTGCGAATAAAGGGCAGGCCCAGCGTAATGTT +CACACCGCGCCCGAAGCCCTGGTATTTTAGCACGGGAAGACCCTGATCGTGGTACATCGCCAGCACGGCG +TCGGCGTTATCAAGATATTTCGGCTGAAACAGGGTATCGGCAGGCAGCGGCCCGTTGAGTTTCATCCCCT +GCGCCCGCAGCTCATTGAGCACCGGAATAATGGTGTCTATCTCTTCCGTACCCATATGACCGCCTTCGCC +CGCGTGCGGATTCAGCCCGCAGACCAGAATGCGCGGTTCGGCAATACCAAATTTGGTCCGCAAATCGTGA +TGCAAAATAGCAATCACTTCGTGCAAAAGTGCAGGGGTGATAGCGTCTGCGATATCGCGCAGCGGTAAAT +GCGTCGTTGCCAGCGCCACGCGAAGTTCTTCGGTCGCCAGCATCATCACCACCTTTTTCGCCTGCGAACG +CTCTTCGAAAAACTCGGTATGACCGGTAAAAGGAATGCCAGCGTCGTTAATAACGCCTTTATGCACCGGA +CCTGTGATCAGCGCGGCAAATTCGCCGTTCAGACAACCATCGCACGCTCGCGCCAGCGTTTCCACCACAT +AATGCCCATTTTCAACCGCTAACTGCCCCGCAGTGACAGGTGCACGTAGCGCGACAGGAAGTAGCGTTAA +TGTGCCCGCAGTTTGCGGTTGTGCAGGGGAGTTGGGGGAATAAGGGCGGAGGGTGAGCGGCAAACCGAGC +ATCGCTGCCCGGTTGGTAAGGAGAGTGGCATCGGCACAAACAACCAGTTCGACCGGCCACTCACGCTGTG +CAAGCTGGACAACTAAGTCCGGGCCAATCCCGGCGGGCTCGCCGGGAGTGATCACAACACGTTGGGTTTT +AACCATTAGTTGCTCAGGATTTTAACGTAGGCGCTGGCACGTTGTTCCTGCATCCAGCTTGCTGCTTCTT +CCGAGAACTTACGGTTCATCAGCATGCGGTATGCACGATCTTTCTGCGCAGCGTCGGTTTTATCGACATT +ACGGGTATCCAGCAGTTCGATTAAATGCCAGCCGAATGAAGAGTGAACCGGTGCACTCATTTGACCTTTG +TTCAGGCGAGTCAGGGCGTCACGGAAGGCCGGATCGAAAATATCTGGTGTAGCCCAGCCGAGATCGCCGC +CCTGGTTAGCAGAGCCTGGATCCTGAGAGAACTCTTTCGCTGCGGCAGCAAAAGTCGTTTTACCACTCTT +GATATCAGCAGCAATCTGTTCCAGTTTCACACGGGCCTGTTCGTCAGTCATGATCGGCGACGGTTTCAGC +AGAATATGGCGAGCATGAACTTCGGTCACCGAGATATTTTTGCTTTCGCCGCGCAGGTCGTTAACTTTCA +GAATATGGAAGCCAACGCCGGAACGAATCGGGCCAACAATGTCGCCTTTCTTCGCGGTGCTTAATGCCTG +GGCGAAGATCCCGGGCAACTCCTGAATACGGCCCCAGCCCATCTGGCCGCCGTTCAGCGCCTGCTGGTCG +GCAGAATGAGCAATCGCCAGCTTACCGAAATCAGCGCCGTTACGCGCCTGATCGACAATGGCGCGCGCCT +GGCTTTCCGCTTCGTTCACCTGATCAGAGGTCGGGTTTTCCGGCAGCGGGATCAGGATGTGGCTCAGGTT +CAGCTCAGTGCTGGCGTCGTTTTGGTTACCCACCTGCTGCGCCAGGGATTCGACTTCCTGCGGCAGGATG +GTGATGCGACGACGCACCTCGTTGTTACGCACTTCAGAGATAATCATCTCTTTGCGGATCTGGTTACGAT +AGGTGTTGTAGTTCAGTCCATCGTAAGCCAGACGGCTGCGCATCTGATCCAGCGTCATGTTGTTCTGTTT +CGCGATGTTAGCAATCGCCTGATCCAGCTGCTCATCGGAGATTTTCACTCCCATTTTCTGCCCCATCTGC +AGGATGATTTGATCCATGATCAAACGTTCCATGATTTGGTGGCGCAGCGTCGCGTCATCAGGAAGTTGCT +GCCTTGCCTGAGCAGCGTTCAGTTTTACCGACTGCATTAATCCATCAACGTCGCTTTCCAGCACGACGCC +GTTATTGACGACGGCTGCGACTTTATCGACTACCTGGGGGGCAGCGAAACTGGTATTCGCGATCATGGCG +ATACCGAGAAGCAGCGTTTTCCAGTTCTTCATACTTTTTCCATTTCAATTAACCGCACTGCGGATTACGT +GGTAAATCAACAAATCACAAAGTGTTTTGATACGGCAGAATGTTCGAACGCAGCATCTCTTGCGTACCCA +GACCGTAGTTGGAGCTCAGGCCGCGAAGTTCGATGTTAAAGCCGATTGCGTTGTCATATACCGCATGTTG +TTTATCGTTATCCCAACCGTTCAGCTTCCGCTCGTAACCGACGCGAATTGCATAGCAGCAGGAGCTGTAT +TGCACACCTAACATAGAGTCGGCTTGCTTGTTAGCATTGGTGTCGTAGTAGTAGGCCCCAACAATGGACC +AACGATCGGCAATTGGCCAGCTGGCGACAGCACCTACCTGCGAAATACCATTCTTATATTGCTCAGCAGT +GGAATAGTACTTAGGCAGCGTAGCCTGAATATATTCCGGGCTGGCGTAACGGTAATTCAGCTGTACCAGA +CGGTCTTCATCCCGACGGTATTCAATGCTGGAGTTACTGGTCGCTACGTTATCCAGACGTGTATCGTACT +GAATCCCGCCACGCAATCCCCAACGCTCGGAGATACGCCAGTAAGTATCGCCTGCCCACACCAGTGAACC +CGTTTTGTCGTCATTCTCCCATGTTATGTTGTCATCGCCAGTGCGAGACTCCGTGAAATAGTAGATTTGA +CCAACGGAAATATTAAAACGTTCAACGGCAGCATCATCATATATGCGAGATGTGACACCGGTCGTCACCT +GGTTAGCGGAGGCAATACGGTCAAGACCGCCGTAAGTCCGGTCCCGGAACAGGCCAGAGTAGTCAGATTG +CAGCAGAGACGAGTCGTAGTTATAGATGTCGCTCTGATCGCGATACGGCACGTACAAATACTGCGCGCGC +GGTTCCAGCGTTTGGGTATAACCCGGAGCCAGCATTTCCATATCGCGTTCAAAGACCATTTTGCCGTCAA +CTTTGAATTGCGGCATTACGCGGTTAACGGATTCGTCCAGCTTGGTCGTGTTTCTGGAGTTATACCAGTC +AAGATTGGTTTGCTGATAATGGGTTGCCAGCAACTTCGCTTCGGTATTGATGCTGCCCCAGTTATTAGAG +AGCGGCAAATTGATGGTCGGTTCCAGGTGAACACGGGTTGCTTCAGGCATGTCGTCTCTGGTGTTAACAA +AGTGCACTGCCTGGCCGTAAATACGCGTATCAAACGGACCAACATCATTCTGGTAGTAATTAACGTCTAA +CTGCGGCTCTGCCGAGTAGCTACTGGTGTTCTGTTCGCTGAAAACCTGGAACTGCTTGGTTGAAACGGTG +GCATTGAAGTTTTGCACCGCATAGCCAACGCTGAATTTTTGCGTTGCGTAGCCGTCAGTACTGGAACCGT +ACTTGTTATCGAAATCATTGAAGTAGCTAGGATCGCTGACCTTGGTGTAGTCGACGTTGAAACGCCACAC +CTGATCCATGACCCCGGAGTGGTTCCAGTAGAATAACCAACGACGTGAACTGTCATCGTTCGGGTGTTCA +TCTTCATAGACTTTATCTGAAGGCAGATAGTCCAGTTCCATCAAGCCAGCGCCCGCCTGGGAGAGGTAGC +GGAATTCGTTCTCCCACATGATGTTGCCACGACGATGCATATAATGCGGCGTGATGGTGGCATCCATATT +TGGCGCGATGTTCCAGTAATATGGCAGGTAGAACTCAAAGTAGTTGGTGGTGGTGTACTTGGCGTTCGGG +ATCAAGAAACCAGAGCGACGTTTGTCACCCACCGGCAACTGCAAATAGGGGCTATAAAAGATCGGTACCG +GACCCACCTTAAAGCGGGCGTTCCAGATCTCCGCAACTTGTTCTTCGCGGTCATGAATAATTTCGCTACC +TACCACGCTCCAGGTGTCAGAACCCGGCAGACAGGAGGTAAAGCTACCGTTATCCAGAATGGTATAGCGG +TTTTCGCCACGTTGTTTCATCAGGTCCGCTTTACCGCGACCCTGGCGACCCACCATCTGGTAATCACCTT +CCCAGACGTTGGTATCTTTGGTGTTCAGATTCGCCCAGCCTTTCGGCCCTTTGAGGATCACCTGGTTATC +GTCGTAATGGACATTACCGAGCGCATCAACGGTACGTACCGGCTCCGGTTGTCCTGGTGCCTCTTTTTGA +TGGAGCTGCACTTCGTCGGCCTGCAGACGGCTGTTACCCTGCATGATATCCACGCTGCCAGTAAACACGG +CGTCATCCGGGTAGTCCCCTTTCGCGTGGTCAGCATTGATAGTCACGGGTAAGTCATTGGTATCGCCCTG +TACCAGAGGACGGTCATAGCTTGGCACGCCCAACATGCACTGTGAGGCGAGGTCGGCTGCCAGTCCCTGT +TGACTATAAAGGGCGGTGGCAATCATGGTGGCCAGGAGAGTGGGGATACGTTTTTTCATACGTTGATTTT +ATTGTTCCATCATCGGTAACGTTGCGCGTGACAAACGGTCAGAGACTAACGTACTCGTCATCTCTACGCT +AGTGTTAATCCTGTCCGAATAGCGTCAGTGGTGTTAGGCACGGCATTGAATGACAGGTATGATAATGCAA +ATTATAGGCGATGTCCCACAATTGACCGCAGCCGGAAAACGGTAAAAGCACCTTTATATTGTGGGAGATA +GCCCTGATATCCGTGTGTCGATTTGGGGAATATATGCAGTATTGGGGAAAAATCATTGGCGTGGCCGTGG +CCTTACTGATGGGCGGCGGCTTTTGGGGCGTAGTGTTAGGCCTGTTAATTGGCCATATGTTTGATAAAGC +CCGTAGCCGTAAAATGGCGTGGTTCGCCAACCAGCGTGAGCGTCAGGCGCTGTTTTTTGCCACCACTTTT +GAAGTGATGGGGCATTTAACCAAATCCAAAGGTCGCGTCACGGAGGCTGATATTCATATCGCCAGCCAGT +TGATGGACCGAATGAATCTTCATGGCGCTTCCCGTACTGCGGCGCAAAATGCGTTCCGGGTGGGAAAATC +AGACAATTACCCGCTGCGCGAAAAGATGCGCCAGTTTCGCAGTGTCTGCTTTGGTCGTTTTGACTTAATT +CGTATGTTTCTGGAGATCCAGATTCAGGCGGCGTTTGCTGATGGTTCACTGCACCCGAATGAACGGGCGG +TGCTGTATGTCATTGCAGAAGAATTAGGGATCTCCCGCGCTCAGTTTGACCAGTTTTTGCGCATGATGCA +GGGCGGTGCACAGTTTGGCGGCGGTTATCAGCAGCAAACTGGCGGTGGTAACTGGCAGCAAGCGCAGCGT +GGCCCAACGCTGGAAGATGCCTGTAATGTGCTGGGCGTGAAGCCGACGGATGATGCGACCACCATCAAAC +GTGCCTACCGTAAGCTGATGAGTGAACACCATCCCGATAAGCTGGTGGCGAAAGGTTTGCCGCCTGAGAT +GATGGAGATGGCGAAGCAGAAAGCGCAGGAAATTCAGCAGGCATATGAGCTGATAAAGCAGCAGAAAGGG +TTTAAATGACCCTGTAAATGATGCTGAGTAACTGCCCACGATTAAAGGTGGCCGCCCTGGCGGTCACTTC +TTTGAGAAAAGGCGTTTACTCAGAATGGTGGACAGGCTCAATGCACGGTTTACGGGAGGGGTTCTGTAGG +TTTTATCGCGTTGACCCTGCTTAAGGTTGAGAGCTTTACGACGAGCGGAATTATATTTTTACGTCTTAAA +AATAAAAAACACATACCTGAATGAGCGATTTTTGAAAGTATATTTATTCAGAACGCGCATCATGAGTTTT +TAACTCAATGCGAGGCTATTACCATGAAAGTATCAGTTCCAGGCATGCCGGTTACACTTTTAAATATGAG +CAAGAACGATATTTATAAGATGGTGAGCGGGGACAAGATGGACGTGAAGATGAATATCTTTCAACGCTTG +TGGGAGACGTTACGCCATCTGTTCTGGTCAGATAAACAGACTGAGGCTTATAAACTTCTGTTCAATTTCG +TGAATAACCAGACTGGCAACATCAACGCCTCAGAATACTTTACTGGGGCTATCAACGAGAATGAGAGAGA +AAAGTTTATCAATAGCCTGGAATTATTCAATAAACTTAAAACATGCGCAAAAAATCCGGATGAGTTGGTC +GCAAAGGGCAATATGCGCTGGGTCGCCCAGACCTTCGGGGATATCGAGTTAAGTGTCACTTTTTTCATTG +AAAAGAATAAGATATGTACTCAGACGTTGCAGCTGCATAAGGGCCAAGGTAACTTGGGCGTTGATCTTAG +AAAGGCTTACCTTCCCGGCGTTGACATGAGGGATTGTTACCTTGGTAAAAAAACAATGAAAGGTAGCAAT +GATATCCTTTATGAGAGACCTGGGTGGAATGCTAACCTGGGCGTGCTACCCCGGACGGTGCTACCCCGGA +CGGTGCTAACCCGGACGGTGCTAACCTGGACGGTGCTACCGTGAACGGTGCTACCTCCTTATATGATGAG +GTAATTATTATTAATAAAATCCCCCCCAAAAAAATTGATACTAAAGGAGTTGCTACTGAAGAAGTTGCTA +CTAAAAAAGTACTGCTGAACAAATTACTGACAACGCAATTATTGAATGAGCCAGAATAAGCTAAGGTTGA +AGGGGCTGGAACGCCCCTTCAACCTTAGCAGTAGCGTGGGATGATTTCACAATTAGAAAGACCTGCATGA +TGAGCTAGAGAAGAGGCTAGTGACGCAAGGCGTCGTGCAGGACACGGATCACCGAGATGGGCATCGCCAA +CCAGACTGCTAATTAGCCCATGAATAACAATCAGAAAGGACCATAACAGACCCGTTAAAATGAAATATAA +GAGACGGTCAACGGGTGAAGAAAAAGTTCAAAAATTCGCTGTGGAGCAGGAAGGGAATTACCGAATGGAA +AGCGTAGCCACACGCAACAACTGAAAGCAGTTTGGCAGAAACAAAAAATCCCCGGACTCGGGGATTTATG +TACAAGAGGCAGCCCTTAGGATGAGGGTATAAACGTACAGGAAAGGTTAAAAATCCGCTGGCGCTTTAAA +CGTCATACTATTGCCATACGCCGGATGGGTAATCGTCAACATCTCTGCATGTAGCAACAAACGTGGTGCC +ATCGCTCTCGCTTCTGGTGATGCATAAAAACGATCGCCGAGAATCGGATGACCCAGCGCCAGCATATGCA +CACGCAATTGATGCGAACGCCCGGTAATCGGTTTTAACACCACTCTTGCCGTGTTATCCGCCGCATACTC +CACCACTTCATATTCCGTCTGCGCAGGTTTACCCGTTTCGTAACAGACTTTCTGTTTCGGGCGGTTTGGC +CAGTCGCAAATCAGCGGCAGATCCACCAGACCTTCTGCGGGGGATGGATGCCCCCAGACGCGGGCCACAT +ACTGCTTTTTCGGCTCGCGCTCGCGGAACTGGCGTTTTAACTCCCGCTCCGCGGCTTTGGTCAGCGCCAC +TACAATCACGCCGCTGGTAGCCATATCCAGACGATGCACCGATTCTGCCTGCGGATAATCACGCTGAATG +CGCGTCATCACGCTGTCTTTGTGCTCTTCCAGACGACCCGGCACTGACAACAAACCGCTCGGCTTGTTGA +CCACCATAATATGGTCATCCTGATACAGGATAACCAACCAGGGTTCCTGCGGTGGATTGTAGTTTTCCAT +CCCCATTTTCGGCTCCGTTACTGATGCGTTACAACGATCAAACGCAGGGCATCCAGACGCCAACCTGCCT +GATCCAGGCTTTCCATTACCTGCTGACGGTTGCTCTCAATGGCGGTCAGTTCGTCGTCACGAATGTTCGG +GTTCACTGCACGCAGAGCTTCCAGACGAGACAGCTCGGCAGACAGTTTTTCGTCGGCTTCGTTACGCGCT +GCATCAATCAATGCACGGGCAGATTTCTCGATCTGCGCTTCACCCAGTTGAAGGATAGCGTGAACATCCT +GCTGCACGGCGTTAACCAGTTTGCTGCCGGTGTGACGGTTAACCGCGTTAAGCTGGCGGTTAAAGGTTTC +AAACTCTACCTGCGCCGCCAGGTTGTTGCCGTTTTTATCCAGCAGCATACGTACCGGCGTCGGTGGCAGG +AAGCGGTTGAGCTGCAACTGCTTCGGAGCCTGGGCTTCAACCACATAAATCAGTTCCACCAACAGCGTAC +CTACCGGCAACGCTTTGTTTTTTAACAGTGAAATCGTGCTGCTACCGGTATCGCCAGAAAGGATCAGATC +CAGACCGTTGCGGATCAGCGGATGCTCCCAGGTAATAAACTGTGCATCTTCACGCGCCAGCGCCACTTCA +CGATCAAAGGTGATGGTGATGCCATCTTCCGACAGGCCAGGGAAGTCCGGCACCAGCATATGATCGGACG +GCGTCAGCACGATCATGTTGTCGCCGCGATCGTCCTGATTGATACCGATAATATCGAACAGGTTCATGGC +GAAGGCGATCAGGTTGGTATCGTCATCCTGCTCTTCAATGCTTTCTGCCAGTGCCTGGGCTTTTTCGCCA +CCGTTGGAGTGGATTTCCAGCAGGCGGTCACGACCCTGTTCCAGCTGTGCTTTCAGCGCTTCATGTTGCT +CGCGGCAGTTTTTGATCAGATCGTCAAAGCCTTCGGTTTGATCCGGTGAAGCCAGATAGTTAATCAGATC +GTTGTATACGCTATCGTAAATAGTGCGTCCGGTCGGGCAGGTGTGCTCAAATGCATCCAGACCTTCGTGA +TACCAGCGCACCAGCACCGACTGAGCGGTTTTCTCCAGATAAGGCACATGGATCTGAATATCGTGCGCCT +GGCCGATACGATCCAGACGACCAATACGCTGCTCCAGTAGATCCGGGTTGAATGGCAGGTCAAACATCAC +CATGTGGCTGGCGAACTGGAAGTTACGTCCTTCAGAACCGATTTCTGAGCACAGCAGTACCTGTGCGCCG +GTGTCTTCTTCGGCAAACCAGGCGGCAGCGCGGTCACGTTCGATAATCGACATACCTTCGTGGAACACCG +CAGCGCGAATACCTTCACGTTCGCGCAGTACCTGCTCCAGTTGCAGCGCAGTGGCAGCTTTGGCGCAGAT +CACCAGCACTTTCTGAGAGCGATGGCTGGTCAGGTAGCCCATCAGCCACTCAACGCGCGGATCGAAGTTC +CACCAGGTGGCGTTATCACCTTCAAATTCCTGATAAATACGCTCCGGGTAGAGCATATCGCGAGCACGAT +CTTCCGCACTTTTACGTGCGCCCATAATGCCGGAGACTTTAATAGCCGTCTGATACTGCGTCGGTAGCGG +CAGCTTAATGGTGTGCAGCTCGCGTTTCGGGAATCCTTTCACACCGTTACGCGTGTTACGGAACAGCACG +CGGCTGGTGCCGTGGCGATCCATCAGCATCGAAACCAGCTCCTGACGGGCGCTCTGGGCATCTTCGCTGT +CGCTGTTTGCTGCCTGCAACAGCGGCTCGATATCCTGCTCGCCGATCATCTCGCCGAGCATGTTCAGTTC +GTCATTGCTCAGTTTGTTACCTGCCAGCAGCATGGCAACGGCGTCCGCAACCGGACGATAATTTTTCTGC +TCTTCAACGAACTGCGCAAAATCGTGGAAACGGTTCGGGTCCAGCAGACGCAGACGGGCGAAGTGGCTTT +CCATCCCCAGCTGTTCCGGGGTCGCGGTCAGCAGCAGAACGCCCGGCACGTGCTCTGCCAGTTGTTCAAT +GGCCTGATATTCACGGCTTGGCGCATCTTCGCTCCACACCAGGTGATGCGCTTCATCGACCACCAGCAGG +TCCCATTCGGCTTCACAGAGATGTTCCAGGCGCTGTTTGCTACGACGGGCAAAATCCAGCGAGCAAATCA +CCAGCTGTTCGGTGTCAAACGGGTTGTAAGCATCGTGCTGAGCTTCGGCATAACGCTCATCATCAAATAG +CGCAAAGCGCAGGTTGAAACGGCGCAGCATTTCTACCAGCCACTGATGCTGTAAGGTTTCCGGGACGATA +ATTAGCACACGTTCAGCAGCGCCAGAGAGCAGTTGCTGATGCAGGATCATCCCGGCTTCAATGGTTTTCC +CTAAACCCACTTCGTCAGCCAGCAGGACGCGCGGCGCGTGGCGGCGACCAACATCATGAGCGATGTTGAG +CTGATGCGGGATCAGGCTGGTACGCTGACCGCGCAGGCCGCTGTACGGCATACGGAACTGTTCGCTGGAA +TATTTACGCGCGCGATAACGCAGCGCAAAGCGGTCCATACGGTCAATCTGCCCGGCAAACAGACGGTCCT +GCGGTTTGCTGAACACCAGTTTGCTATCAAGGAAAACTTCACGCAGGGCTACGCCGGACTCTTCAGTATC +CAGGCGAGTACCGATATAGGTCAGCAAGCCATTTTCTTCTTTTACTTCTTCGACTTGCATCTGCCAGCCG +TCATGGCTGGTAATGGTATCACCAGGGTTGAACATCACGCGGGTCACGGGGGAATCACTGCGTGCGTACA +GACGGTTTTCACCAGTAGATGGGAAAAGTAAAGTGACAGTTCGCGCATCCACCGCGACAACGGTTCCAAG +TCCCAATTCGCTTTCTGTATCGCTGATCCAGCGTTGACCAAGTGTAAAAGGCATATGTGTTCGGCTCTAT +ATCTTTAATTGCAGGCAATAACCACCCGCTACCGTGCTTATGAGGTAGTGGTGTTATTCAGGTCCAGGAA +TGGAAAGGGCGCTATGGTACTGGATGGCAAAGCATTCGTCACGCATCAAAATGGTATCTGGCGAACTCTT +TTTTTTGCTCAAAATAGCCCAAGTTGCCCGGTCATAAGTGTAGCAAAATTATCCTCAATAAAAGGGAGTA +TTCCCTCCGCCACGGGTTGTAGCTGGCGGGTCAGATAGTGTTCGTAATCCAGTGGTGAACGTTGGTAGTC +CAGCGGCTCCGGGCCGTTGGTGGTCCATACGTACTTAATGGTGCCGCGATTCTGATATTGCAAGGGGCGA +CCACGCTTTTGGTTTTCTTCATCGGCAAGGCGAGCGGCGCGTACATGAGGCGGCACATTACGCTGATACT +CGCTCAGCGGACGGCGAAGGCGTTTACGGTAAACCAGTCGCGCATCCAGTTCACCCGCCATCAGTTTGTC +GATGGTTTCGCGTACATATTCCTGATATGGCTCGTTGCGGAAGATGCGCAGGTATAGCTCCTGCTGAAAC +TGCTGGGCCAGCGGCGTCCAGTCGGTGCGCACGGTTTCCAGCCCTTTAAACACCATCCGCTGCTTGTCGC +CCTCCTGAATCAGTCCGGCATAACGCTTTTTACTGCCGGTATCGGCTCCGCGAATGGTTGGCATCAGAAA +ACGGCAGAAATGGGTTTCATACTCCAGTTCTAATGCGCTGGTCAGCCGTTGTTTTTGCAGCGTTTCCGCC +CACCAGGCGTTAACGTGCTGCACCAGTGCACGACCGATTTTCGCCGCTTCTTCTTCCGAATGTGCGCCTT +TCAGCCAGACAAACGTTGAGTCGGTATCGCCGTAGATAACGTCGTAGCCCTGTGCTTCAATCAACGCTTT +GGTTTGCCGCATGATCTGATGACCACGCATGGTGATCGACGATGCCAGCCGCGGATCGAAGAAGCGGCAG +GCGGTGGTGCCGAGCACGCCATAAAAGGCATTCATGATGATTTTCAGCGCCTGCGACAGCGGTTTGTTAC +CCTGGCGTTTGGCTTCATCGCGCCCGTGCCAGATGTTAGTCACAATCTCCGGCAGGCAATGTTTTTCTCG +CGAGAACCAGGCATCGAGAAAACCTTCGGTACTGTGCTCTGGATCAGGCTGCGCCATGCCTTCCACCAGC +CCGACGGGATCAATCAGAAAGGTGCGGATGATCGACGGGTACAGGCTTTTATAGTCCAGCACCAGCACTG +AATCATAAAGCCCTGGCCGTGAATCCATCACGTAGCCGCCAGGGCTGGCGTGCGGCGGCACTTCGCCGAG +ATTAGGCGCGACATAACCAGCGCGATGCATTCGCGGAAAATAGAGATGACCAAATGCCGCCACCGAACCG +CCGTGTCGGTCCACCGGCAGGCCGTTCACCGTTGCCCGTTCGAGTAAAAATGGCATGATTTCAGTTTTGT +GGAAGATCTGCGTCACCAGCTCGCAATCTTTCAGGTTATAAGTTGCCAGCGCAGGTTTATCTTCGGCGAA +ACGGCGGTCAATTTCGTCCATTCGATCCCACGGGTTATCGATAGATTTTCCTTCGCCTAATAGCTCCTGA +GCGACAGTTTCCAGCGAGAATGAAGAGAAATTCCAGAACGCGGATTTCAGCGCCTCGATACCGTCGATAA +TTAGCCGACCTTTAGCCTGGGCAAAAAAGACGCCGTTTTTAAAGCCGTGCTCGCGCCACTCCAGCTCGCT +ATTATCGCGCCCAAGACGCAGCGGAAGACGGTAACGCTCGGCATGTTTTTGCAGCATTCGCAGATCGAAC +TGCACCACGTTCCAACCGATGATCACATCAGGATCGTAGTTGGCAAACCAGGCGTTGAGTTTTTCCAGCA +ACTGCGGGCGGCTGGCGACGTATTCCAGTTCGAAATCAAGCGAGGAGGCGTCGCCATTCTCCGGCCCCAG +CATATAAACGATGCGCTGCCCGCAGCCTTCCAGGCCGATGCAGTACAGCTCACCGTGGCGGGTGGTTTCA +ATATCTATAGAAACCCACTTGAGCGGCGGACGATAGTCGGGATGCGGTTTCAGACGGGCATTAACGATAG +TGCCATTGTGCATATCACCCTCGACCCACACCGGTGAGGTGATAAACCGCTCCATCAGATAGCGTTCTGG +CGGACGCACATCGGCCTCGTAGACGGTAACGCCACCTTCACGCAGGCGCTTTTCGTAATTCATCAATTGG +CGATGGGCGCGACAGTAAAGGCCATACACCGGCTGGCGGTGAAAATCCTTTAACGCCAGCGGTGTCAGGC +GAAAGCCTTGTTCACCCTGCAAAATATGCTGAGCGCGGGGAACCTGATCGGCGGGAATAAACGCCACGGA +CTCTTGCGGTGCAAGCGTAACCTGCAACGGCCCGTTGTCCGTCGCCAGCCAGAAGGAGACTTCTGTCCCT +TGCGGGGTGTCCCGCCAGTGTCGGGTTAAGATAAAACCTGCCTGCGCCACGCTGAAAATCCATCAAAAAA +CCAGGCTTGAGTATAGCCTGGTTTCGTTTGATTGGCTGTGGTTTTATACAGTCATTACTGCCCGTAATAT +GCCTTCGCGCCATGCTTACGCAGATAGTGTTTATCCAGCAGCGTTTGCTGCATATCCGGTAACTGCGGCG +CTAACTGACGGCAGAATATCCCCATATAAGCGACCTCTTCCAGCACGATGGCGTTATGCACCGCATCTTC +GGCATTTTTGCCCCATGCAAACGGGCCGTGGGAATGGACCAGAACGCCGGGCATTTGCGCTGCATCGATA +CCCTGTTTTTCAAAGGTTTCTACGATGACGTTACCGGTTTCCCACTCATATTCGCCGTTGATTTCTGCGT +CGGTCATTTTGCGGGTGCAGGGAATGGTGCCGTAGAAATAGTCGGCGTGGGTGGTGCCGGTTGCTGGAAT +CGACTGACCCGCCTGCGCCCAGATGGTGGCGTGGCGCGAGTGCGTATGCACAATGCCGCCAATGGAGGGG +AATGCCTGATAGAGCAGCCGGTGAGTTGGCGTGTCGGAGGAGGGCTTTTTCGTACCTTCAACCACTTCAC +CGGTTTCGATGCTAACCACGACCATATCGTCAGCGGTCATGACGCTGTAATCGACGCCGGAAGGTTTGAT +CACAAAGACGCCGCGCTCGCGATCAACGGCGCTGACGTTGCCCCATGTGAGCGTGACCAGGTTGTGTTTT +GGCAGCGCCAGGTTGGCTTCTAATACCTGGCGTTTGAGATCTTCTAACATGTTGACTCCTTCGTGCCGGA +TGCGCTTTGCTTATCCGGCCTACAAAATCGCAGCGTGTAGGCCTGATAAGACGCGCCAGCGTCGCATCAG +GCGTTGAATGCCGGATGCGCTTTGCTTATCCGGCCTACAAAATCGCAGCGCGTAGGCCTGATAAGACGCG +CCAGCGTCGCATCAGGCGTTGAATGCCGGATGCGCTTTGCTTATCCGGCCTACAAAATCGCAGCGTGTAG +GCCAGATAAGACGCGTCAGCGTCGCATCAGGCGTTACATACCGGATGCGGCTACTTAGCGACGAAACCCG +TAATACACTTCGTTCCAGCGCAGCGCGTCTTTAAACGCTGGCAGGCGTGTGTCGTTATCAATCACCGTGA +TTTCAATGTCGTGCATCTCGGCGAATTGGCGCATATCGTTGAGGTTCAGTGCATGGCTGAAGACGGTATG +GTGCGCGCCACCAGCGAGGATCCACGCTTCGGAAGCAGTTGGCAGATCCGGTTGCGCTTTCCACAGCGCA +TTCGCCACCGGCAGTTTCGGCAGGGAGTGCGGTGTTTTCACCGTGTCGATGCAGTTAACCAGTAGACGGT +AACGATCGCCGAGATCAATCAAGCTGGCGACAATCGCTGGGCCGGTTTGGGTATTGAAGATCAGGCGGGC +AGGATCGTCCTTACCACCAATACCGAGATGCTGAACGTCGAGGATCGGTTTCTCTTCTGCGGCGATCGAC +GGGCAGACTTCCAGCATATGGGAGCCGAGCACCAGGTCATTACCTTTCTCGAAGTGATAGGTGTAGTCCT +CCATAAAGGAGGTGCCGCCCTGCAGACCGGTTGACATCACCTTCATGATGCGAAGCAGGGCGGCAGTTTT +CCAGTCGCCTTCGCCCGCAAAGCCGTAACCCTGCTGCATCAGACGCTGTACGGCCAGACCAGGAAGCTGT +TTCAGACCGTGCAAATCTTCAAAGGTGGTGGTGAACGCGTGGAAGCCACCTTGTTCCAGGAAACGCTTCA +TCCCCAGCTCAATACGCGCCGCTTCCAGCACGTTCTGTCGTTTTTTGCCGTGGATTTGTGTGGCAGGCGT +CATGGTGTAGCAGCTTTCGTACTCATCGACCAGCGCGTTAACATCGCCGTCGCTGATGGAGTTCACCACC +TGCACCAGATCGCCAACCGCCCAGGTATTGACGGAGAAACCGAACTTGATCTGTGCGGCAACTTTATCGC +CATCGGTGACCGCCACTTCACGCATGTTATCGCCAAATCGGCAGACTTTCAGATGACGGGTATCCTGTTT +AGAGACCGCCTGACGCATCCAGGAGCCGATACGCTCATGGGCTTGTTTATCCTGCCAGTGACCGGTAACC +ACGGCATGTTGCTGACGCATACGCGCGCCAATGAAGCCGAACTCGCGACCGCCATGTGCAGTCTGGTTCA +GGTTCATAAAGTCCATATCGATACTGTCCCACGGCAGCGCCGCGTTGAACTGGGTGTGGAATTGCAGCAA +CGGTTTGTTGAGCATGGTCAGGCCGTTGATCCACATTTTGGCCGGGGAGAAGGTGTGCAGCCACACCACC +AGACCAGCGCAACGATCGTCGTAATTCGCGTCGCGGCAAATAGCGGTGATTTCATCCGGCGTGGTGCCCA +GCGGTTTCAACACCAGTTTGCAGGGCAGTTTCGCTTCCGTATTCAGCGCATTAACGACGTGCTCGGCATG +TTGGGTGACCTGACGCAGGGTTTCCGGGCCATACAGATGCTGGCTGCCAATGACAAACCACACTTCATAA +TTATCAAAAATCGTCATTATCGTGTCCTTATAGAGTCGCAACGGCCTGGGCAGCCTGTGCCGGGGCGGAA +GTTGGAAGATAGTGTTGTTCGGCGCTCATCGCCCATTGCTGATAGCGGCGATAAAGCTGTTCAAAGCGTT +GTGCCTGCTCGCTGCACGGTTGCAGGGTTTTCTCTACCGCACTGGCCATTTTTTGCTGAGCTGATGGGAT +GTCTGCGTGCACTTTCGCGGCGACGGCAGCAAAAATCGCCGCACCGAGCGCACAGCACTGGTCAGAGGCA +ACAATTTGCAGCGGGCGATTCAGCACGTCGCAGCAGGCCTGCATAATGACCTGGTTTTTCCGCGCGATGC +CGCCCAGTGCCATCACGTTATTAACGGCGATCCCCTGATCGGTAAAGCACTCCATGATTGCGCGTGCGCC +AAAGGCGGTGGCAGCAATCAAACCGCCGAACAGCAGCGGAGCGTCGGTAGCGAGGTTAAGATCGGTAATC +ACCCCTTTCAGGCGTTGGTTAGCGTTCGGTGTGCGGCGGCCGTTAAACCAGTCGAGCACCACCGGCAGGT +GATCCAGAGACGGATTTTTGGCCCATGCTTCGGTCAGCGCCGGAAGCAGTTGTTTCTGGCTGGCGTTGAT +TTGCGTTTTCAGTTCCGGATGCTGGGCGGCAAGCTGTTCCAGCGGCCAGCCGAGTACGCGACCAAACCAG +GCGTAGATATCACCAAACGCCGATTGGCCTGCTTCCAGACCGATAAATCCAGGCACCACGCTGCCATCAA +CCTGACCGCAAATACCTTTAACTGCCCGCTCGCCAACGCTCTGTTTGTCGGCAATCAGAATGTCGCAGGT +GGAAGTACCGATAACTTTTACCAGTGCGTTAGGCTGTGCGCCTGCGCCAACTGCGCCCATATGGCAGTCA +AACGCGCCGCCGGAAATCACCACGCTTTCAGGCAGGCCGAGACGCTGCGCCCATTCCGGGCATAAGGTGC +CCACCGGAATATCGGCAGTCCAAGTGTCAGTGAACAGCGGGGAAGGCAAATGGCGATTGAGGATCGGGTC +CAGCTCATCAAAGAAACTGGCTGGCGGCAGGCCGCCCCAGCTTTCGTGCCACAGAGATTTATGCCCGGCG +CTGCAACGTCCGCGACGAATATCCTGCGGGCGGGTGGTACCGGAAAGCAGAGCTGGCACCCAGTCGCACA +GCTCAATCCACGATGCGGCAGATTGCGCCACGGCGCTGTCCTGGCGAGTCACATGCAGGATTTTTGCCCA +GAACCATTCGCTGGAATAAATACCACCAATGTAGCGGGAGTAGTCAACGTTGCCCGGCGCGTGGCACAAA +CGGGTAATCTCTTCCGCTTCTTCAACCGCAGTGTGGTCTTTCCACAATACGAACATCGCGTTCGGGTTTT +CGGCAAACTCCGGGCGCAGCGCCAGCACGTTTCCGTCGGCATCAATCGGTGCGGGCGTCGAGCCGGTACT +GTCAACGCCAATCCCGACCACAGCTGCGCGCTGTTCGACGCTAAGCTCTGCAAGCACGGTTTTCAGTGCC +GCTTCCATTGACTCAATGTAGTCACGCGGATGATGACGGAACTGGTTATTCGGGNGCATCACAAAATTGCC diff --git a/scripts/ambig_middle.fa b/scripts/ambig_middle.fa new file mode 100644 index 0000000..61dba24 --- /dev/null +++ b/scripts/ambig_middle.fa @@ -0,0 +1,1000 @@ +>NC_007779.1 Escherichia coli str. K-12 substr. W3110 DNA, complete genome +NAGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC +TTCTGAACTGGTTACCTGCCGTGAGTAAATTAAAATTTTATTGACTTAGGTCACTAAATACTTTAACCAA +TATAGGCATAGCGCACAGACAGATAAAAATTACAGAGTACACAACATCCATGAAACGCATTAGCACCACC +ATTACCACCACCATCACCATTACCACAGGTAACGGTGCGGGCTGACGCGTACAGGAAACACAGAAAAAAG +CCCGCACCTGACAGTGCGGGCTTTTTTTTTCGACCAAAGGTAACGAGGTAACAACCATGCGAGTGTTGAA +GTTCGGCGGTACATCAGTGGCAAATGCAGAACGTTTTCTGCGTGTTGCCGATATTCTGGAAAGCAATGCC +AGGCAGGGGCAGGTGGCCACCGTCCTCTCTGCCCCCGCCAAAATCACCAACCACCTGGTGGCGATGATTG +AAAAAACCATTAGCGGCCAGGATGCTTTACCCAATATCAGCGATGCCGAACGTATTTTTGCCGAACTTTT +GACGGGACTCGCCGCCGCCCAGCCGGGGTTCCCGCTGGCGCAATTGAAAACTTTCGTCGATCAGGAATTT +GCCCAAATAAAACATGTCCTGCATGGCATTAGTTTGTTGGGGCAGTGCCCGGATAGCATCAACGCTGCGC +TGATTTGCCGTGGCGAGAAAATGTCGATCGCCATTATGGCCGGCGTATTAGAAGCGCGCGGTCACAACGT +TACTGTTATCGATCCGGTCGAAAAACTGCTGGCAGTGGGGCATTACCTCGAATCTACCGTCGATATTGCT +GAGTCCACCCGCCGTATTGCGGCAAGCCGCATTCCGGCTGATCACATGGTGCTGATGGCAGGTTTCACCG +CCGGTAATGAAAAAGGCGAACTGGTGGTGCTTGGACGCAACGGTTCCGACTACTCTGCTGCGGTGCTGGC +TGCCTGTTTACGCGCCGATTGTTGCGAGATTTGGACGGACGTTGACGGGGTCTATACCTGCGACCCGCGT +CAGGTGCCCGATGCGAGGTTGTTGAAGTCGATGTCCTACCAGGAAGCGATGGAGCTTTCCTACTTCGGCG +CTAAAGTTCTTCACCCCCGCACCATTACCCCCATCGCCCAGTTCCAGATCCCTTGCCTGATTAAAAATAC +CGGAAATCCTCAAGCACCAGGTACGCTCATTGGTGCCAGCCGTGATGAAGACGAATTACCGGTCAAGGGC +ATTTCCAATCTGAATAACATGGCAATGTTCAGCGTTTCTGGTCCGGGGATGAAAGGGATGGTCGGCATGG +NCGGCGCGCGTCTTTGCAGCGATGTCACGCGCCCGTATTTCCGTGGTGCTGATTACGCAATCATCTTCCGA +ATACAGCATCAGTTTCTGCGTTCCACAAAGCGACTGTGTGCGAGCTGAACGGGCAATGCAGGAAGAGTTC +TACCTGGAACTGAAAGAAGGCTTACTGGAGCCGCTGGCAGTGACGGAACGGCTGGCCATTATCTCGGTGG +TAGGTGATGGTATGCGCACCTTGCGTGGGATCTCGGCGAAATTCTTTGCCGCACTGGCCCGCGCCAATAT +CAACATTGTCGCCATTGCTCAGGGATCTTCTGAACGCTCAATCTCTGTCGTGGTAAATAACGATGATGCG +ACCACTGGCGTGCGCGTTACTCATCAGATGCTGTTCAATACCGATCAGGTTATCGAAGTGTTTGTGATTG +GCGTCGGTGGCGTTGGCGGTGCGCTGCTGGAGCAACTGAAGCGTCAGCAAAGCTGGCTGAAGAATAAACA +TATCGACTTACGTGTCTGCGGTGTTGCCAACTCGAAGGCTCTGCTCACCAATGTACATGGCCTTAATCTG +GAAAACTGGCAGGAAGAACTGGCGCAAGCCAAAGAGCCGTTTAATCTCGGGCGCTTAATTCGCCTCGTGA +AAGAATATCATCTGCTGAACCCGGTCATTGTTGACTGCACTTCCAGCCAGGCAGTGGCGGATCAATATGC +CGACTTCCTGCGCGAAGGTTTCCACGTTGTCACGCCGAACAAAAAGGCCAACACCTCGTCGATGGATTAC +TACCATCAGTTGCGTTATGCGGCGGAAAAATCGCGGCGTAAATTCCTCTATGACACCAACGTTGGGGCTG +GATTACCGGTTATTGAGAACCTGCAAAATCTGCTCAATGCAGGTGATGAATTGATGAAGTTCTCCGGCAT +TCTTTCTGGTTCGCTTTCTTATATCTTCGGCAAGTTAGACGAAGGCATGAGTTTCTCCGAGGCGACCACG +CTGGCGCGGGAAATGGGTTATACCGAACCGGACCCGCGAGATGATCTTTCTGGTATGGATGTGGCGCGTA +AACTATTGATTCTCGCTCGTGAAACGGGACGTGAACTGGAGCTGGCGGATATTGAAATTGAACCTGTGCT +GCCCGCAGAGTTTAACGCCGAGGGTGATGTTGCCGCTTTTATGGCGAATCTGTCACAACTCGACGATCTC +TTTGCCGCGCGCGTGGCGAAGGCCCGTGATGAAGGAAAAGTTTTGCGCTATGTTGGCAATATTGATGAAG +ATGGCGTCTGCCGCGTGAAGATTGCCGAAGTGGATGGTAATGATCCGCTGTTCAAAGTGAAAAATGGCGA +AAACGCCCTGGCCTTCTATAGCCACTATTATCAGCCGCTGCCGTTGGTACTGCGCGGATATGGTGCGGGC +AATGACGTTACAGCTGCCGGTGTCTTTGCTGATCTGCTACGTACCCTCTCATGGAAGTTAGGAGTCTGAC +ATGGTTAAAGTTTATGCCCCGGCTTCCAGTGCCAATATGAGCGTCGGGTTTGATGTGCTCGGGGCGGCGG +TGACACCTGTTGATGGTGCATTGCTCGGAGATGTAGTCACGGTTGAGGCGGCAGAGACATTCAGTCTCAA +CAACCTCGGACGCTTTGCCGATAAGCTGCCGTCAGAACCACGGGAAAATATCGTTTATCAGTGCTGGGAG +CGTTTTTGCCAGGAACTGGGTAAGCAAATTCCAGTGGCGATGACCCTGGAAAAGAATATGCCGATCGGTT +CGGGCTTAGGCTCCAGTGCCTGTTCGGTGGTCGCGGCGCTGATGGCGATGAATGAACACTGCGGCAAGCC +GCTTAATGACACTCGTTTGCTGGCTTTGATGGGCGAGCTGGAAGGCCGTATCTCCGGCAGCATTCATTAC +GACAACGTGGCACCGTGTTTTCTCGGTGGTATGCAGTTGATGATCGAAGAAAACGACATCATCAGCCAGC +AAGTGCCAGGGTTTGATGAGTGGCTGTGGGTGCTGGCGTATCCGGGGATTAAAGTCTCGACGGCAGAAGC +CAGGGCTATTTTACCGGCGCAGTATCGCCGCCAGGATTGCATTGCGCACGGGCGACATCTGGCAGGCTTC +ATTCACGCCTGCTATTCCCGTCAGCCTGAGCTTGCCGCGAAGCTGATGAAAGATGTTATCGCTGAACCCT +ACCGTGAACGGTTACTGCCAGGCTTCCGGCAGGCGCGGCAGGCGGTCGCGGAAATCGGCGCGGTAGCGAG +CGGTATCTCCGGCTCCGGCCCGACCTTGTTCGCTCTGTGTGACAAGCCGGAAACCGCCCAGCGCGTTGCC +GACTGGTTGGGTAAGAACTACCTGCAAAATCAGGAAGGTTTTGTTCATATTTGCCGGCTGGATACGGCGG +GCGCACGAGTACTGGAAAACTAAATGAAACTCTACAATCTGAAAGATCACAACGAGCAGGTCAGCTTTGC +GCAAGCCGTAACCCAGGGGTTGGGCAAAAATCAGGGGCTGTTTTTTCCGCACGACCTGCCGGAATTCAGC +CTGACTGAAATTGATGAGATGCTGAAGCTGGATTTTGTCACCCGCAGTGCGAAGATCCTCTCGGCGTTTA +TTGGTGATGAAATCCCACAGGAAATCCTGGAAGAGCGCGTGCGCGCGGCGTTTGCCTTCCCGGCTCCGGT +CGCCAATGTTGAAAGCGATGTCGGTTGTCTGGAATTGTTCCACGGGCCAACGCTGGCATTTAAAGATTTC +GGCGGTCGCTTTATGGCACAAATGCTGACCCATATTGCGGGTGATAAGCCAGTGACCATTCTGACCGCGA +CCTCCGGTGATACCGGAGCGGCAGTGGCTCATGCTTTCTACGGTTTACCGAATGTGAAAGTGGTTATCCT +CTATCCACGAGGCAAAATCAGTCCACTGCAAGAAAAACTGTTCTGTACATTGGGCGGCAATATCGAAACT +GTTGCCATCGACGGCGATTTCGATGCCTGTCAGGCGCTGGTGAAGCAGGCGTTTGATGATGAAGAACTGA +AAGTGGCGCTAGGGTTAAACTCGGCTAACTCGATTAACATCAGCCGTTTGCTGGCGCAGATTTGCTACTA +CTTTGAAGCTGTTGCGCAGCTGCCGCAGGAGACGCGCAACCAGCTGGTTGTCTCGGTGCCAAGCGGAAAC +TTCGGCGATTTGACGGCGGGTCTGCTGGCGAAGTCACTCGGTCTGCCGGTGAAACGTTTTATTGCTGCGA +CCAACGTGAACGATACCGTGCCACGTTTCCTGCACGACGGTCAGTGGTCACCCAAAGCGACTCAGGCGAC +GTTATCCAACGCGATGGACGTGAGTCAGCCGAACAACTGGCCGCGTGTGGAAGAGTTGTTCCGCCGCAAA +ATCTGGCAACTGAAAGAGCTGGGTTATGCAGCCGTGGATGATGAAACCACGCAACAGACAATGCGTGAGT +TAAAAGAACTGGGCTACACTTCGGAGCCGCACGCTGCCGTAGCTTATCGTGCGCTGCGTGATCAGTTGAA +TCCAGGCGAATATGGCTTGTTCCTCGGCACCGCGCATCCGGCGAAATTTAAAGAGAGCGTGGAAGCGATT +CTCGGTGAAACGTTGGATCTGCCAAAAGAGCTGGCAGAACGTGCTGATTTACCCTTGCTTTCACATAATC +TGCCCGCCGATTTTGCTGCGTTGCGTAAATTGATGATGAATCATCAGTAAAATCTATTCATTATCTCAAT +CAGGCCGGGTTTGCTTTTATGCAGCCCGGCTTTTTTATGAAGAAATTATGGAGAAAAATGACAGGGAAAA +AGGAGAAATTCTCAATAAATGCGGTAACTTAGAGATTAGGATTGCGGAGAATAACAACCGCCGTTCTCAT +CGAGTAATCTCCGGATATCGACCCATAACGGGCAATGATAAAAGGAGTAACCTGTGAAAAAGATGCAATC +TATCGTACTCGCACTTTCCCTGGTTCTGGTCGCTCCCATGGCAGCACAGGCTGCGGAAATTACGTTAGTC +CCGTCAGTAAAATTACAGATAGGCGATCGTGATAATCGTGGCTATTACTGGGATGGAGGTCACTGGCGCG +ACCACGGCTGGTGGAAACAACATTATGAATGGCGAGGCAATCGCTGGCACCTACACGGACCGCCGCCACC +GCCGCGCCACCATAAGAAAGCTCCTCATGATCATCACGGCGGTCATGGTCCAGGCAAACATCACCGCTAA +ATGACAAATGCCGGGTAACAATCCGGCATTCAGCGCCTGATGCGACGCTGGCGCGTCTTATCAGGCCTAC +GTTAATTCTGCAATATATTGAATCTGCATGCTTTTGTAGGCAGGATAAGGCGTTCACGCCGCATCCGGCA +TTGACTGCAAACTTAACGCTGCTCGTAGCGTTTAAACACCAGTTCGCCATTGCTGGAGGAATCTTCATCA +AAGAAGTAACCTTCGCTATTAAAACCAGTCAGTTGCTCTGGTTTGGTCAGCCGATTTTCAATAATGAAAC +GACTCATCAGACCGCGTGCTTTCTTAGCGTAGAAGCTGATGATCTTAAATTTGCCGTTCTTCTCATCGAG +GAACACCGGCTTGATAATCTCGGCATTCAATTTCTTCGGCTTCACCGATTTAAAATACTCATCTGACGCC +AGATTAATCACCACATTATCGCCTTGTGCTGCGAGCGCCTCGTTCAGCTTGTTGGTGATGATATCTCCCC +AGAATTGATACAGATCTTTCCCTCGGGCATTCTCAAGACGGATCCCCATTTCCAGACGATAAGGCTGCAT +TAAATCGAGCGGGCGGAGTACGCCATACAAGCCGGAAAGCATTCGCAAATGCTGTTGGGCAAAATCGAAA +TCGTCTTCGCTGAAGGTTTCGGCCTGCAAGCCGGTGTAGACATCACCTTTAAACGCCAGAATCGCCTGGC +GGGCATTCGCCGGCGTGAAATCTGGCTGCCAGTCATGAAAGCGAGCGGCGTTGATACCCGCCAGTTTGTC +GCTGATGCGCATCAGCGTGCTAATCTGCGGAGGCGTCAGTTTCCGCGCCTCATGGATCAACTGCTGGGAA +TTGTCTAACAGCTCCGGCAGCGTATAGCGCGTGGTGGTCAACGGGCTTTGGTAATCAAGCGTTTTCGCAG +GTGAAATAAGAATCAGCATATCCAGTCCTTGCAGGAAATTTATGCCGACTTTAGCAAAAAATGAGAATGA +GTTGATCGATAGTTGTGATTACTCCTGCGAAACATCATCCCACGCGTCCGGAGAAAGCTGGCGACCGATA +TCCGGATAACGCAATGGATCAAACACCGGGCGCACGCCGAGTTTACGCTGGCGTAGATAATCACTGGCAA +TGGTATGAACCACAGGCGAGAGCAGTAAAATGGCGGTCAAATTGGTAATAGCCATGCAGGCCATTATGAT +ATCTGCCAGTTGCCACATCAGCGGAAGGCTTAGCAAGGTGCCGCCGATGACCGTTGCGAAGGTGCAGATC +CGCAAACACCAGATCGCTTTAGGGTTGTTCAGGCGTAAAAAGAAGAGATTGTTTTCGGCATAAATGTAGT +TGGCAACGATGGAGCTGAAGGCAAACAGAATAACCACAAGGGTAACAAACTCAGCACCCCAGGAACCCAT +TAGCACCCGCATCGCCTTCTGGATAAGCTGAATACCTTCCAGCGGCATGTAGGTTGTGCCGTTACCCGCC +AGTAATATCAGCATGGCGCTTGCCGTACAGATGACCAGGGTGTCGATAAAAATGCCAATCATCTGGACAA +TCCCTTGCGCTGCCGGATGCGGAGGCCAGGACGCCGCTGCCGCTGCCGCGTTTGGCGTCGAACCCATTCC +CGCCTCATTGGAAAACATACTGCGCTGAAAACCGTTAGTAATCGCCTGGCTTAAGGTATATCCCGCCGCG +CCGCCTGCCGCTTCCTGCCAGCCAAAAGCACTCTCAAAAATAGACCAAATGACGTGGGGAAGTTGCCCGA +TATTCATTACGCAAATTACCAGGCTGGTCAGTACCCAGATTATCGCCATCAACGGGACAAAGCCCTGCAT +GAGCCGGGCGACGCCATGAAGACCGCGAGTGATTGCCAGCAGAGTAAAGACAGCGAGAATAATGCCTGTC +ACCAGCGGGGGAAAATCAAAAGAAAAACTCAGGGCGCGGGCAACGGCGTTCGCTTGAACTCCGCTGAAAA +TTATGCCATAGGCGATGAGCAAAAAGACGGCGAACAGAACGCCCATCCAGCGCATCCCCAGCCCGCGCGC +CATATACCATGCCGGTCCGCCACGAAACTGCCCATTGACGTCACGTTCTTTATAAAGTTGTGCCAGAGAA +CATTCGGCAAACGAGGTCGCCATGCCGATAAACGCGGCAACCCACATCCAAAAGACGGCTCCAGGTCCAC +CGGCGGTAATAGCCAGCGCAACGCCGGCCAGGTTGCCGCTACCCACGCGCGCCGCAAGACTGGTACACAA +TGACTGAAATGAGGTTAAACCGCCTGGCTGTGGATGAATGCTATTTTTAAGACTTTTGCCAAACTGGCGG +ATGTAGCGAAACTGCACAAATCCGGTGCGAAAAGTGAACCAACAACCTGCGCCGAAGAGCAGGTAAATCA +TTACCGATCCCCAAAGGACGCTGTTAATGAAGGAGAAAAAATCTGGCATGCATATCCCTCTTATTGCCGG +TCGCGATGACTTTCCTGTGTAAACGTTACCAATTGTTTAAGAAGTATATACGCTACGAGGTACTTGATAA +CTTCTGCGTAGCATACATGAGGTTTTGTATAAAAATGGCGGGCGATATCAACGCAGTGTCAGAAATCCGA +AACAGTCTCGCCTGGCGATAACCGTCTTGTCGGCGGTTGCGCTGACGTTGCGTCGTGATATCATCAGGGC +AGACCGGTTACATCCCCCTAACAAGCTGTTTAAAGAGAAATACTATCATGACGGACAAATTGACCTCCCT +TCGTCAGTACACCACCGTAGTGGCCGACACTGGGGACATCGCGGCAATGAAGCTGTATCAACCGCAGGAT +GCCACAACCAACCCTTCTCTCATTCTTAACGCAGCGCAGATTCCGGAATACCGTAAGTTGATTGATGATG +CTGTCGCCTGGGCGAAACAGCAGAGCAACGATCGCGCGCAGCAGATCGTGGACGCGACCGACAAACTGGC +AGTAAATATTGGTCTGGAAATCCTGAAACTGGTTCCGGGCCGTATCTCAACTGAAGTTGATGCGCGTCTT +TCCTATGACACCGAAGCGTCAATTGCGAAAGCAAAACGCCTGATCAAACTCTACAACGATGCTGGTATTA +GCAACGATCGTATTCTGATCAAACTGGCTTCTACCTGGCAGGGTATCCGTGCTGCAGAACAGCTGGAAAA +AGAAGGCATCAACTGTAACCTGACCCTGCTGTTCTCCTTCGCTCAGGCTCGTGCTTGTGCGGAAGCGGGC +GTGTTCCTGATCTCGCCGTTTGTTGGCCGTATTCTTGACTGGTACAAAGCGAATACCGATAAGAAAGAGT +ACGCTCCGGCAGAAGATCCGGGCGTGGTTTCTGTATCTGAAATCTACCAGTACTACAAAGAGCACGGTTA +TGAAACCGTGGTTATGGGCGCAAGCTTCCGTAACATCGGCGAAATTCTGGAACTGGCAGGCTGCGACCGT +CTGACCATCGCACCGGCACTGCTGAAAGAGCTGGCGGAGAGCGAAGGGGCTATCGAACGTAAACTGTCTT +ACACCGGCGAAGTGAAAGCGCGTCCGGCGCGTATCACTGAGTCCGAGTTCCTGTGGCAGCACAACCAGGA +TCCAATGGCAGTAGATAAACTGGCGGAAGGTATCCGTAAGTTTGCTATTGACCAGGAAAAACTGGAAAAA +ATGATCGGCGATCTGCTGTAATCATTCTTAGCGTGACCGGGAAGTCGGTCACGCTACCTCTTCTGAAGCC +TGTCTGTCACTCCCTTCGCAGTGTATCATTCTGTTTAACGAGACTGTTTAAACGGAAAAATCTTGATGAA +TACTTTACGTATTGGCTTAGTTTCCATCTCTGATCGCGCATCCAGCGGCGTTTATCAGGATAAAGGCATC +CCTGCGCTGGAAGAATGGCTGACATCGGCGCTAACCACGCCGTTTGAACTGGAAACCCGCTTAATCCCCG +ATGAGCAGGCGATCATCGAGCAAACGTTGTGTGAGCTGGTGGATGAAATGAGTTGCCATCTGGTGCTCAC +CACGGGCGGAACTGGCCCGGCGCGTCGTGACGTAACGCCCGATGCGACGCTGGCAGTAGCGGACCGCGAG +ATGCCTGGCTTTGGTGAACAGATGCGCCAGATCAGCCTGCATTTTGTACCAACTGCGATCCTTTCGCGTC +AGGTGGGCGTGATTCGCAAACAGGCGCTGATCCTTAACTTACCCGGTCAGCCGAAGTCTATTAAAGAGAC +GCTGGAAGGTGTGAAGGACGCTGAGGGTAACGTTGTGGTACACGGTATTTTTGCCAGCGTACCGTACTGC +ATTCAGTTGCTGGAAGGGCCATACGTTGAAACGGCACCGGAAGTGGTTGCAGCATTCAGACCGAAGAGTG +CAAGACGCGACGTTAGCGAATAAAAAAATCCCCCCGAGCGGGGGGATCTCAAAACAATTAGTGGGATTCA +CCAATCGGCAGAACGGTGCGACCAAACTGCTCGTTCAGTACTTCACCCATCGCCAGATAGATTGCGCTGG +CACCGCAGATCAGCCCAATCCAGCCGGCAAAGTGGATGATTGCGGCGTTACCGGCAATGTTACCGATCGC +CAGCAGGGCAAACAGCACGGTCAGGCTAAAGAAAACGAATTGCAGAACGCGTGCGCCTTTCAGCGTGCCG +AAGAACATAAACAGCGTAAATACGCCCCACAGACCCAGGTAGACACCAAGGAACTGTGCATTTGGCGCAT +CGGTCAGACCCAGTTTCGGCATCAGCAGAATCGCAACCAGCGTCAGCCAGAAAGAACCGTAAGAGGTGAA +TGCGGTTAAACCGAAAGTGTTGCCTTTTTTGTACTCCAGCAGACCAGCAAAAATTTGCGCGATGCCGCCG +TAGAAAATGCCCATGGCAAGAATAATACCGTCCAGAGCGAAATAACCCACGTTGTGCAGGTTAAGCAGAA +TGGTGGTCATGCCGAAGCCCATCAGGCCCAGCGGTGCCGGATTAGCCAACTTAGTGTTGCCCATAATTCC +TCAAAAATCATCATCGAATGAATGGTGAAATAATTTCCCTGAATAACTGTAGTGTTTTCAGGGCGCGGCA +TAATAATCAGCCAGTGGGGCAGTGTCTACGATCTTTTGAGGGGAAAATGAAAATTTTCCCCGGTTTCCGG +TATCAGACCTGAGTGGCGCTAACCATCCGGCGCAGGCAGGCGATTTGCAGTACGGCTGGAATCGTCACGC +GATAGGCGCTGCCGCTGACCGCTTTAACCCCATTTAGTGCCGCACCTACAGGGCCTCCCAGCCCCGCGCC +GCGCAGCAAACCATGCCCAAGTACGCTCATTGCTGCGTGGGTGCGTAAAATGCGGGTCAGTTGGCTGGAA +AGCAAATGCGACACACCTTTTGCCAATAATTTGTCTTTCATCAGCAGCGGCAGCAGCTCTTCCAGCTCAT +TCACCCTGGCATCGACCGCGTGCAGAAACTCCTGCTTATGTTCCTCGTCCATTTTCTTCCAGGTATTACG +CAGAAATTGTTCCAGTAACTGTTGCTCAATTTCAAACGTAGACATCTCTTTGTCGGCTTTCAGCTTCAAT +CGCTTTGAAACATCGAGCAAAATGGCCCGATACAATTTACCGTGTCCGCGCAGTTTGTTGGCGATACTAT +CGCCACCAAAATGCTGTAATTCTCCGGCAATCAGCTGCCAGTTGCGGCGATGTTGCTCGGGATGCCCTTC +CATCGATTTAAACAGTTCGTTGCGCATCAGTACGCTGGAGAGGCGAGTTTTGCCTTTTTCATTATGGGTG +AGCAATCGGGCGAAATTTGCCAACTGTTCCTCACTACAATGCTGAAGAAAATCCAGATCTGAATCATTCA +GGTAATTAACATTCATTTTTTGTGGCTTCTATATTCTGGCGTTAGTCGTCGCCGATAATTTTCAGCGTGG +CCATATCCGATGAGTTCACCGTATGACCCGAAAAGGTGATTTTTGAGACGCAGCGTTTATTGTCGTTATC +GCTGTTAATGTTGATCCAGTCAGTGGTTTGCCCTTCTTTTATTTCTGAAGGAATATTCAGGCTCTGACTG +GCGCTACGGGCGGCTTTGAAATAAACCGATGCACCGCTTAACTGTAAATCGCCATGGTCGGCAGAGAGTT +GTATGCGTTTCACAATGCGACAAACAGGAAGTTTCAGCGCCAGATCGTTGGTTTCGTTACGCGGCATTGC +AATGGCGCCGAGGAGTTTATGGTCGTTTGCCTGCGCCGTGCAGCACAGCATCAGGCTAATCGCCAGGCTG +GCGGAAATCGTAAAAACGGATTTCATAAGGATTCTCTTAGTGGGAAGAGGTAGGGGGATGAATACCCACT +AGTTTACTGCTGATAAAGAGAAGATTCAGGCACGTAATCTTTTCTTTTTATTACAATTTTTTGATGAATG +CCTTGGCTGCGATTCATTCTTTATATGAATAAAATTGCTGTCAATTTTACGTCTTGTCCTGCCATATCGC +GAAATTTCTGCGCAAAAGCACAAAAAATTTTTGCATCTCCCCCTTGATGACGTGGTTTACGACCCCATTT +AGTAGTCAACCGCAGTGAGTGAGTCTGCAAAAAAATGAAATTGGGCAGTTGAAACCAGACGTTTCGCCCC +TATTACAGACTCACAACCACATGATGACCGAATATATAGTGGAGACGTTTAGATGGGTAAAATAATTGGT +ATCGACCTGGGTACTACCAACTCTTGTGTAGCGATTATGGATGGCACCACTCCTCGCGTGCTGGAGAACG +CCGAAGGCGATCGCACCACGCCTTCTATCATTGCCTATACCCAGGATGGTGAAACTCTAGTTGGTCAGCC +GGCTAAACGTCAGGCAGTGACGAACCCGCAAAACACTCTGTTTGCGATTAAACGCCTGATTGGTCGCCGC +TTCCAGGACGAAGAAGTACAGCGTGATGTTTCCATCATGCCGTTCAAAATTATTGCTGCTGATAACGGCG +ACGCATGGGTCGAAGTTAAAGGCCAGAAAATGGCACCGCCGCAGATTTCTGCTGAAGTGCTGAAAAAAAT +GAAGAAAACCGCTGAAGATTACCTGGGTGAACCGGTAACTGAAGCTGTTATCACCGTACCGGCATACTTT +AACGATGCTCAGCGTCAGGCAACCAAAGACGCAGGCCGTATCGCTGGTCTGGAAGTAAAACGTATCATCA +ACGAACCGACCGCAGCTGCGCTGGCTTACGGTCTGGACAAAGGCACTGGCAACCGTACTATCGCGGTTTA +TGACCTGGGTGGTGGTACTTTCGATATTTCTATTATCGAAATCGACGAAGTTGACGGCGAAAAAACCTTC +GAAGTTCTGGCAACCAACGGTGATACCCACCTGGGGGGTGAAGACTTCGACAGCCGTCTGATCAACTATC +TGGTTGAAGAATTCAAGAAAGATCAGGGCATTGACCTGCGCAACGATCCGCTGGCAATGCAGCGCCTGAA +AGAAGCGGCAGAAAAAGCGAAAATCGAACTGTCTTCCGCTCAGCAGACCGACGTTAACCTGCCATACATC +ACTGCAGACGCGACCGGTCCGAAACACATGAACATCAAAGTGACTCGTGCGAAACTGGAAAGCCTGGTTG +AAGATCTGGTAAACCGTTCCATTGAGCCGCTGAAAGTTGCACTGCAGGACGCTGGCCTGTCCGTATCTGA +TATCGACGACGTTATCCTCGTTGGTGGTCAGACTCGTATGCCAATGGTTCAGAAGAAAGTTGCTGAGTTC +TTTGGTAAAGAGCCGCGTAAAGACGTTAACCCGGACGAAGCTGTAGCAATCGGTGCTGCTGTTCAGGGTG +GTGTTCTGACTGGTGACGTAAAAGACGTACTGCTGCTGGACGTTACCCCGCTGTCTCTGGGTATCGAAAC +CATGGGCGGTGTGATGACGACGCTGATCGCGAAAAACACCACTATCCCGACCAAGCACAGCCAGGTGTTC +TCTACCGCTGAAGACAACCAGTCTGCGGTAACCATCCATGTGCTGCAGGGTGAACGTAAACGTGCGGCTG +ATAACAAATCTCTGGGTCAGTTCAACCTAGATGGTATCAACCCGGCACCGCGCGGCATGCCGCAGATCGA +AGTTACCTTCGATATCGATGCTGACGGTATCCTGCACGTTTCCGCGAAAGATAAAAACAGCGGTAAAGAG +CAGAAGATCACCATCAAGGCTTCTTCTGGTCTGAACGAAGATGAAATCCAGAAAATGGTACGCGACGCAG +AAGCTAACGCCGAAGCTGACCGTAAGTTTGAAGAGCTGGTACAGACTCGCAACCAGGGCGACCATCTGCT +GCACAGCACCCGTAAGCAGGTTGAAGAAGCAGGCGACAAACTGCCGGCTGACGACAAAACTGCTATCGAG +TCTGCGCTGACTGCACTGGAAACTGCTCTGAAAGGTGAAGACAAAGCCGCTATCGAAGCGAAAATGCAGG +AACTGGCACAGGTTTCCCAGAAACTGATGGAAATCGCCCAGCAGCAACATGCCCAGCAGCAGACTGCCGG +TGCTGATGCTTCTGCAAACAACGCGAAAGATGACGATGTTGTCGACGCTGAATTTGAAGAAGTCAAAGAC +AAAAAATAATCGCCCTATAAACGGGTAATTATACTGACACGGGCGAAGGGGAATTTCCTCTCCGCCCGTG +CATTCATCTAGGGGCAATTTAAAAAAGATGGCTAAGCAAGATTATTACGAGATTTTAGGCGTTTCCAAAA +CAGCGGAAGAGCGTGAAATCAGAAAGGCCTACAAACGCCTGGCCATGAAATACCACCCGGACCGTAACCA +GGGTGACAAAGAGGCCGAGGCGAAATTTAAAGAGATCAAGGAAGCTTATGAAGTTCTGACCGACTCGCAA +AAACGTGCGGCATACGATCAGTATGGTCATGCTGCGTTTGAGCAAGGTGGCATGGGCGGCGGCGGTTTTG +GCGGCGGCGCAGACTTCAGCGATATTTTTGGTGACGTTTTCGGCGATATTTTTGGCGGCGGACGTGGTCG +TCAACGTGCGGCGCGCGGTGCTGATTTACGCTATAACATGGAGCTCACCCTCGAAGAAGCTGTACGTGGC +GTGACCAAAGAGATCCGCATTCCGACTCTGGAAGAGTGTGACGTTTGCCACGGTAGCGGTGCAAAACCAG +GTACACAGCCGCAGACTTGTCCGACCTGTCATGGTTCTGGTCAGGTGCAGATGCGCCAGGGATTCTTCGC +TGTACAGCAGACCTGTCCACACTGTCAGGGCCGCGGTACGCTGATCAAAGATCCGTGCAACAAATGTCAT +GGTCATGGTCGTGTTGAGCGCAGCAAAACGCTGTCCGTTAAAATCCCGGCAGGGGTGGACACTGGAGACC +GCATCCGTCTTGCGGGCGAAGGTGAAGCGGGCGAGCATGGCGCACCGGCAGGCGATCTGTACGTTCAGGT +TCAGGTTAAACAGCACCCGATTTTCGAGCGTGAAGGCAACAACCTGTATTGCGAAGTCCCGATCAACTTC +GCTATGGCGGCGCTGGGTGGCGAAATCGAAGTACCGACCCTTGATGGTCGCGTCAAACTGAAAGTGCCTG +GCGAAACCCAGACCGGTAAGCTATTCCGTATGCGCGGTAAAGGCGTCAAGTCTGTCCGCGGTGGCGCACA +GGGTGATTTGCTGTGCCGCGTTGTCGTCGAAACACCGGTAGGCCTGAACGAAAGGCAGAAACAGCTGCTG +CAAGAGCTGCAAGAAAGCTTCGGTGGCCCAACCGGCGAGCACAACAGCCCGCGCTCAAAGAGCTTCTTTG +ATGGTGTGAAGAAGTTTTTTGACGACCTGACCCGCTAACCTCCCCAAAAGCCTGCCCGTGGGCAGGCCTG +GGTAAAAATAGGGTGCGTTGAAGATATGCGAGCACCTGTAAAGTGGCGGGGATCACTCCCATAAGCGCTA +ACTTAAGGGTTGTGGTATTACGCCTGATATGATTTAACGTGCCGATGAATTACTCTCACGATAACTGGTC +AGCAATTCTGGCCCATATTGGTAAGCCCGAAGAACTGGATACTTCGGCACGTAATGCCGGGGCTCTAACC +CGCCGCCGCGAAATTCGTGATGCTGCAACTCTGCTACGTCTGGGGCTGGCTTACGGCCCCGGGGGGATGT +CATTACGTGAAGTCACTGCATGGGCTCAGCTCCATGACGTTGCAACATTATCTGACGTGGCTCTCCTGAA +GCGGCTGCGGAATGCCGCCGACTGGTTTGGCATACTTGCCGCACAAACACTTGCTGTACGCGCCGCAGTT +ACGGGTTGTACAAGCGGAAAGAGATTGCGTCTTGTCGATGGAACAGCAATCAGTGCGCCCGGGGGCGGCA +GCGCTGAATGGCGACTACATATGGGATATGATCCTCATACCTGTCAGTTCACTGATTTTGAGCTAACCGA +CAGCAGAGACGCTGAACGGCTGGACCGATTTGCGCAAACGGCAGACGAGATACGCATTGCTGACCGGGGA +TTCGGTTCGCGTCCCGAATGTATCCGCTCACTTGCTTTTGGAGAAGCTGATTATATCGTCCGGGTTCACT +GGCGAGGATTGCGCTGGTTAACTGCAGAAGGAATGCGCTTTGACATGATGGGTTTTCTGCGCGGGCTGGA +TTGCGGTAAGAACGGTGAAACCACTGTAATGATAGGCAATTCAGGTAATAAAAAAGCCGGAGCTCCCTTT +CCGGCACGTCTCATTGCCGTATCACTTCCTCCCGAAAAAGCATTAATCAGTAAAACCCGACTGCTCAGCG +AGAATCGTCGAAAAGGACGAGTAGTTCAGGCGGAAACGCTGGAAGCAGCGGGCCATGTGCTATTGCTAAC +ATCATTACCGGAAGATGAATATTCAGCAGAGCAAGTGGCTGATTGTTACCGTCTGCGATGGCAAATTGAA +CTGGCTTTTAAGCGGCTCAAAAGTTTGCTGCACCTGGATGCTTTGCGTGCAAAGGAACCTGAACTCGCGA +AAGCGTGGATATTTGCTAATCTACTCGCCGCATTTTTAATTGACGACATAATCCAGCCATCGCTGGATTT +CCCCCCCAGAAGTGCCGGATCCGAAAAGAAGAACTAACTCGTTGTGGAGAATAACAAAAATGGTCATCTG +GAGCTTACAGGTGGCCATTCGTGGGACAGTATCCCTGACAGCCTACAAAACGCAATTGAAGAACGCGAGG +CATCGTCTTAACGAGGCACCGAGGCGTCGCATTCTTCAGATGGTTCAACCCTTAAGTTAGCGCTTATGGG +ATCACTCCCCGCCGTTGCTCTTACTCGGATTCGTAAGCCGTGAAAACAGCAACCTCCGTCTGGCCAGTTC +GGATGTGAACCTCACAGAGGTCTTTTCTCGTTACCAGCGCCGCCACTACGGCGGTGATACAGATGACGAT +CAGGGCGACAATCATCGCCTTATGCTGCTTCATTGCTCTCTTCTCCTTGACCTTACGGTCAGTAAGAGGC +ACTCTACATGTGTTCAGCATATAGGAGGCCTCGGGTTGATGGTAAAATATCACTCGGGGCTTTTCTCTAT +CTGCCGTTCAGCTAATGCCTGAGACAGACAGCCTCAAGCACCCGCCGCTATTATATCGCTCTCTTTAACC +CATTTTGTTTTATCGATTCTAATCCTGAAGACGCCTCGCATTTTTGTGGCGTAATTTTTTAATGATTTAA +TTATTTAACTTTAATTTATCTCTTCATCGCAATTATTGACGACAAGCTGGATTATTTTTGAAATATTGGC +CTAACAAGCATCGCCGACTGACAACAAATTAATTATTACTTTTCCTAATTAATCCCTCAGGAATCCTCAC +CTTAAGCTATGATTATCTAGGCTTAGGGTCACTCGTGAGCGCTTACAGCCGTCAAAAACGCATCTCACCG +CTGATGGCGCAAATTCTTCAATAGCTCGTAAAAAACGAATTATTCCTACACTATAATCTGATTTTAACGA +TGATTCGTGCGGGGTAAAATAGTAAAAACGATCTATTCACCTGAAAGAGAAATAAAAAGTGAAACATCTG +CATCGATTCTTTAGCAGTGATGCCTCGGGAGGCATTATTCTTATCATTGCCGCTATCCTGGCGATGATTA +TGGCCAACAGCGGCGCAACCAGTGGATGGTATCACGACTTTCTGGAGACGCCGGTTCAGCTCCGGGTTGG +TTCACTCGAAATCAACAAAAACATGCTGTTATGGATAAATGACGCGCTGATGGCGGTATTTTTCCTGTTA +GTCGGTCTGGAAGTTAAACGTGAACTGATGCAAGGATCGCTAGCCAGCTTACGCCAGGCCGCATTTCCAG +TTATCGCCGCTATTGGTGGGATGATTGTGCCGGCATTACTCTATCTGGCTTTTAACTATGCCGATCCGAT +TACCCGCGAAGGGTGGGCGATCCCGGCGGCTACTGACATTGCTTTTGCACTTGGTGTACTGGCGCTGTTG +GGAAGTCGTGTTCCGTTAGCGCTGAAGATCTTTTTGATGGCTCTGGCTATTATCGACGATCTTGGGGCCA +TCATTATCATCGCATTGTTCTACACTAATGACTTATCGATGGCCTCTCTTGGCGTCGCGGCTGTAGCAAT +TGCGGTACTCGCGGTATTGAATCTGTGTGGTGCACGCCGCACGGGCGTCTATATTCTTGTTGGCGTGGTG +TTGTGGACTGCGGTGTTGAAATCGGGGGTTCACGCAACTCTGGCGGGGGTAATTGTCGGCTTCTTTATTC +CTTTGAAAGAGAAGCATGGGCGTTCTCCAGCGAAGCGACTGGAGCATGTGTTGCACCCGTGGGTGGCGTA +TCTGATTTTGCCGCTGTTTGCATTTGCTAATGCTGGCGTTTCACTGCAAGGCGTCACGCTGGATGGCTTG +ACCTCCATTCTGCCATTGGGGATCATCGCTGGCTTGCTGATTGGCAAACCGCTGGGGATTAGTCTGTTCT +GCTGGTTGGCGCTGCGTTTGAAACTGGCGCATCTGCCTGAGGGAACGACTTATCAGCAAATTATGGTGGT +GGGGATCCTGTGCGGTATCGGTTTTACTATGTCTATCTTTATTGCCAGCCTGGCCTTTGGTAGCGTAGAT +CCAGAACTGATTAACTGGGCGAAACTCGGTATCCTGGTCGGTTCTATCTCTTCGGCGGTAATTGGATACA +GCTGGTTACGCGTTCGTTTGCGTCCATCAGTTTGACAGGACGGTTTACCGGGGAGCCATAAACGGCTCCC +TTTTCATTGTTATCAGGGAGAGAAATGAGCATGTCTCATATCAATTACAACCACTTGTATTACTTCTGGC +ATGTCTATAAAGAAGGTTCCGTGGTTGGCGCAGCGGAGGCGCTTTATTTAACTCCACAAACCATTACCGG +ACAGATTCGAGCGCTGGAAGAGCGCCTGCAAGGCAAATTATTTAAACGCAAGGGACGTGGTCTCGAACCC +AGCGAGCTGGGAGAACTGGTCTATCGCTATGCCGATAAAATGTTCACCTTAAGCCAGGAAATGCTGGATA +TTGTGAACTATCGCAAAGAATCCAATTTATTGTTTGACGTTGGCGTGGCTGATGCACTTTCCAAACGCCT +GGTCAGTAGCGTACTTAACGCCGCAGTGGTAGAAGGCGAGCCCATTCATCTTCGCTGCTTCGAATCCACC +CACGAAATGCTGCTGGAGCAATTAAGTCAGCATAAACTGGATATGATCATTTCTGACTGTCCGATAGACT +CTACGCAGCAGGAAGGCCTGTTCTCCGTGAGAATTGGCGAATGTGGCGTGAGTTTCTGGTGTACAAATCC +ACCACCAGAAAAACCGTTCCCGGCTTGTCTGGAAGAACGGCGACTTTTGATTCCTGGGCGACGTTCAATG +TTAGGGCGCAAATTGCTTAACTGGTTTAACTCCCAGGGATTAAACGTAGAAATCCTCGGCGAGTTTGATG +ATGCCGCTTTGATGAAAGCTTTTGGTGCGATGCACAATGCAATCTTCGTTGCCCCAACGCTTTATGCATA +TGACTTTTATGCCGATAAAACTGTCGTAGAAATTGGTCGCGTCGAGAATGTGATGGAAGAGTACCATGCT +ATTTTTGCTGAGCGGATGATTCAGCACCCGGCGGTACAGCGAATCTGCAATACGGATTATTCTGCGCTTT +TTAGTCCAGCGGTGCGTTAATCGGCAGCTCCCCCAAAGTTAAGGTGGGGGAGATAGATTAGTTGTACATT +ACCACGATTTTGACTCGGCTCATTATTTGCCCGCTTGAGACATTGTTTCCATATGTACGCGGGCGAATAA +ATAGAGGAATCTGATTACTTCCTTCATGGGGATGCTGAAAAGAGTAGTAATTGCTGGTAATGACTCCAAC +TTATTGATAGTGTTTTATGTTCAGATAATGCCCGATGACTTTGTCATGCAGCTCCACCGATTTTGAGAAC +GACAGCGACTTCCGTCCCAGCCGTGCCAGGTGCTGCCTCAGATTCAGGTTATGCCGCTCAATTCGCTGCG +TATATCGCTTGCTGATTACGTGCAGCTTTCCCTTCAGGCGGGATTCATACAGCGGCCAGCCATCCGTCAT +CCATATCACCACGTCAAAGGGTGACAGCAGGCTCATAAGACGCCCCAGCGTCGCCATAGTGCGTTCACCG +AATACGTGCGCAACAACCGTCTTCCGGAGACTGTCATACGCGTAAAACAGCCAGCGCTGGCGCGATTTAG +CCCCGACATAGCCCCACTGTTCGTCCATTTCCGCGCAGACGATGACGTCACTGCCCGGCTGTATGCGCGA +GGTTACCGACTGCGGCCTGAGTTTTTTAAGTGACGTAAAATCGTGTTGAGGCCAACGCCCATAATGCGGG +CTGTTGCCCGGCATCCAACGCCATTCATGGCCATATCAATGATTTTCTGGTGCGTACCGGGTTGAGAAGC +GGTGTAAGTGAACTGCAGTTGCCATGTTTTACGGCAGTGAGAGCAGAGATAGCGCTGATGTCCGGCGGTG +CTTTTGCCGTTACGCACCACCCCGTCAGTAGCTGAACAGGAGGGACAGCTGATAGAAACAGAAGCCACTG +GAGCACCTCAAAAACACCATCATACACTAAATCAGTAAGTTGGCAGCATCACCTACCTCAATGTGTATCA +CAATATCCATATTCTTTGTGGGGGAGTCTGGAGATTGAGTAGATATTCTTGTTCAGAATGTATCAGCCGA +TGGTTCTACGATTCTTAAGCCACGAAGAGTTCAGATAGTACAACGGCATGTCTCTTTTGACTATCTGGCA +ACCGGCAGTGTGTTCTCTCACGCATCACAAAAGCAGCAGGCATAAAAAAACCCGCTTGCGCGGGCTTTTT +CACAAAGCTTCAGCAAATTGGCGATTAAGCCAGTTTGTTGATCTGTGCAGTCAGGTTAGCCTTATGACGT +GCAGCTTTGTTTTTGTGGATCAGACCTTTAGCAGCCTGACGGTCCACGATCGGTTGCATTTCGTTAAATG +CTTTCTGTGCAGCAGCTTTGTCGCCAGCTTCGATAGCTGCGTATACTTTCTTGATGAAAGTACGCATCAT +AGAGCGACGGCTTGCGTTGTGCTTACGAGCCTTTTCAGACTGAATGGCGCGCTTCTTAGCTGATTTGATA +TTAGCCAAGGTCCAACTCCCAAATGTGTTCTATATGGACAATTCAAAGGCCGAGGAATATGCCCTTTTAG +CCTTCTTTTGTCAATGGATTTGTGCAAATAAGCGCCGTTAATGTGCCGGCACTCGTTACGTAGTGATGGC +GCAGGATTCTACCAGCTTGCGGGGTGTGAATACAGCTTTTCCGCGATAAAAATTGCAGCAGGCGGTCAGT +TTCTTCCCGTGATTTGCGCCATGGCAATGAAAAGCCACTTCTTTCTGATTTCGGTACTCAATCGCCGGTT +AACCTTGACCGCTGTACAAGGTATACTCGGACGATTTTCACTGTTTTGAGCCAGACATGAAGCTGATACG +CGGCATACATAATCTCAGCCAGGCCCCGCAAGAAGGGTGTGTGCTGACTATTGGTAATTTCGACGGCGTG +CATCGCGGTCATCGCGCGCTGTTACAGGGCTTGCAGGAAGAAGGGCGCAAGCGCAACTTACCGGTGATGG +TGATGCTTTTTGAACCTCAACCACTGGAACTGTTTGCTACCGATAAAGCCCCGGCAAGACTGACCCGGCT +GCGGGAAAAACTGCGTTACCTTGCAGAGTGTGGCGTTGATTACGTGCTGTGCGTGCGTTTCGACAGGCGT +TTCGCGGCGTTAACCGCGCAAAATTTCATCAGCGATCTTCTGGTGAAGCATTTGCGCGTAAAATTTCTTG +CCGTAGGTGATGATTTCCGCTTTGGCGCTGGTCGTGAAGGCGATTTCTTGTTATTACAGAAAGCTGGCAT +GGAATACGGCTTCGATATCACCAGTACGCAAACTTTTTGCGAAGGTGGCGTGCGCATCAGCAGCACCGCC +GTGCGTCAGGCCCTTGCGGATGACAATCTGGCTCTGGCAGAGAGTTTACTGGGGCACCCGTTTGCCATCT +CCGGGCGTGTAGTCCACGGTGATGAATTAGGGCGCACTATAGGTTTCCCGACGGCGAATGTACCGCTGCG +CCGTCAGGTTTCCCCGGTGAAAGGGGTTTATGCGGTAGAAGTGCTGGGCCTCGGTGAAAAGCCGTTACCC +GGCGTGGCAAACATCGGAACACGCCCAACGGTTGCCGGTATTCGCCAGCAGCTGGAAGTGCATTTGTTAG +ATGTTGCAATGGACCTTTACGGTCGCCATATACAAGTAGTGCTGCGTAAAAAAATACGCAATGAGCAGCG +ATTTGCGTCGCTGGACGAACTGAAAGCGCAGATTGCGCGTGATGAATTAACCGCCCGCGAATTTTTTGGG +CTAACAAAACCGGCTTAAGCCTGTTATGTAATCAAACCGAAATACGGAACCGAGAATCTGATGAGTGACT +ATAAATCAACCCTGAATTTGCCGGAAACAGGGTTCCCGATGCGTGGCGATCTCGCCAAGCGCGAACCCGG +AATGCTGGCGCGTTGGACTGATGATGATCTGTACGGCATCATCCGTGCGGCTAAAAAAGGCAAAAAAACC +TTCATTCTGCATGATGGCCCTCCTTATGCGAATGGCAGCATTCATATTGGTCACTCGGTTAACAAGATTC +TGAAAGACATTATCGTGAAGTCCAAAGGGCTTTCCGGTTATGACTCGCCGTATGTGCCTGGCTGGGACTG +CCACGGTCTGCCGATCGAGCTGAAAGTCGAGCAAGAATACGGTAAGCCGGGTGAGAAATTCACCGCCGCC +GAGTTCCGCGCCAAGTGCCGCGAATACGCGGCGACCCAGGTTGACGGTCAACGCAAAGACTTTATCCGTC +TGGGCGTGCTGGGCGACTGGTCGCACCCGTACCTGACCATGGACTTCAAAACTGAAGCCAACATCATCCG +CGCGCTGGGCAAAATCATCGGCAACGGTCACCTGCACAAAGGCGCGAAGCCAGTTCACTGGTGCGTTGAC +TGCCGTTCTGCGCTGGCGGAAGCGGAAGTTGAGTATTACGACAAAACTTCTCCGTCCATCGACGTTGCTT +TCCAGGCAGTCGATCAGGATGCACTGAAAGCAAAATTTGCCGTAAGCAACGTTAACGGCCCAATCTCGCT +GGTAATCTGGACCACCACGCCGTGGACTCTGCCTGCCAACCGCGCAATCTCTATTGCACCAGATTTCGAC +TATGCGCTGGTGCAGATCGACGGTCAGGCCGTGATTCTGGCGAAAGATCTGGTTGAAAGCGTAATGCAGC +GTATCGGCGTGACCGATTACACCATTCTCGGCACGGTAAAAGGTGCGGAGCTTGAGCTGCTGCGCTTTAC +CCATCCGTTTATGGGCTTCGACGTTCCGGCAATCCTCGGCGATCACGTTACCCTGGATGCCGGTACCGGT +GCCGTTCACACCGCGCCTGGCCACGGCCCGGACGACTATGTGATCGGTCAGAAATACGGCCTGGAAACCG +CTAACCCGGTTGGCCCGGACGGCACTTATCTGCCGGGCACTTATCCGACGCTGGATGGCGTGAACGTCTT +CAAAGCGAACGACATCGTCGTTGCGCTGCTGCAGGAAAAAGGCGCGCTGCTGCACGTTGAGAAAATGCAG +CACAGCTATCCGTGCTGCTGGCGTCACAAAACGCCGATCATCTTCCGCGCGACGCCGCAGTGGTTCGTCA +GCATGGATCAGAAAGGTCTGCGTGCGCAGTCACTGAAAGAGATCAAAGGCGTGCAGTGGATCCCGGACTG +GGGCCAGGCGCGTATCGAGTCGATGGTTGCTAACCGTCCTGACTGGTGTATCTCCCGTCAGCGCACCTGG +GGTGTACCGATGTCACTGTTCGTGCACAAAGACACGGAAGAGCTGCATCCGCGTACCCTTGAACTGATGG +AAGAAGTGGCAAAACGCGTTGAAGTCGATGGCATCCAGGCGTGGTGGGATCTCGATGCGAAAGAGATCCT +CGGCGACGAAGCTGATCAGTACGTGAAAGTGCCGGACACATTGGATGTATGGTTTGACTCCGGATCTACC +CACTCTTCTGTTGTTGACGTGCGTCCGGAATTTGCCGGTCACGCAGCGGACATGTATCTGGAAGGTTCTG +ACCAACACCGCGGCTGGTTCATGTCTTCCCTAATGATCTCCACCGCGATGAAGGGTAAAGCGCCGTATCG +TCAGGTACTGACCCACGGCTTTACCGTGGATGGTCAGGGCCGCAAGATGTCTAAATCCATCGGCAATACC +GTTTCGCCGCAGGATGTGATGAACAAACTGGGCGCGGATATTCTGCGTCTGTGGGTGGCATCAACCGACT +ACACCGGTGAAATGGCCGTTTCTGACGAGATCCTGAAACGTGCTGCCGATAGCTATCGTCGTATCCGTAA +CACCGCGCGCTTCCTGCTGGCAAACCTGAACGGTTTTGATCCAGCAAAAGATATGGTGAAACCGGAAGAG +ATGGTGGTACTGGATCGCTGGGCCGTAGGTTGTGCGAAAGCGGCACAGGAAGACATCCTCAAGGCGTACG +AAGCATACGATTTCCACGAAGTGGTACAGCGTCTGATGCGCTTCTGCTCCGTTGAGATGGGTTCCTTCTA +CCTCGACATCATCAAAGACCGTCAGTACACCGCCAAAGCGGACAGTGTGGCGCGTCGTAGCTGCCAGACT +GCGCTATATCACATCGCAGAAGCGCTGGTGCGCTGGATGGCACCAATCCTCTCCTTCACCGCTGATGAAG +TGTGGGGCTACCTGCCGGGCGAACGTGAAAAATACGTCTTCACCGGTGAGTGGTACGAAGGCCTGTTTGG +CCTGGCAGACAGTGAAGCGATGAACGATGCGTTCTGGGACGAGCTGTTGAAAGTGCGTGGCGAAGTGAAC +AAAGTCATTGAGCAAGCGCGTGCCGACAAGAAAGTGGGTGGCTCGCTGGAAGCGGCAGTAACCTTGTATG +CAGAACCGGAACTGTCGGCGAAACTGACCGCGCTGGGCGATGAATTACGATTTGTCCTGTTGACCTCCGG +CGCTACCGTTGCAGACTATAACGACGCACCTGCTGATGCTCAGCAGAGCGAAGTACTCAAAGGGCTGAAA +GTCGCGTTGAGTAAAGCCGAAGGTGAGAAGTGCCCACGCTGCTGGCACTACACCCAGGATGTCGGCAAGG +TGGCGGAACACGCAGAAATCTGCGGCCGCTGTGTCAGCAACGTCGCCGGTGACGGTGAAAAACGTAAGTT +TGCCTGATGAGTCAATCGATCTGTTCAACAGGGCTACGCTGGCTGTGGCTGGTGGTAGTCGTGCTGATTA +TCGATCTGGGCAGCAAATACCTGATCCTCCAGAACTTTGCTCTGGGGGATACGGTCCCGCTGTTCCCGTC +GCTTAATCTGCATTATGCGCGTAACTATGGCGCGGCGTTTAGTTTCCTTGCCGATAGCGGCGGCTGGCAG +CGTTGGTTCTTTGCCGGTATTGCGATTGGTATTAGCGTGATCCTGGCAGTGATGATGTATCGCTCGAAGG +CCACGCAGAAGCTAAACAATATCGCTTACGCGCTGATTATTGGCGGCGCGCTGGGCAACCTGTTCGACCG +CCTGTGGCACGGCTTCGTTGTCGATATGATCGACTTCTACGTCGGCGACTGGCACTTCGCCACCTTCAAC +CTTGCCGATACTGCCATCTGTGTCGGTGCGGCACTGATTGTGCTGGAAGGTTTTTTGCCTTCTAGAGCGA +AAAAACAATAATAAACCCTGCCGGATGCGATGCTGACGCATCTTATCCGGCCTACAGATTGCTGCGAAAT +CGTAGGCCGGATAAGGCGTTTACGCCGCATCCGGCAAAAATCCTTAAATATAAGAGCAAACCTGCATGTC +TGAATCTGTACAGAGCAATAGCGCCGTCCTGGTGCACTTCACGCTAAAACTCGACGATGGCACCACCGCC +GAGTCTACCCGCAACAACGGTAAACCGGCGCTGTTCCGCCTGGGTGATGCTTCTCTTTCTGAAGGGCTGG +AGCAACACCTGTTGGGGCTGAAAGTGGGCGATAAAACCACCTTCTCGTTGGAGCCAGATGCGGCGTTTGG +CGTGCCGTCACCGGACCTGATTCAGTACTTCTCCCGCCGTGAATTTATGGATGCAGGCGAGCCAGAAATT +GGCGCAATCATGCTTTTTACCGCAATGGATGGCAGTGAGATGCCTGGCGTGATCCGCGAAATTAACGGCG +ACTCCATTACCGTTGATTTCAACCATCCGCTGGCCGGGCAGACCGTTCATTTTGATATTGAAGTGCTGGA +AATCGATCCGGCACTGGAGGCGTAACATGCAGATCCTGTTGGCCAACCCGCGTGGTTTTTGTGCCGGGGT +AGACCGCGCTATCAGCATTGTTGAAAACGCGCTGGCCATTTACGGCGCACCGATATATGTCCGTCACGAA +GTGGTACATAACCGCTATGTGGTCGATAGCTTGCGTGAGCGTGGGGCTATCTTTATTGAGCAGATTAGCG +AAGTACCGGACGGCGCGATCCTGATTTTCTCCGCACACGGTGTTTCTCAGGCGGTACGTAACGAAGCAAA +AAGTCGCGATTTGACGGTGTTTGATGCCACCTGTCCGCTGGTGACCAAAGTGCATATGGAAGTCGCCCGC +GCCAGTCGCCGTGGCGAAGAATCTATTCTCATCGGTCACGCCGGGCACCCGGAAGTGGAAGGGACAATGG +GCCAGTACAGTAACCCGGAAGGGGGAATGTATCTGGTCGAATCGCCGGACGATGTGTGGAAACTGACGGT +CAAAAACGAAGAGAAGCTCTCCTTTATGACCCAGACCACGCTGTCGGTGGATGACACGTCTGATGTGATC +GACGCGCTGCGTAAACGCTTCCCGAAAATTGTCGGTCCGCGCAAAGATGACATCTGCTACGCCACGACTA +ACCGTCAGGAAGCGGTACGCGCCCTGGCAGAACAGGCGGAAGTTGTGTTGGTGGTCGGTTCGAAAAACTC +CTCCAACTCCAACCGTCTGGCGGAGCTGGCCCAGCGTATGGGCAAACGCGCGTTTTTGATTGACGATGCG +AAAGACATCCAGGAAGAGTGGGTGAAAGAGGTTAAATGCGTCGGCGTGACTGCGGGCGCATCGGCTCCGG +ATATTCTGGTGCAGAATGTGGTGGCACGTTTGCAGCAGCTGGGCGGTGGTGAAGCCATTCCGCTGGAAGG +CCGTGAAGAAAACATTGTTTTCGAAGTGCCGAAAGAGCTGCGTGTCGATATTCGTGAAGTCGATTAAGTC +ATTAGCAGCCTAAGTTATGCGAAAATGCCGGTCTTGTTACCGGCATTTTTTATGGAGAAAACATGCGTTT +ACCTATCTTCCTCGATACTGACCCCGGCATTGACGATGCCGTCGCCATTGCCGCCGCGATTTTTGCACCC +GAACTCGACCTGCAACTGATGACCACCGTCGCGGGTAATGTCTCGGTTGAGAAAACTACCCGCAATGCCC +TGCAACTGCTGCATTTCTGGAATGCGGAGATTCCGCTCGCCCAAGGGGCCGCTGTGCCACTGGTACGCGC +ACCGCGTGATGCGGCATCTGTGCACGGCGAATCGGGAATGGCTGGCTACGACTTTGTTGAGCACAACCGA +AAGCCGCTCGGGATACCGGCGTTTCTGGCGATTCGGGATGCCCTGATGCGTGCACCAGAGCCTGTTACCC +TGGTGGCCATCGGCCCGTTAACCAATATTGCGCTGTTACTTTCACAATGCCCGGAATGCAAGCCGTATAT +TCGCCGTCTGGTGATCATGGGTGGTTCTGCCGGACGCGGCAACTGTACGCCAAACGCCGAGTTTAATATT +GCTGCCGATCCAGAAGCTGCTGCCTGTGTCTTCCGCAGTGGTATTGAAATCGTCATGTGCGGTTTGGATG +TCACCAATCAGGCAATATTAACTCCTGACTATCTCTCTACACTGCCGCAGTTAAACCGTACCGGGAAAAT +GCTTCACGCCCTGTTTAGCCACTACCGTAGCGGCAGTATGCAAAGCGGCTTGCGAATGCACGATCTCTGC +GCCATCGCCTGGCTGGTGCGCCCGGACCTGTTCACTCTCAAACCCTGTTTTGTGGCAGTGGAAACTCAGG +GCGAATTTACCTCAGGCACGACGGTGGTTGATATCGACGGTTGCCTGGGCAAGCCAGCCAATGTACAGGT +GGCATTGGATCTGGATGTGAAAGGCTTCCAGCAGTGGGTGGCTGAGGTGCTGGCTCTGGCGTCGTAACCT +GTCACATGTTATTGGCATGCAGTCATTCATCGACTCATGCCTTTCACTGATATCCCTCCCTGTTTATCAT +TAATTTCTAATTATCAGCGTTTTTGGCTGGCGGCGTAGCGATGCGCTGGTTACTCTGAAAACGGTCTATG +CAAATTAACAAAAGAGAATAGCTATGCATGATGCAAACATCCGCGTTGCCATCGCGGGAGCCGGGGGGCG +TATGGGCCGCCAGTTGATTCAGGCGGCGCTGGCATTAGAGGGCGTGCAGTTGGGCGCTGCGCTGGAGCGT +GAAGGATCTTCTTTACTGGGCAGCGACGCCGGTGAGCTGGCCGGAGCCGGGAAAACAGGCGTTACCGTGC +AAAGCAGCCTCGATGCGGTAAAAGATGATTTTGATGTGTTTATCGATTTTACCCGTCCGGAAGGTACGCT +GAACCATCTCGCTTTTTGTCGCCAGCATGGCAAAGGGATGGTGATCGGCACTACGGGGTTTGACGAAGCC +GGTAAACAAGCAATTCGTGACGCCGCTGCCGATATTGCGATTGTCTTTGCTGCCAATTTTAGCGTTGGCG +TTAACGTCATGCTTAAGCTGCTGGAGAAAGCAGCCAAAGTGATGGGTGACTACACCGATATCGAAATTAT +TGAAGCACATCATAGACATAAAGTTGATGCGCCGTCAGGCACCGCACTGGCAATGGGAGAGGCGATCGCC +CACGCCCTTGATAAAGATCTGAAAGATTGCGCGGTCTACAGTCGTGAAGGCCACACCGGTGAACGTGTGC +CTGGCACCATTGGTTTTGCCACCGTGCGTGCAGGTGACATCGTTGGTGAACATACCGCGATGTTTGCCGA +TATTGGCGAGCGTCTGGAGATCACCCATAAGGCGTCCAGCCGTATGACATTTGCTAACGGCGCGGTAAGA +TCGGCTTTGTGGTTGAGTGGTAAGGAAAGCGGTCTTTTTGATATGCGAGATGTACTTGATCTCAATAATT +TGTAACCACAAAATATTTGTTATGGTGCAAAAATAACACATTTAATTTATTGATTATAAAGGGCTTTAAT +TTTTGGCCCTTTTATTTTTGGTGTTATGTTTTTAAATTGTCTATAAGTGCCAAAAATTACATGTTTTGTC +TTCTGTTTTTGTTGTTTTAATGTAAATTTTGACCATTTGGTCCACTTTTTTCTGCTCGTTTTTATTTCAT +GCAATCTTCTTGCTGCGCAAGCGTTTTCCAGAACAGGTTAGATGATCTTTTTGTCGCTTAATGCCTGTAA +AACATGCATGAGCCACAAAATAATATAAAAAATCCCGCCATTAAGTTGACTTTTAGCGCCCATATCTCCA +GAATGCCGCCGTTTGCCAGAAATTCGTCGGTAAGCAGATTTGCATTGATTTACGTCATCATTGTGAATTA +ATATGCAAATAAAGTGAGTGAATATTCTCTGGAGGGTGTTTTGATTAAGTCAGCGCTATTGGTTCTGGAA +GACGGAACCCAGTTTCACGGTCGGGCCATAGGGGCAACAGGTTCGGCGGTTGGGGAAGTCGTTTTCAATA +CTTCAATGACCGGTTATCAAGAAATCCTCACTGATCCTTCCTATTCTCGTCAAATCGTTACTCTTACTTA +TCCCCATATTGGCAATGTCGGCACCAATGACGCCGATGAAGAATCTTCTCAGGTACATGCACAAGGTCTG +GTGATTCGCGACCTGCCGCTGATTGCCAGCAACTTCCGTAATACCGAAGACCTCTCTTCTTACCTGAAAC +GCCATAACATCGTGGCGATTGCCGATATCGATACCCGTAAGCTGACGCGTTTACTGCGCGAGAAAGGCGC +ACAGAATGGCTGCATTATCGCGGGCGATAACCCGGATGCGGCGCTGGCGTTAGAAAAAGCCCGCGCGTTC +CCAGGTCTGAATGGCATGGATCTGGCAAAAGAAGTGACCACCGCAGAAGCCTATAGCTGGACACAAGGGA +GCTGGACGTTGACCGGTGGCCTGCCAGAAGCGAAAAAAGAAGACGAGCTGCCGTTCCACGTCGTGGCTTA +TGATTTTGGTGCCAAGCGCAACATCCTGCGGATGCTGGTGGATAGAGGCTGTCGCCTGACCATCGTTCCG +GCGCAAACTTCTGCGGAAGATGTGCTGAAAATGAATCCAGACGGCATCTTCCTCTCCAACGGTCCTGGCG +ACCCGGCCCCGTGCGATTACGCCATTACCGCCATCCAGAAATTCCTCGAAACCGATATTCCGGTATTCGG +CATCTGTCTCGGTCATCAGCTGCTGGCGCTGGCGAGCGGTGCGAAGACTGTCAAAATGAAATTTGGTCAC +CACGGCGGCAACCATCCGGTTAAAGATGTGGAGAAAAACGTGGTAATGATCACCGCCCAGAACCACGGTT +TTGCGGTGGACGAAGCAACATTACCTGCAAACCTGCGTGTCACGCATAAATCCCTGTTCGACGGTACGTT +ACAGGGCATTCATCGCACCGATAAACCGGCATTCAGCTTCCAGGGGCACCCTGAAGCCAGCCCTGGTCCA +CACGACGCCGCGCCGTTGTTCGACCACTTTATCGAGTTAATTGAGCAGTACCGTAAAACCGCTAAGTAAT +CAGGAGTAAAAGAGCCATGCCAAAACGTACAGATATAAAAAGTATCCTGATTCTGGGTGCGGGCCCGATT +GTTATCGGTCAGGCGTGTGAGTTTGACTACTCTGGCGCGCAAGCGTGTAAAGCCCTGCGTGAAGAGGGTT +ACCGCGTCATTCTGGTGAACTCCAACCCGGCGACCATCATGACCGACCCGGAAATGGCTGATGCAACCTA +CATCGAGCCGATTCACTGGGAAGTTGTACGCAAGATTATTGAAAAAGAGCGCCCGGACGCGGTGCTGCCA +ACGATGGGCGGTCAGACGGCGCTGAACTGCGCGCTGGAGCTGGAACGTCAGGGCGTGTTGGAAGAGTTCG +GTGTCACCATGATTGGTGCCACTGCCGATGCGATTGATAAAGCAGAAGACCGCCGTCGTTTCGACGTAGC +GATGAAGAAAATTGGTCTGGAAACCGCGCGTTCCGGTATCGCACACACGATGGAAGAAGCGCTGGCGGTT +GCCGCTGACGTGGGCTTCCCGTGCATTATTCGCCCATCCTTTACCATGGGCGGTAGCGGCGGCGGTATCG +CTTATAACCGTGAAGAGTTTGAAGAAATTTGCGCCCGCGGTCTGGATCTCTCTCCGACCAAAGAGTTGCT +GATTGATGAGTCGCTGATCGGCTGGAAAGAGTACGAGATGGAAGTGGTGCGTGATAAAAACGACAACTGC +ATCATCGTCTGCTCTATCGAAAACTTCGATGCGATGGGCATCCACACCGGTGACTCCATCACTGTCGCGC +CAGCCCAAACGCTGACCGACAAAGAATATCAAATCATGCGTAACGCCTCGATGGCGGTGCTGCGTGAAAT +CGGCGTTGAAACCGGTGGTTCCAACGTTCAGTTTGCGGTGAACCCGAAAAACGGTCGTCTGATTGTTATC +GAAATGAACCCACGCGTGTCCCGTTCTTCGGCGCTGGCGTCGAAAGCGACCGGTTTCCCGATTGCTAAAG +TGGCGGCGAAACTGGCGGTGGGTTACACCCTCGACGAACTGATGAACGACATCACTGGCGGACGTACTCC +GGCCTCCTTCGAGCCGTCCATCGACTATGTGGTTACTAAAATTCCTCGCTTCAACTTCGAAAAATTCGCC +GGTGCTAACGACCGTCTGACCACTCAGATGAAATCGGTTGGCGAAGTGATGGCGATTGGTCGCACGCAGC +AGGAATCCCTGCAAAAAGCGCTGCGCGGCCTGGAAGTCGGTGCGACTGGATTCGACCCGAAAGTGAGCCT +GGATGACCCGGAAGCGTTAACCAAAATCCGTCGCGAACTGAAAGACGCAGGCGCAGATCGTATCTGGTAC +ATCGCCGATGCGTTCCGTGCGGGCCTGTCTGTGGACGGCGTCTTCAACCTGACCAACATTGACCGCTGGT +TCCTGGTACAGATTGAAGAGCTGGTGCGTCTGGAAGAGAAAGTGGCGGAAGTGGGCATCACTGGCCTGAA +CGCTGACTTCCTGCGCCAGCTGAAACGCAAAGGCTTTGCCGATGCGCGCTTGGCAAAACTGGCGGGCGTA +CGCGAAGCGGAAATCCGTAAGCTGCGTGACCAGTATGACCTGCACCCGGTTTATAAGCGCGTGGATACCT +GTGCGGCAGAGTTCGCCACCGACACCGCTTACATGTACTCCACTTATGAAGAAGAGTGCGAAGCGAATCC +GTCTACCGACCGTGAAAAAATCATGGTGCTTGGCGGCGGCCCGAACCGTATCGGTCAGGGTATCGAATTC +GACTACTGTTGCGTACACGCCTCGCTGGCGCTGCGCGAAGACGGTTACGAAACCATTATGGTTAACTGTA +ACCCGGAAACCGTCTCCACCGACTACGACACTTCCGACCGCCTCTACTTCGAGCCGGTAACTCTGGAAGA +TGTGCTGGAAATCGTGCGTATCGAGAAGCCGAAAGGCGTTATCGTCCAGTACGGCGGTCAGACCCCGCTG +AAACTGGCGCGCGCGCTGGAAGCTGCTGGCGTACCGGTTATCGGCACCAGCCCGGATGCTATCGACCGTG +CAGAAGACCGTGAACGCTTCCAGCATGCGGTTGAGCGTCTGAAACTGAAACAACCGGCGAACGCCACCGT +TACCGCTATTGAAATGGCGGTAGAGAAGGCGAAAGAGATTGGCTACCCGCTGGTGGTACGTCCGTCTTAC +GTTCTCGGCGGTCGGGCGATGGAAATCGTCTATGACGAAGCTGACCTGCGTCGCTACTTCCAGACGGCGG +TCAGCGTGTCTAACGATGCGCCAGTGTTGCTGGACCACTTCCTCGATGACGCGGTAGAAGTTGACGTGGA +TGCCATCTGCGACGGCGAAATGGTGCTGATTGGCGGCATCATGGAGCATATTGAGCAGGCGGGCGTGCAC +TCCGGTGACTCCGCATGTTCTCTGCCAGCCTACACCTTAAGTCAGGAAATTCAGGATGTGATGCGCCAGC +AGGTGCAGAAACTGGCCTTCGAATTGCAGGTGCGCGGCCTGATGAACGTGCAGTTTGCGGTGAAAAACAA +CGAAGTCTACCTGATTGAAGTTAACCCGCGTGCGGCGCGTACCGTTCCGTTCGTCTCCAAAGCCACCGGC +GTACCGCTGGCAAAAGTGGCGGCGCGCGTGATGGCTGGCAAATCGCTGGCTGAGCAGGGCGTAACCAAAG +AAGTTATCCCGCCGTACTACTCGGTGAAAGAAGTGGTGCTGCCGTTCAATAAATTCCCGGGCGTTGACCC +GCTGTTAGGGCCAGAAATGCGCTCTACCGGGGAAGTCATGGGCGTGGGCCGCACCTTCGCTGAAGCGTTT +GCCAAAGCGCAGCTGGGCAGCAACTCCACCATGAAGAAACACGGTCGTGCGCTGCTTTCCGTGCGCGAAG +GCGATAAAGAACGCGTGGTGGACCTGGCGGCAAAACTGCTGAAACAGGGCTTCGAGCTGGATGCGACCCA +CGGCACGGCGATTGTGCTGGGCGAAGCAGGTATCAACCCGCGTCTGGTAAACAAGGTGCATGAAGGCCGT +CCGCACATTCAGGACCGTATCAAGAATGGCGAATATACCTACATCATCAACACCACCTCAGGCCGTCGTG +CGATTGAAGACTCCCGCGTGATTCGTCGCAGTGCGCTGCAATATAAAGTGCATTACGACACCACCCTGAA +CGGCGGCTTTGCCACCGCGATGGCGCTGAATGCCGATGCGACTGAAAAAGTAATTTCGGTGCAGGAAATG +CACGCACAGATCAAATAATAGCGTGTCATGGCAGATATTTTTCATCCGCTAATTTGATCGAATAACTAAT +ACGGTTCTCTGATGAGGACCGTTTTTTTTTGCCCATTAAGTAAATCTTTTGGGGAATCGATATTTTTGAT +GACATAAGCAGGATTTAGCTCACACTTATCGACGGTGAAGTTGCATACTATCGATATATCCACAATTTTA +ATATGGCCTTGTTTAATTGCTTCAAAACGAGTCATAGCCAGACTTTTAATTTGTGAAACTGGAGTTCGTA +TGTGTGAAGGATATGTTGAAAAACCACTCTACTTGTTAATCGCCGAATGGATGATGGCTGAAAATCGGTG +GGTGATAGCAAGAGAGATCTCTATTCATTTCGATATTGAACACAGCAAGGCGGTTAATACCCTGACTTAT +ATTCTGTCGGAAGTCACAGAAATAAGCTGCGAAGTTAAGATGATCCCTAATAAGCTGGAAGGGCGGGGAT +GCCAGTGTCAGCGACTGGTTAAAGTGGTCGATATCGATGAGCAAATTTACGCGCGCCTGCGCAATAACAG +TCGGGAAAAATTAGTCGGTGTAAGAAAGACGCCGCGTATTCCTGCCGTTCCGCTCACGGAACTTAACCGC +GAGCAGAAGTGGCAGATGATGTTGTCAAAGAGTATGCGTCGTTAATTTTATCTCGTTGATACCGGGCGTC +CTGCTTGCCAGATGCGATGTTGTAGCATCTTATCCAGCAACCAGGTCGCATCCGGCAAGATCACCGTTTA +GGCGTCACATCCGTCGTCCCCTGCAAACGGGGGCGATTTTCCTCCATTTGCCTCAGTGGCTGCGTTTCAT +GTAACGATACATGACAGCGCCCGACAAGATCCTGATACTCTTTGGTATTCAACCGTTTCCAGTGTAACTC +GTCGTCACTAACATTGCGTACAGCGCGGGCTGGCGTACCCATCAACAACTGGCGTTTCTCGCCGCGAAAG +CCCGCTTTGACAAAGCTCATGGCGGCAACAATGCTCTCTTCGCCAATGACCGCGCCATCCATAATCACGC +TGTTCATCCCGACCAATGCATCGCGACCAATCAAACAACCATGCAGGATCGCTCCGTGCCCGATATGGCC +GTTTTCCCCAACGATAGTGTCAGTGTCGCAGTAGCCATGCATAATGCAGCCATCCTGAATATTGGCTCCC +GCTTGCACGATCAACCGCCCGTAGTCACCACGCAGTGAGGCGAGTGGGCCGATGTAGACACCGGCTCCCA +CAATCACATCGCCAATCAAGACGGCACTGGGATGGACAAACGCCGTCGGGTGAACCACCGGAATTAACCC +CTCAAAGGCGTAATAGCTCACGGTTGTTAACGTCCTTTCCACACCGGATCGCGCTTCTCGGCAAACGCCA +GCGGCCCTTCAATGGCATCTTCCGAATGCAGAACCGATGGATAGTGTTTCAACACGCCGCTGCGAATATA +GCGATACGCTTCTTCTACCGGCATTTCGCTGGTGGTGCGGTAGATCTCTTTCAGCGCCGCAATCGCCAGC +GGGGCGCTGTTAACCAGCTGCTGAGCCAGTTCGCGGGCGTTATCCATCAGTTCCGCCTGGCTAACCACGC +GGTTGACTATCCCCCAACGCAGCGCCTCTTCTGCGCCCATTCGTCTGCCGGTCATCACCATTTCATTGAC +GATGGCAGGCGGCAGGATCTTCGGCAGACGCAGCACACCGCCGCTGTCAGGAACGATGCCCAGTTTGGCT +TCCGGCAGGGCGAAGCTGGCGTTATCGGCACAAACAATAAAATCTGCCGCCAGCGCCAGTTCAAAGCCGC +CGCCAAAGGCATAGCCGTTCACAGCTGCGATAACCGGTTTGTCGAGATTGAAAATTTCGGTTAATCCCGC +AAAACCACCCGGACCAAAGTCAGCATCCGGTGCTTCGCCTTCTGCTGCCGCTTTTAAATCCCAGCCCGCG +GAAAAGAACTTCTCTCCGGCACCGGTAATAATGGCGACACGTAATTGCGGATCGTCACGGAAATTTAGAA +ATACTTCGCCCATTTCAAAGCTGGTTTTTGCATCAATAGCATTCGCTTTTGGACGATCAAGGGTAATTTC +CAGAATTGATCCATTGCGGGTCAGATGTAATGATTCACTCATTCCTTTTCTCCATTTTTGCTTTTTCAGG +GACGACAACATCCCTGCAAAAAATGCATATTGTTTTAGAGTGTGATTATTAGCTGGCAGGGTAGTTCCCT +GCTGTTTCATTTATTTCAGATTCTTTCTAATTATTTTCCCCGAGCAATTACGTGGCAGATCTTTTCTGAT +CTCCAGATAAGAGGGCACTTTAAATTTCGCCATATTTTGTTCGCAGAAGCGGAAAAATTCCTCTTCGCTC +AATGTTTCACCTTCATTCAGCACCACAAATGCTTTGATGGCTTCATCGCGAATCGAATCTTTAATACCCA +CAACCACGATGTCCTGAATTTTCGGGTGCGCGGCGATAATATTTTCCAGCTCCACGCAGGAGACATTCTC +GCCGCCACGTTTAATCATATTGCAGCGGCGATCGACGAAATAAAAAAAGTCCTCTTCGTCGCGGTATCCG +GTATCGCCGGTATGCAGCCAGCCATCGGCTTCCAGCACTTTCGCAGTGGCTTGTGGGTTGAGAAAGTACT +CTTTGAAGATGGTTTTCCCAGGTATGCCTTTAATGCAGATTTCACCGATCTCACCAGCCGGGAGCGGGCG +ATTGTGATCGTCGCGGATCTCCGCTTCGTAGCAAAACCCCACCCGACCAATCGACGGCCAGCGTCGTTTA +TCGCCAGGACGATCGCCGATAATGCCCACAATGGTTTCCGTCATCCCATAAGACGTCAGCAAGCGAACGC +CGAAGCGTTCACAAAACGCATCTTTTTCCTGCTCCGACAAGTTGAGATAAAACATCACTTCCCGCAGGCG +GTGTTGCTGATCGTTCGCTGAAGGCGGCTGTACCATCAACGTACGGATCATCATCGGAATACATTCGGTA +ACGGTGGCGCGGTACTTCTGTACCTGTCCCCAGAAGGCGCGGGCGCTGTATTTCTCGACCAGCACAAAGG +TGGCCCCGGCAGAAAACGCCGCCATCGCCGCAGTACACTGGCAATCGATATGAAACGCAGGCATTACCGT +CAGGTAGACGTCATCGTCACGCAGTGCACACTGCCAGGCGGAGTAATATCCAGCGAAGCGCAGGTTGTAA +TGGGTAATCACCACACCTTTCGGTCGGGAGGTGGTGCCGGAGGTGAAGAGAATTTCCGCCGTATCGTCAG +TCGATAGCGGCGGTGCATAGCACAAGGTGGCAGGTTGTTGATTTTTCAGTTGAGTAAACGAACTCACGCC +ATCATCAGCGGGAAGTGCCACATCTGTCAGGCAAATGTGCCGCAATTGAGTGGCATCTTCCTGCTGAATC +TGTTGATACATAGGATAGAATTGCGCACTGGTCACCAGCAGGCACGCCTGGCTATTTTGCAGGATCCACG +CGCTTTCCTCGCACAACAGGCGGGCGTTAATCGGCACCATAATCGCGCCAATTTTTGCCAGCCCGAACCA +GCAAAAGATAAATTCCGGGCAGTTGTCGAGATGTAGTGCAACCTTGTCGCCTTTGCGAATCCCCAGCGTA +TAAAACAGGTTTGCCGTGCGGTTAATCTCCTGATTTAACTCAAGATAACTATACCGGTTAACGACTCCGC +CGCTGGATTCACAAATCAGCGCCGTTTTATGACCGTAAACGTCCGCAAGATCGTCCCACATTTGACGTAG +ATGTTGTCCGCCAATGATATCCATTGCACCTCTATCCATTTTTGTTCGTTTGTTATTGGGCGGGCGCTAG +TCAGGCAAGCCGACTGACGCCACGCGTTTAGTCCTCAACTTTGGCCAGACCTTTGCTGACCAACTCCTGA +ATGTCGTTTTCGCTGTAGCCGATATTTTTCAAAATGGCAGCCGTGTCCATGCCATGTGAGGGCATTCCGC +GCCAGATTTGTCCGGGGTTATTTTTGAATTTCGGCATGATGTTCGGCCCTTTGCAGGTGCGACCATCCAT +CGTTTGCCACTGAGTGATTGATTCGCGAGCCACATACTGTGGATTGCTTTCCAGTTCCGGTACGGTCAGC +ACTTTGGCGCAGGCGATATTCAGTTCAGCAAAGCGTTCTTTTACTTCCGCGATGGTATGTGTCGCCAGCC +AGGCATCGAGTTTCTCTTCAACCAGTGGGCCGTAAGGGCATTCGATACGGTGGATAAGCTGAGTGCCTTC +CGGGATTTCTGGCGTGCCAAGCAGATGTGCGAGGCCAATATCTTTAAAGCACTCTTCAATTTGGGTAATG +CCCACCAGTTCCATCACGATGTAGCCGTCGGCACATTTATACAGACCGCAACCGGCGTAGTAGGGATCTT +TACCTTTGCTCATGCGCGGGCACATTTCGCCGCCGTTGAAGTAATCCATCATGAAGTACTGGCCCATACG +CAGCATCACTTCATACATGGCGATGTCGATACTTTCGCCTTTACCGGTTTCACGCACTTTATGCAGTGCT +GCCAGCGCCGCCGTGGTGGCGGTCAGGCCAGAAAAGTAATCGGCGGTATACGGGAAGGCAGGCATTGGCT +GGTCAACATCACCGTTCTGAATCAGGTAACCACTAAAGGCCTGGGCGATAGTGTTATAGGCCGGAAGATT +GGTGTACTCCTCGGTGCCGTACTGACCAAAACCGGACAGGTGAGCGATAACCAGTTTCGGGTTGTGCTGC +CACAGTACTTCATCGGTAATGCCACGACGGGCAAAGGCCGGACCTTTACTGGCTTCGATGAAGATATCGG +TGGTTTCCATTAATTTCAGAAACGCTTCGCGGCCTTCATCTTTGAAAATATTTAACGACAGCGCGTGCAA +ATTGCGGCGGGAGAGTTGCGGGTAGTTCGGTTGAACGCGAATGGTGTCGGCCCAGGCGACGTTCTCGATC +CAGATAACTTCCGCGCCCCATTCTGCGAACATTTGCCCGGCAAACGGTCCGGCGATTTCGATACCGGAGA +AGACAACGCGCAATCCGGCCAACGGCCCGAATTTCGGCATGGGTAGATGATCCATTATTTGCTCCTGAAA +AATTTATGTAGCGCATGACTGCCGGATGCGGCGTAAACGCTTTATCCGGCCTACATTCGTGCTCCCGTAG +GCCTGATAAGACGCATCAGCGTCGCATCAGGCAGCGCACGGACTTAGCGGTATTGCTTCAGCACCGCACG +ACCCAGCGTCAGGATCTGCATTTCGTCAGATCCCCCGGAGACGCGGTCTACACGCAGATCACGCCAGAAG +CGGCTGATGCGGTGGTTGCCCGCAATCCCGACACCGCCCAGCACCTGCATTGCGCTATCCACAACTTCAA +ATGCCGCATTGGCGCAGAAGTATTTGCACATCGCTGCATCGCCAGAGGTGATGGTGCCGTTGTCTGCTTT +CCACGCTGCTTCATACAGCATGTTTTTCATGGAGTTTAATTTGATCGCCATGTGGGCGAATTTTTCCTGA +ATCAACTGGAAACGACCAATAGCCTCGCCAAACTGCACGCGCTGATTGGCGTAGCGCGCCGCATCTTCAA +AGGCGCACATCGCCGTACCGTAGTTGGTGAGGGCTACCAGGAAACGTTCATGGTCGAACTCTTCTTTGAC +GCGGTTAAAGCCGTTACCTTCCCGACCGAACATGTCTTTCTCGTCCAGTTCCACGTCGTCAAAGGTGATT +TCACAGCAGCTATCCATACGCAGACCGAGCTTTTCAAGTTTGGTCACTTTGATGCCCGGTTTGCTCATAT +CAACAAACCATTCGGTGTAGACAGGTTTGTCCGGAGAAGCCCCGTCGCGCGCCATCACCACGATGTACGG +GGTGTAGGCGCTGCTGGTAATAAAACACTTACTACCATTAAGATAAATCTTACCATTTCTACGGGTATAA +GTCGTTTTCAGGCTACCCACGTCGGAGCCCGCGCCCGGTTCGGTAATCGCTGAGTTCCACATCTGCTTAC +CGGTGCCGCGGAAAGCCATAATTTTGTCGATCTGCTCTTGTGTGCCTTCGCGCAGGAAGGTGTTGAACCC +GCCCGGCAACTGGTACAGCACATAGGTTGGTGCCCCCAGACGTCCCAGCTCCATCCACACGGCGGCGAGA +GTAACAAACCCCGCGTCCAGACCACCGTGCTCTTCAGGGATCAGCAGACTGTCGATACCCATATCCGCCA +GTGCTTTGACAAAACGTTCCGGGTAGACGCTGTCACGGTCGCACTCGGCAAAATAGGCCTCCCAGTTTTC +GCTGGCCATCAGTTCGCGGATACCGGCGACAAACAGTTCCTGCTCATCATTTAAATTAAAATCCATCTTT +CAACCTCTTGATATTTTGGGGGTTAATTAATCTTTCCAGTTCTGTTTCGCGTCTTTAATAAAGGAGAGCG +TCACCATAATGTTGACGAAGAACAGCGGGCATCCTCCGGCGATAATGGCGGTTTGAATCGGTTTCAGGCC +GCCGAGCGCCAGCAGAACAATACCGATAATGCCAACCAGAATTGACCAACCGATACGCACCAGCAGAGGT +GGTTCTTCACCATCGCGTACTTCGCGGCAAGTGGACATCGCCAGGGTATAAGAGCAGGCGTTAACCAGCG +TAACGGTGGCAATAAAGCAGAGGATGAAGAAGCCCCACATGGTGGCGGTGCTGAGTGGCAGAGCGGCCCA +GGTTTCAATGATGGCGCGCGCCACACCGTACTGTTCGATCAGATTTGGAATGTTGATGATGTTTTTATCT +ATCAACAGCAGAGTGTTACTACCGAGTACAGTCCACAGGATCCAGGTTGACGCTGTCAGCCCCAGCACCA +TGCCGAAGCACAGTTCACGCACAGTACGACCACGGGAGATGCGGGCGAGGAAGATACTCATCTGGATAGC +ATAAATCACCCACCATGCCCAGTAGAACACGGTCCAGCCCTGCGGGAAGCCGCCTTTAGCGATGGGATCG +GTATAGAACAACATGCGCGGCAGATACATCAGCAACATCCCCACCGAATCGGTGAAGTAGTTCATGATGA +AGCTGGCACCGCTGACAATGAACACCCAACCCAGCATCAGGAAGCTCAGGTAACTACGCACGTCACTGGC +GATACGTACCCCTTTTTGCAGACCGCAAGCGACGCAAATGGCGTTGAGGATAATCCAGCAGGTAATGATG +ATAGCGTCCAGTTGCAGGGTATGCGGAATGCCAAACAACCATTGCATACACTCGGTCACCAGCGGCGTGG +CAAGGCCCAGACTGGTACCCATCGCGAAGATCAAGGCGACGAGATAGAAGTTGTCGACGATAGTGCCGAA +CAACCCTTTGGCGTGTTTTTCACCTACCAGCGGCACCAGTGTCGAGCTGGGGCGAATCACTTCCATTTTG +CGGACAAAGAAGAAGTAAGCGAAGGCGACTGAAAGGAAGCTGTAAGTGGCCCACGGCAGAGGTCCCCAGT +GGAACAAGCTGTAAGCCAGCCCCAACTCTTTCGCCCCTGTCGAGTTCGGTTCTAAGCCAAACGGCGGGGT +GGAGATGTAGTAGTAGATCTCAATCGATCCCCAGAACAGTACGGCAGCAGACGTACAGGAGGCGAACATC +ATAAAGATCCAACTGGCGGTGCTAAATTCTGGCGGTTCGTTACCTAAACGCTTTTTGGCATACGGGCCAA +ACACCAGCCAGAACCAACCGAAAAGCATCACCACCATATACCATTCAAATGCCCATCCCCATACATTGGT +GACGTAACTGAATACAGCATTAATAACGACATTCGCTGCATCCAGATCTCTGACTGTAAGCCAACAAAGT +ATGCCGACGATTATTAACGGCGGAAAGAAAACCTTCGGTTCTATTCCCGTTTTTCTCTTTTCATTCTTCA +TGAGTTAATTCCACTGTGAAAACGAATATTTATTTTGCGTTCCCGTTTGTTTTATTTTTGTTAACATTTA +ATATAATTATTATTAACCTCGTGGACGCGTTAATGGCTAACTCATAATGGGTATTCAATAAGCTGTATTC +TGTGATTGGTATCACATTTTTGTTTCGGGTGAATAGAGGGCGTTTTTTCGTTAATTTTGATTAATAATCA +GTTTGTTATGCTCTGTTGTGAGTAAAAAATAACATCTGACTTTCAATATTGGTGATCCATAAAACAATAT +TGAAAATTTCTTTTTGCTACGCCGTGTTTTCAATATTGGTGAGGAACTTAACAATATTGAAAGTTGGATT +TATCTGCGTGTGACATTTTCAATATTGGTGATTAAAGTTTTATTTCAAAATTAAAGGGCGTGATATCTGT +AATTAACACCACCGATATGAACGACGTTTCCTTCATGATTTCTGGAGATGCAATGAAGATTATTACTTGC +TATAAGTGCGTGCCTGATGAACAGGATATTGCGGTCAATAATGCTGATGGTTCATTAGACTTCAGCAAAG +CCGATGCCAAAATAAGCCAATACGATCTCAACGCTATTGAAGCGGCTTGCCAGCTAAAGCAACAGGCAGC +AGAGGCGCAGGTGACAGCCTTAAGTGTGGGCGGTAAAGCCCTGACCAACGCCAAAGGGCGTAAAGATGTG +CTATCGCGCGGCCCGGATGAACTGATTGTGGTGATTGATGACCAGTTCGAGCAGGCACTGCCGCAACAAA +CGGCGAGCGCACTGGCTGCAGCCGCCCAGAAAGCAGGCTTTGATCTGATCCTCTGTGGCGATGGTTCTTC +CGACCTTTATGCCCAGCAGGTTGGTCTGCTGGTGGGCGAAATCCTCAATATTCCGGCAGTTAACGGCGTC +AGCAAAATTATCTCCCTGACGGCAGATACCCTCACCGTTGAGCGCGAACTGGAAGATGAAACCGAAACCT +TAAGCATTCCGCTGCCTGCGGTTGTTGCTGTTTCCACTGATATCAACTCCCCACAAATTCCTTCGATGAA +AGCCATTCTCGGCGCGGCGAAAAAGCCCGTCCAGGTATGGTCGGCGGCGGATATTGGTTTTAACGCAGAG +GCAGCCTGGTCAGAACAACAGGTTGCCGCGCCGAAACAGCGCGAACGTCAGCGCATCGTGATTGAAGGCG +ACGGCGAAGAACAGATCGCCGCATTTGCTGAAAATCTTCGCAAAGTCATTTAATTACAGGGGATGCTATG +AACACGTTTTCTCAAGTCTGGGTATTCAGCGATACCCCTTCTCGTCTGCCGGAACTGATGAACGGTGCGC +AGGCTTTAGCTAATCAAATCAACACCTTTGTCCTCAATGATGCCGACGGCGCACAGGCAATCCAGCTCGG +CGCTAATCATGTCTGGAAATTAAACGGCAAACCGGACGATCGGATGATCGAAGATTACGCCGGTGTCATG +GCTGACACTATTCGCCAGCACGGCGCAGACGGCCTGGTGCTGCTGCCAAACACCCGTCGCGGCAAATTAC +TGGCGGCAAAACTGGGTTATCGCCTTAAAGCGGCGGTGTCTAACGATGCCAGCACCGTCAGCGTACAGGA +CGGTAAAGCGACAGTGAAACACATGGTTTACGGTGGTCTGGCGATTGGCGAAGAACGCATTGCCACGCCG +TATGCGGTACTGACCATCAGCAGCGGCACGTTCGATGCGGCTCAGCCAGACGCGTCACGCACTGGCGAAA +CGCACACCGTGGAGTGGCAGGCTCCGGCTGTGGCGATTACCCGCACGGCAACCCAGGCGCGCCAGAGCAA +CAGCGTCGATCTCGACAAAGCCCGTCTGGTGGTCAGCGTCGGTCGCGGTATTGGCAGCAAAGAGAACATT +GCGCTGGCAGAACAGCTTTGCAAGGCGATAGGTGCGGAGTTGGCCTGTTCTCGTCCGGTGGCGGAAAACG +AAAAATGGATGGAGCACGAACGCTATGTCGGTATCTCCAACCTGATGCTGAAACCTGAACTGTACCTGGC +GGTGGGGATCTCCGGGCAGATCCAGCACATGGTTGGCGCTAACGCGTCGCAAACCATTTTCGCCATCAAT +AAAGATAAAAATGCGCCGATCTTCCAGTACGCGGATTACGGCATTGTTGGCGACGCCGTGAAGATCCTTC +CGGCGCTGACCGCAGCTTTAGCGCGTTGATCCACTCTGGCAGGGCTGCATTTTGGCCCTGCCGCTGACAG +GGAGCTCTTATGTCCGAAGATATCTTTGACGCCATCATCGTCGGTGCAGGGCTTGCCGGTTCGGTTGCCG +CACTGGTGCTCGCCCGCGAAGGTGCGCAAGTGTTAGTTATCGAGCGTGGCAATTCCGCAGGTGCCAAGAA +CGTCACCGGCGGGCGTCTCTATGCCCACAGTCTGGAACACATTATTCCTGGTTTCGCCGACTCCGCCCCC +GTAGAACGCCTGATCACCCATGAAAAACTCGCGTTTATGACGGAAAAGTCAGCGATGACTATGGACTACT +GCAATGGTGACGAAACCTCGCCATCCCAGCGTTCTTACTCCGTTTTGCGCAGTAAATTTGATGCCTGGCT +GATGGAGCAGGCCGAAGAAGCGGGCGCGCAGTTAATTACCGGGATCCGCGTCGATAACCTCGTACAGCGC +GATGGCAAAGTCGTCGGTGTAGAAGCCGATGGCGATGTGATTGAAGCGAAAACGGTGATCCTTGCTGATG +GGGTGAACTCCATCCTTGCCGAAAAATTGGGGATGGCAAAACGCGTCAAACCGACGGATGTGGCGGTTGG +CGTGAAGGAACTGATCGAGTTACCGAAGTCGGTTATTGAAGACCGTTTTCAGTTGCAGGGTAATCAGGGG +GCGGCTTGCCTGTTTGCGGGATCACCCACCGATGGCCTGATGGGCGGCGGCTTCCTTTATACCAATGAAA +ACACCCTGTCGCTGGGGCTGGTTTGTGGTTTGCATCATCTGCATGACGCGAAAAAATCGGTGCCGCAAAT +GCTGGAAGATTTCAAACAGCATCCGGCCGTTGCACCGCTGATCGCGGGCGGCAAGCTGGTGGAATATTCC +GCTCACGTAGTGCCGGAAGCAGGCATCAACATGCTGCCGGAGTTGGTTGGTGACGGCGTATTGATTGCCG +GTGATGCCGCCGGAATGTGTATGAACCTCGGTTTTACCATTCGCGGTATGGATCTGGCGATTGCCGCCGG +GGAAGCCGCAGCAAAAACCGTGCTTTCAGCGATGAAAAGCGACGATTTCAGTAAGCAAAAACTGGCGGAA +TATCGTCAGCATCTTGAGAGTGGTCCGCTGCGCGATATGCGTATGTACCAGAAACTACCGGCGTTCCTTG +ATAACCCACGCATGTTTAGCGGCTACCCGGAGCTGGCGGTGGGTGTGGCGCGTGACCTGTTCACCATTGA +TGGCAGCGCGCCGGAACTGATGCGCAAGAAAATCCTCCGCCACGGCAAGAAAGTGGGCTTCATCAATCTA +ATCAAGGATGGCATGAAAGGAGTGACCGTTTTATGACTTCTCCCGTCAATGTGGACGTCAAACTGGGCGT +CAATAAATTCAATGTCGATGAAGAGCATCCGCACATTGTTGTGAAGGCCGATGCTGATAAACAGGCGCTG +GAGCTGCTGGTGAAAGCGTGCCCCGCAGGTCTGTACAAGAAGCAGGATGACGGCAGTGTGCGCTTCGATT +ACGCCGGATGTCTGGAGTGCGGCACCTGTCGCATTCTGGGGCTGGGGTCGGCGCTGGAACAGTGGGAATA +CCCGCGCGGCACCTTTGGTGTGGAGTTCCGTTACGGCTGATGTTGGTTTGATACGTAACGCCGCACTGAC +TCTCATTGCAAAAAACAGGAATAACCATGCAACCGTCCAGAAACTTTGACGATCTCAAATTCTCCTCTAT +TCACCGCCGCATTTTGCTGTGGGGAAGCGGTGGTCCGTTTCTGGATGGTTATGTACTGGTAATGATTGGC +GTGGCGCTGGAGCAACTGACGCCGGCGCTGAAACTGGACGCTGACTGGATTGGCTTGCTGGGCGCGGGAA +CGCTCGCCGGGCTGTTCGTTGGCACATCGCTGTTTGGTTATATTTCCGATAAAGTCGGACGGCGCAAAAT +GTTCCTCATTGATATCATCGCCATCGGCGTGATATCGGTGGCGACGATGTTTGTTTCATCCCCCGTCGAA +CTGTTGGTGATGCGGGTACTTATCGGCATTGTCATCGGTGCAGATTATCCCATCGCCACCTCAATGATCA +CCGAGTTCTCCAGTACCCGTCAGCGGGCGTTTTCCATCAGCTTTATTGCCGCGATGTGGTATGTCGGCGC +GACCTGTGCCGATCTGGTCGGCTACTGGCTTTATGATGTGGAAGGCGGCTGGCGCTGGATGCTGGGTAGC +GCGGCGATCCCCTGTTTGTTGATTTTGATTGGTCGATTCGAACTGCCTGAATCTCCCCGCTGGTTATTAC +GCAAAGGGCGAGTAAAAGAGTGCGAAGAGATGATGATCAAACTGTTTGGCGAACCGGTGGCTTTCGATGA +AGAGCAGCCGCAGCAAACCCGTTTTCGCGATCTGTTTAATCGCCGCCATTTTCCTTTTGTTCTGTTTGTT +GCCGCCATCTGGACCTGCCAGGTGATCCCAATGTTCGCCATTTACACCTTTGGCCCGCAAATCGTTGGTT +TGTTGGGATTGGGGGTTGGCAAAAACGCGGCACTAGGGAATGTGGTGATTAGCCTGTTCTTTATGCTCGG +CTGTATTCCGCCGATGCTGTGGTTAAACACTGCCGGACGGCGTCCATTGTTGATTGGCAGCTTTGCCATG +ATGACGCTGGCGCTGGCGGTTTTGGGGCTAATCCCGGATATGGGGATCTGGCTGGTAGTGATGGCCTTTG +CGGTGTATGCCTTTTTCTCTGGCGGGCCGGGTAATTTGCAGTGGCTCTATCCTAATGAACTCTTCCCGAC +AGATATCCGCGCCTCTGCCGTGGGCGTGATTATGTCCTTAAGTCGTATTGGCACCATTGTTTCGACCTGG +GCACTACCGATCTTTATCAATAATTACGGTATCAGTAACACGATGCTAATGGGGGCGGGTATCTCGCTGT +TTGGCTTGTTGATTTCCGTAGCGTTTGCCCCGGAGACTCGAGGGATGTCACTGGCGCAGACCAGCAATAT +GACGATCCGCGGGCAGAGAATGGGGTAAATTGTTCAGATTTCTCTCTTTTCTGAATCAATATTATTGACT +ATAAGCCGCGTGAATATATGACTACACTTTGTGGGAAAACAAAGGCGTAATCACGCGGGCTACCTATGAT +TCTTATAATTTATGCGCATCCGTATCCGCATCATTCCCATGCGAATAAACGGATGCTTGAACAGGCAAGG +ACGCTGGAAGGCGTCGAAATTCGCTCTCTTTATCAACTCTATCCTGACTTCAATATCGATATTGCCGCCG +AGCAGGAGGCGCTGTCTCGCGCCGATCTGATCGTCTGGCAGCATCCGATGCAGTGGTACAGCATTCCTCC +GCTCCTCAAACTTTGGATCGATAAAGTTTTCTCCCACGGCTGGGCTTACGGTCATGGCGGCACGGCGCTG +CATGGCAAACATTTGCTGTGGGCGGTGACGACCGGCGGCGGGGAAAGCCATTTTGAAATTGGTGCGCATC +CGGGCTTTGATGTGCTGTCGCAGCCGCTACAGGCGACGGCAATCTACTGCGGGCTGAACTGGCTGCCACC +GTTTGCCATGCACTGCACCTTTATTTGTGACGACGAAACCCTCGAAGGGCAGGCGCGTCACTATAAGCAA +CGTCTGCTGGAATGGCAGGAGGCCCATCATGGATAGCCATACGCTGATTCAGGCGCTGATTTATCTCGGT +TCGGCAGCGCTGATTGTACCCATTGCGGTACGTCTTGGTCTGGGATCGGTACTTGGCTACCTGATCGCCG +GCTGCATTATTGGCCCGTGGGGGCTGCGACTGGTGACCGATGCCGAATCTATTCTGCACTTTGCCGAGAT +TGGGGTGGTGCTGATGCTGTTTATTATCGGCCTCGAACTCGATCCACAAAGGCTGTGGAAGCTGCGTGCG +GCAGTGTTCGGCTGTGGCGCATTGCAGATGGTGATTTGCGGCGGCCTGCTGGGGCTGTTCTGCATGTTAC +TTGGGCTGCGCTGGCAGGTCGCGGAATTGATCGGCATGACGCTGGCGCTCTCCTCTACGGCGATTGCCAT +GCAGGCGATGAATGAACGCAATCTGATGGTGACGCAAATGGGTCGCAGTGCCTTTGCGGTGCTGCTGTTC +CAGGATATCGCGGCGATCCCGCTGGTGGCGATGATTCCGCTACTGGCAACGAGCAGTGCCTCGACGACGA +TGGGCGCATTTGCTCTCTCGGCGTTAAAAGTGGCGGGTGCGCTGGTGCTGGTGGTATTGCTGGGGCGCTA +TGTCACGCGTCCGGCGCTGCGTTTTGTAGCCCGCTCTGGCTTGCGGGAAGTGTTTAGTGCCGTGGCGTTA +TTCCTCGTGTTTGGCTTTGGTTTGCTGCTGGAAGAGGTCGGCTTGTCGATGGCGATGGGCGCGTTTCTGG +CGGGCGTACTGCTGGCAAGCTCGGAATACCGTCATGCGCTGGAGAGCGATATCGAACCATTTAAAGGTTT +GCTGTTGGGGCTGTTTTTCATCGGTGTTGGCATGTCGATAGACTTTGGCACGCTGCTTGAAAACCCATTG +CGCATTGTCATTTTGCTGCTCGGTTTCCTCATCATCAAAATCGCCATGCTGTGGCTGATTGCCCGACCGT +TGCAAGTGCCAAATAAACAGCGTCGTTGGTTTGCGGTGTTGTTAGGGCAGGGCAGTGAGTTTGCCTTTGT +GGTATTTGGCGCGGCGCAGATGGCGAATGTGCTGGAGCCGGAGTGGGCGAAATCGCTGACCCTGGCGGTG +GCGCTGTCGATGGCAGCAACGCCGATTCTGCTGGTGATCCTCAATCGCCTTGAGCAATCTTCTACTGAGG +AAGCGCGTGAAGCCGATGAGATCGACGAAGAACAGCCGCGCGTGATTATCGCCGGATTCGGTCGTTTTGG +GCAGATTACCGGACGTTTACTGCTCTCCAGCGGGGTGAAAATGGTGGTACTCGATCACGATCCGGACCAT +ATCGAAACCTTGCGTAAATTTGGTATGAAAGTGTTTTATGGCGATGCCACGCGGATGGATTTACTGGAAT +CTGCCGGAGCGGCGAAAGCGGAAGTGCTGATTAACGCCATCGACGATCCGCAAACCAACCTGCAACTGAC +AGAGATGGTGAAAGAACATTTCCCGCATTTGCAGATTATTGCCCGCGCCCGCGATGTCGACCACTACATT +CGTTTGCGTCAGGCAGGCGTTGAAAAGCCGGAGCGTGAAACCTTCGAAGGTGCGCTGAAAACCGGGCGTC +TGGCACTGGAAAGTTTAGGTCTGGGGCCGTATGAAGCGCGAGAACGTGCCGATGTGTTCCGCCGCTTTAA +TATTCAGATGGTGGAAGAGATGGCAATGGTTGAGAACGACACCAAAGCCCGCGCGGCGGTCTATAAACGC +ACCAGCGCGATGTTAAGTGAGATCATTACCGAGGACCGCGAACATCTGTCATTAATTCAACGACATGGCT +GGCAGGGAACCGAAGAAGGTAAACATACCGGCAACATGGCGGATGAACCGGAAACGAAACCCTCATCCTA +ATAAAGAGTGACGTAAATCACACTTTACAGCTAACTGTTTGTTTTTGTTTCATTGTAATGCGGCGAGTCC +AGGGAGAGAGCGTGGACTCGCCAGCAGAATATAAAATTTTCCTCAACATCATCCTCGCACCAGTCGACGA +CGGTTTACGCTTTACGTATAGTGGCGACAATTTTTTTTATCGGGAAATCTCAATGATCAGTCTGATTGCG +GCGTTAGCGGTAGATCGCGTTATCGGCATGGAAAACGCCATGCCGTGGAACCTGCCTGCCGATCTCGCCT +GGTTTAAACGCAACACCTTAAATAAACCCGTGATTATGGGCCGCCATACCTGGGAATCAATCGGTCGTCC +GTTGCCAGGACGCAAAAATATTATCCTCAGCAGTCAACCGGGTACGGACGATCGCGTAACGTGGGTGAAG +TCGGTGGATGAAGCCATCGCGGCGTGTGGTGACGTACCAGAAATCATGGTGATTGGCGGCGGTCGCGTTT +ATGAACAGTTCTTGCCAAAAGCGCAAAAACTGTATCTGACGCATATCGACGCAGAAGTGGAAGGCGACAC +CCATTTCCCGGATTACGAGCCGGATGACTGGGAATCGGTATTCAGCGAATTCCACGATGCTGATGCGCAG +AACTCTCACAGCTATTGCTTTGAGATTCTGGAGCGGCGGTAATTTTGTATAGAATTTACGGCTAGCGCCG +GATGCGACGCCGGTCGCGTCTTATCCGGCCTTCCTATATCAGGCTGTGTTTAAGACGCCGCCGCTTCGCC +CAAATCCTTATGCCGGTTCGACGGCTGGACAAAATACTGTTTATCTTCCCAGCGCAGGCAGGTTAATGTA +CCACCCCAGCAGCAGCCGGTATCCAGCGCGTATATACCTTCCGGCGTACCTTTGCCCTCCAGCGATGCCC +AGTGACCAAAGGCGATGCTGTATTCTTCAGCGACAGGGCCAGGAATCGCAAACCACGGTTTCAGTGGGGC +AGGGGCCTCTTCCGGCGATTCTTTGCTGTACATATCCAGTTGACCGTTCGGGAAGCAAAAACGCATACGG +GTAAAAGCGTTGGTGATAAAACGCAGTCTTCCCAGCCCCCGCAATTCCGGTGACCAGTTATTTGGCATAT +CGCCGTACATGGCATCAAGAAAGAAGGGATAGGAGTCACTCGATAGCACCGCTTCTACATCGCGTGCGCA +CTCTTTGGCGGTCTGCAGATCCCACTGCGGCGTGATCCCTGCGTGGGCCATCACCAGCTTTTTCTCTTCG +TCGATTTGCAGCAGAGGCTGGCGCCGCAGCCAGTTAAGCAGCTCGTCGGCATCCGGCGCTTCCAGCAGCG +GTGTCAGGCGATCTTTCGGTTTATTGCGGCTGATCCCGGCAAATACCGCCAGCAGATGCAGATCGTGATT +GCCCAGCACCAGACGTACGCTGTCGCCTAAGGATTTCACATAGCGCAGAACATCCAGCGAACCCGGCCCG +CGCGCGACCAGATCGCCCGTCAGCCAGAGGGTATCTTTCCCAGGGGTAAATTCTACTTTATGCAGCAATG +CGATCAGTTCATCGTAACAACCATGAACGTCGCCAATAAGGTATGTCGCCATATTCTTTTAATGAATGAG +TGTGGGAACGGCGAGTCGGAATACGGGAATGTCGATGCTGAAAGGGACGCCATTTTCATCGATCATTTCG +TAGTGACCCTGCATGGTGCCCAGCGGGGTTTCAATGATTGCACCGCTGGTGTACTGGTACTCTTCGCCAG +GCGCGATAAGTGGCTGGACGCCAACCACTCCTTCGCCCTGGACTTCGGTTTCACGGCCATTGCCATTGGT +GATCAGCCAGTAACGCCCCAACAACTGCACTGGCGCTCGCCCCAGATTGCGTATGGTTACGGTATAAGCA +AAAACGTAACGTTCATTATCAGGTGAAGATTGAGCCTCAATGTAGACGCTTTGAACCTGAATACACACTC +GGGGCGAATTGATCATCGTTAACTCTCCTGCAAAGGCGCGTTCTCCGCCAGATAGTTCGCCATCTGGCAA +TATTGCGCGACAGAGATATTTTCCGCTCGCATCGCCGGGTCGATCCCCATTCCCGTTAACACCTCGACGC +TAAACAGGTTGCCGAGGCTGTTACGAATGGTTTTACGACGCTGGTTAAAGGCTTCGGTGGTGATGCGGCT +CAACACACGAACATCTTTAACCGGGTGAGGCATCGTTGCATGAGGAACCAGGCGCACGACGGCGGAATCC +ACTTTGGGTGGTGGTGTAAAGGCTGACGGCGGTACTTCCAGTACCGGGATCACATTGCAATAGTATTGCG +CCATGACGCTTAATCGACCATACGCTTTGCTGTTCGGTCCTGCAACCAGACGATTCACCACCTCTTTTTG +CAACATAAAGTGCATGTCGGCAATGGCATCAGTATAGCTAAACAGATGGAACATCAACGGCGTGGAGATG +TTATAAGGCAGGTTGCCGAAAACACGCAGCGGCTGACCCATTTTCTCGGCCAGTTCACCAAAGTTAAAGG +TCATCGCATCCTGCTGATAAATCGTCAGTTTCGGGCCTAAGAATGGATGCGTTTGCAGACGTGCCGCCAG +ATCGCGGTCAAGTTCGATGACCGTCAGCTGGTCCAGACGTTCGCCGACCGGTTCGGTCAATGCCGCCAGA +CCGGGGCCGATTTCGACCATCGCCTGGCCCTTTTGCGGGTTAATGGCAGACACAATACTGTCGATCACGA +ACTGATCGTTGAGAAAGTTTTGCCCGAAGCGTTTACGGGCTAAGTGGCCCTGGTGGACTCGATTATTCAT +TGGGTGTTAACAATCATTTTGATGGCGAGATTAAGCGCCGTAATAAAACTGCCGACATCGGCTTTGCCAC +GTCCCGCCAGTTCAAGCGCGGTGCCGTGGTCCACTGATGTGCGAATAAAGGGCAGGCCCAGCGTAATGTT +CACACCGCGCCCGAAGCCCTGGTATTTTAGCACGGGAAGACCCTGATCGTGGTACATCGCCAGCACGGCG +TCGGCGTTATCAAGATATTTCGGCTGAAACAGGGTATCGGCAGGCAGCGGCCCGTTGAGTTTCATCCCCT +GCGCCCGCAGCTCATTGAGCACCGGAATAATGGTGTCTATCTCTTCCGTACCCATATGACCGCCTTCGCC +CGCGTGCGGATTCAGCCCGCAGACCAGAATGCGCGGTTCGGCAATACCAAATTTGGTCCGCAAATCGTGA +TGCAAAATAGCAATCACTTCGTGCAAAAGTGCAGGGGTGATAGCGTCTGCGATATCGCGCAGCGGTAAAT +GCGTCGTTGCCAGCGCCACGCGAAGTTCTTCGGTCGCCAGCATCATCACCACCTTTTTCGCCTGCGAACG +CTCTTCGAAAAACTCGGTATGACCGGTAAAAGGAATGCCAGCGTCGTTAATAACGCCTTTATGCACCGGA +CCTGTGATCAGCGCGGCAAATTCGCCGTTCAGACAACCATCGCACGCTCGCGCCAGCGTTTCCACCACAT +AATGCCCATTTTCAACCGCTAACTGCCCCGCAGTGACAGGTGCACGTAGCGCGACAGGAAGTAGCGTTAA +TGTGCCCGCAGTTTGCGGTTGTGCAGGGGAGTTGGGGGAATAAGGGCGGAGGGTGAGCGGCAAACCGAGC +ATCGCTGCCCGGTTGGTAAGGAGAGTGGCATCGGCACAAACAACCAGTTCGACCGGCCACTCACGCTGTG +CAAGCTGGACAACTAAGTCCGGGCCAATCCCGGCGGGCTCGCCGGGAGTGATCACAACACGTTGGGTTTT +AACCATTAGTTGCTCAGGATTTTAACGTAGGCGCTGGCACGTTGTTCCTGCATCCAGCTTGCTGCTTCTT +CCGAGAACTTACGGTTCATCAGCATGCGGTATGCACGATCTTTCTGCGCAGCGTCGGTTTTATCGACATT +ACGGGTATCCAGCAGTTCGATTAAATGCCAGCCGAATGAAGAGTGAACCGGTGCACTCATTTGACCTTTG +TTCAGGCGAGTCAGGGCGTCACGGAAGGCCGGATCGAAAATATCTGGTGTAGCCCAGCCGAGATCGCCGC +CCTGGTTAGCAGAGCCTGGATCCTGAGAGAACTCTTTCGCTGCGGCAGCAAAAGTCGTTTTACCACTCTT +GATATCAGCAGCAATCTGTTCCAGTTTCACACGGGCCTGTTCGTCAGTCATGATCGGCGACGGTTTCAGC +AGAATATGGCGAGCATGAACTTCGGTCACCGAGATATTTTTGCTTTCGCCGCGCAGGTCGTTAACTTTCA +GAATATGGAAGCCAACGCCGGAACGAATCGGGCCAACAATGTCGCCTTTCTTCGCGGTGCTTAATGCCTG +GGCGAAGATCCCGGGCAACTCCTGAATACGGCCCCAGCCCATCTGGCCGCCGTTCAGCGCCTGCTGGTCG +GCAGAATGAGCAATCGCCAGCTTACCGAAATCAGCGCCGTTACGCGCCTGATCGACAATGGCGCGCGCCT +GGCTTTCCGCTTCGTTCACCTGATCAGAGGTCGGGTTTTCCGGCAGCGGGATCAGGATGTGGCTCAGGTT +CAGCTCAGTGCTGGCGTCGTTTTGGTTACCCACCTGCTGCGCCAGGGATTCGACTTCCTGCGGCAGGATG +GTGATGCGACGACGCACCTCGTTGTTACGCACTTCAGAGATAATCATCTCTTTGCGGATCTGGTTACGAT +AGGTGTTGTAGTTCAGTCCATCGTAAGCCAGACGGCTGCGCATCTGATCCAGCGTCATGTTGTTCTGTTT +CGCGATGTTAGCAATCGCCTGATCCAGCTGCTCATCGGAGATTTTCACTCCCATTTTCTGCCCCATCTGC +AGGATGATTTGATCCATGATCAAACGTTCCATGATTTGGTGGCGCAGCGTCGCGTCATCAGGAAGTTGCT +GCCTTGCCTGAGCAGCGTTCAGTTTTACCGACTGCATTAATCCATCAACGTCGCTTTCCAGCACGACGCC +GTTATTGACGACGGCTGCGACTTTATCGACTACCTGGGGGGCAGCGAAACTGGTATTCGCGATCATGGCG +ATACCGAGAAGCAGCGTTTTCCAGTTCTTCATACTTTTTCCATTTCAATTAACCGCACTGCGGATTACGT +GGTAAATCAACAAATCACAAAGTGTTTTGATACGGCAGAATGTTCGAACGCAGCATCTCTTGCGTACCCA +GACCGTAGTTGGAGCTCAGGCCGCGAAGTTCGATGTTAAAGCCGATTGCGTTGTCATATACCGCATGTTG +TTTATCGTTATCCCAACCGTTCAGCTTCCGCTCGTAACCGACGCGAATTGCATAGCAGCAGGAGCTGTAT +TGCACACCTAACATAGAGTCGGCTTGCTTGTTAGCATTGGTGTCGTAGTAGTAGGCCCCAACAATGGACC +AACGATCGGCAATTGGCCAGCTGGCGACAGCACCTACCTGCGAAATACCATTCTTATATTGCTCAGCAGT +GGAATAGTACTTAGGCAGCGTAGCCTGAATATATTCCGGGCTGGCGTAACGGTAATTCAGCTGTACCAGA +CGGTCTTCATCCCGACGGTATTCAATGCTGGAGTTACTGGTCGCTACGTTATCCAGACGTGTATCGTACT +GAATCCCGCCACGCAATCCCCAACGCTCGGAGATACGCCAGTAAGTATCGCCTGCCCACACCAGTGAACC +CGTTTTGTCGTCATTCTCCCATGTTATGTTGTCATCGCCAGTGCGAGACTCCGTGAAATAGTAGATTTGA +CCAACGGAAATATTAAAACGTTCAACGGCAGCATCATCATATATGCGAGATGTGACACCGGTCGTCACCT +GGTTAGCGGAGGCAATACGGTCAAGACCGCCGTAAGTCCGGTCCCGGAACAGGCCAGAGTAGTCAGATTG +CAGCAGAGACGAGTCGTAGTTATAGATGTCGCTCTGATCGCGATACGGCACGTACAAATACTGCGCGCGC +GGTTCCAGCGTTTGGGTATAACCCGGAGCCAGCATTTCCATATCGCGTTCAAAGACCATTTTGCCGTCAA +CTTTGAATTGCGGCATTACGCGGTTAACGGATTCGTCCAGCTTGGTCGTGTTTCTGGAGTTATACCAGTC +AAGATTGGTTTGCTGATAATGGGTTGCCAGCAACTTCGCTTCGGTATTGATGCTGCCCCAGTTATTAGAG +AGCGGCAAATTGATGGTCGGTTCCAGGTGAACACGGGTTGCTTCAGGCATGTCGTCTCTGGTGTTAACAA +AGTGCACTGCCTGGCCGTAAATACGCGTATCAAACGGACCAACATCATTCTGGTAGTAATTAACGTCTAA +CTGCGGCTCTGCCGAGTAGCTACTGGTGTTCTGTTCGCTGAAAACCTGGAACTGCTTGGTTGAAACGGTG +GCATTGAAGTTTTGCACCGCATAGCCAACGCTGAATTTTTGCGTTGCGTAGCCGTCAGTACTGGAACCGT +ACTTGTTATCGAAATCATTGAAGTAGCTAGGATCGCTGACCTTGGTGTAGTCGACGTTGAAACGCCACAC +CTGATCCATGACCCCGGAGTGGTTCCAGTAGAATAACCAACGACGTGAACTGTCATCGTTCGGGTGTTCA +TCTTCATAGACTTTATCTGAAGGCAGATAGTCCAGTTCCATCAAGCCAGCGCCCGCCTGGGAGAGGTAGC +GGAATTCGTTCTCCCACATGATGTTGCCACGACGATGCATATAATGCGGCGTGATGGTGGCATCCATATT +TGGCGCGATGTTCCAGTAATATGGCAGGTAGAACTCAAAGTAGTTGGTGGTGGTGTACTTGGCGTTCGGG +ATCAAGAAACCAGAGCGACGTTTGTCACCCACCGGCAACTGCAAATAGGGGCTATAAAAGATCGGTACCG +GACCCACCTTAAAGCGGGCGTTCCAGATCTCCGCAACTTGTTCTTCGCGGTCATGAATAATTTCGCTACC +TACCACGCTCCAGGTGTCAGAACCCGGCAGACAGGAGGTAAAGCTACCGTTATCCAGAATGGTATAGCGG +TTTTCGCCACGTTGTTTCATCAGGTCCGCTTTACCGCGACCCTGGCGACCCACCATCTGGTAATCACCTT +CCCAGACGTTGGTATCTTTGGTGTTCAGATTCGCCCAGCCTTTCGGCCCTTTGAGGATCACCTGGTTATC +GTCGTAATGGACATTACCGAGCGCATCAACGGTACGTACCGGCTCCGGTTGTCCTGGTGCCTCTTTTTGA +TGGAGCTGCACTTCGTCGGCCTGCAGACGGCTGTTACCCTGCATGATATCCACGCTGCCAGTAAACACGG +CGTCATCCGGGTAGTCCCCTTTCGCGTGGTCAGCATTGATAGTCACGGGTAAGTCATTGGTATCGCCCTG +TACCAGAGGACGGTCATAGCTTGGCACGCCCAACATGCACTGTGAGGCGAGGTCGGCTGCCAGTCCCTGT +TGACTATAAAGGGCGGTGGCAATCATGGTGGCCAGGAGAGTGGGGATACGTTTTTTCATACGTTGATTTT +ATTGTTCCATCATCGGTAACGTTGCGCGTGACAAACGGTCAGAGACTAACGTACTCGTCATCTCTACGCT +AGTGTTAATCCTGTCCGAATAGCGTCAGTGGTGTTAGGCACGGCATTGAATGACAGGTATGATAATGCAA +ATTATAGGCGATGTCCCACAATTGACCGCAGCCGGAAAACGGTAAAAGCACCTTTATATTGTGGGAGATA +GCCCTGATATCCGTGTGTCGATTTGGGGAATATATGCAGTATTGGGGAAAAATCATTGGCGTGGCCGTGG +CCTTACTGATGGGCGGCGGCTTTTGGGGCGTAGTGTTAGGCCTGTTAATTGGCCATATGTTTGATAAAGC +CCGTAGCCGTAAAATGGCGTGGTTCGCCAACCAGCGTGAGCGTCAGGCGCTGTTTTTTGCCACCACTTTT +GAAGTGATGGGGCATTTAACCAAATCCAAAGGTCGCGTCACGGAGGCTGATATTCATATCGCCAGCCAGT +TGATGGACCGAATGAATCTTCATGGCGCTTCCCGTACTGCGGCGCAAAATGCGTTCCGGGTGGGAAAATC +AGACAATTACCCGCTGCGCGAAAAGATGCGCCAGTTTCGCAGTGTCTGCTTTGGTCGTTTTGACTTAATT +CGTATGTTTCTGGAGATCCAGATTCAGGCGGCGTTTGCTGATGGTTCACTGCACCCGAATGAACGGGCGG +TGCTGTATGTCATTGCAGAAGAATTAGGGATCTCCCGCGCTCAGTTTGACCAGTTTTTGCGCATGATGCA +GGGCGGTGCACAGTTTGGCGGCGGTTATCAGCAGCAAACTGGCGGTGGTAACTGGCAGCAAGCGCAGCGT +GGCCCAACGCTGGAAGATGCCTGTAATGTGCTGGGCGTGAAGCCGACGGATGATGCGACCACCATCAAAC +GTGCCTACCGTAAGCTGATGAGTGAACACCATCCCGATAAGCTGGTGGCGAAAGGTTTGCCGCCTGAGAT +GATGGAGATGGCGAAGCAGAAAGCGCAGGAAATTCAGCAGGCATATGAGCTGATAAAGCAGCAGAAAGGG +TTTAAATGACCCTGTAAATGATGCTGAGTAACTGCCCACGATTAAAGGTGGCCGCCCTGGCGGTCACTTC +TTTGAGAAAAGGCGTTTACTCAGAATGGTGGACAGGCTCAATGCACGGTTTACGGGAGGGGTTCTGTAGG +TTTTATCGCGTTGACCCTGCTTAAGGTTGAGAGCTTTACGACGAGCGGAATTATATTTTTACGTCTTAAA +AATAAAAAACACATACCTGAATGAGCGATTTTTGAAAGTATATTTATTCAGAACGCGCATCATGAGTTTT +TAACTCAATGCGAGGCTATTACCATGAAAGTATCAGTTCCAGGCATGCCGGTTACACTTTTAAATATGAG +CAAGAACGATATTTATAAGATGGTGAGCGGGGACAAGATGGACGTGAAGATGAATATCTTTCAACGCTTG +TGGGAGACGTTACGCCATCTGTTCTGGTCAGATAAACAGACTGAGGCTTATAAACTTCTGTTCAATTTCG +TGAATAACCAGACTGGCAACATCAACGCCTCAGAATACTTTACTGGGGCTATCAACGAGAATGAGAGAGA +AAAGTTTATCAATAGCCTGGAATTATTCAATAAACTTAAAACATGCGCAAAAAATCCGGATGAGTTGGTC +GCAAAGGGCAATATGCGCTGGGTCGCCCAGACCTTCGGGGATATCGAGTTAAGTGTCACTTTTTTCATTG +AAAAGAATAAGATATGTACTCAGACGTTGCAGCTGCATAAGGGCCAAGGTAACTTGGGCGTTGATCTTAG +AAAGGCTTACCTTCCCGGCGTTGACATGAGGGATTGTTACCTTGGTAAAAAAACAATGAAAGGTAGCAAT +GATATCCTTTATGAGAGACCTGGGTGGAATGCTAACCTGGGCGTGCTACCCCGGACGGTGCTACCCCGGA +CGGTGCTAACCCGGACGGTGCTAACCTGGACGGTGCTACCGTGAACGGTGCTACCTCCTTATATGATGAG +GTAATTATTATTAATAAAATCCCCCCCAAAAAAATTGATACTAAAGGAGTTGCTACTGAAGAAGTTGCTA +CTAAAAAAGTACTGCTGAACAAATTACTGACAACGCAATTATTGAATGAGCCAGAATAAGCTAAGGTTGA +AGGGGCTGGAACGCCCCTTCAACCTTAGCAGTAGCGTGGGATGATTTCACAATTAGAAAGACCTGCATGA +TGAGCTAGAGAAGAGGCTAGTGACGCAAGGCGTCGTGCAGGACACGGATCACCGAGATGGGCATCGCCAA +CCAGACTGCTAATTAGCCCATGAATAACAATCAGAAAGGACCATAACAGACCCGTTAAAATGAAATATAA +GAGACGGTCAACGGGTGAAGAAAAAGTTCAAAAATTCGCTGTGGAGCAGGAAGGGAATTACCGAATGGAA +AGCGTAGCCACACGCAACAACTGAAAGCAGTTTGGCAGAAACAAAAAATCCCCGGACTCGGGGATTTATG +TACAAGAGGCAGCCCTTAGGATGAGGGTATAAACGTACAGGAAAGGTTAAAAATCCGCTGGCGCTTTAAA +CGTCATACTATTGCCATACGCCGGATGGGTAATCGTCAACATCTCTGCATGTAGCAACAAACGTGGTGCC +ATCGCTCTCGCTTCTGGTGATGCATAAAAACGATCGCCGAGAATCGGATGACCCAGCGCCAGCATATGCA +CACGCAATTGATGCGAACGCCCGGTAATCGGTTTTAACACCACTCTTGCCGTGTTATCCGCCGCATACTC +CACCACTTCATATTCCGTCTGCGCAGGTTTACCCGTTTCGTAACAGACTTTCTGTTTCGGGCGGTTTGGC +CAGTCGCAAATCAGCGGCAGATCCACCAGACCTTCTGCGGGGGATGGATGCCCCCAGACGCGGGCCACAT +ACTGCTTTTTCGGCTCGCGCTCGCGGAACTGGCGTTTTAACTCCCGCTCCGCGGCTTTGGTCAGCGCCAC +TACAATCACGCCGCTGGTAGCCATATCCAGACGATGCACCGATTCTGCCTGCGGATAATCACGCTGAATG +CGCGTCATCACGCTGTCTTTGTGCTCTTCCAGACGACCCGGCACTGACAACAAACCGCTCGGCTTGTTGA +CCACCATAATATGGTCATCCTGATACAGGATAACCAACCAGGGTTCCTGCGGTGGATTGTAGTTTTCCAT +CCCCATTTTCGGCTCCGTTACTGATGCGTTACAACGATCAAACGCAGGGCATCCAGACGCCAACCTGCCT +GATCCAGGCTTTCCATTACCTGCTGACGGTTGCTCTCAATGGCGGTCAGTTCGTCGTCACGAATGTTCGG +GTTCACTGCACGCAGAGCTTCCAGACGAGACAGCTCGGCAGACAGTTTTTCGTCGGCTTCGTTACGCGCT +GCATCAATCAATGCACGGGCAGATTTCTCGATCTGCGCTTCACCCAGTTGAAGGATAGCGTGAACATCCT +GCTGCACGGCGTTAACCAGTTTGCTGCCGGTGTGACGGTTAACCGCGTTAAGCTGGCGGTTAAAGGTTTC +AAACTCTACCTGCGCCGCCAGGTTGTTGCCGTTTTTATCCAGCAGCATACGTACCGGCGTCGGTGGCAGG +AAGCGGTTGAGCTGCAACTGCTTCGGAGCCTGGGCTTCAACCACATAAATCAGTTCCACCAACAGCGTAC +CTACCGGCAACGCTTTGTTTTTTAACAGTGAAATCGTGCTGCTACCGGTATCGCCAGAAAGGATCAGATC +CAGACCGTTGCGGATCAGCGGATGCTCCCAGGTAATAAACTGTGCATCTTCACGCGCCAGCGCCACTTCA +CGATCAAAGGTGATGGTGATGCCATCTTCCGACAGGCCAGGGAAGTCCGGCACCAGCATATGATCGGACG +GCGTCAGCACGATCATGTTGTCGCCGCGATCGTCCTGATTGATACCGATAATATCGAACAGGTTCATGGC +GAAGGCGATCAGGTTGGTATCGTCATCCTGCTCTTCAATGCTTTCTGCCAGTGCCTGGGCTTTTTCGCCA +CCGTTGGAGTGGATTTCCAGCAGGCGGTCACGACCCTGTTCCAGCTGTGCTTTCAGCGCTTCATGTTGCT +CGCGGCAGTTTTTGATCAGATCGTCAAAGCCTTCGGTTTGATCCGGTGAAGCCAGATAGTTAATCAGATC +GTTGTATACGCTATCGTAAATAGTGCGTCCGGTCGGGCAGGTGTGCTCAAATGCATCCAGACCTTCGTGA +TACCAGCGCACCAGCACCGACTGAGCGGTTTTCTCCAGATAAGGCACATGGATCTGAATATCGTGCGCCT +GGCCGATACGATCCAGACGACCAATACGCTGCTCCAGTAGATCCGGGTTGAATGGCAGGTCAAACATCAC +CATGTGGCTGGCGAACTGGAAGTTACGTCCTTCAGAACCGATTTCTGAGCACAGCAGTACCTGTGCGCCG +GTGTCTTCTTCGGCAAACCAGGCGGCAGCGCGGTCACGTTCGATAATCGACATACCTTCGTGGAACACCG +CAGCGCGAATACCTTCACGTTCGCGCAGTACCTGCTCCAGTTGCAGCGCAGTGGCAGCTTTGGCGCAGAT +CACCAGCACTTTCTGAGAGCGATGGCTGGTCAGGTAGCCCATCAGCCACTCAACGCGCGGATCGAAGTTC +CACCAGGTGGCGTTATCACCTTCAAATTCCTGATAAATACGCTCCGGGTAGAGCATATCGCGAGCACGAT +CTTCCGCACTTTTACGTGCGCCCATAATGCCGGAGACTTTAATAGCCGTCTGATACTGCGTCGGTAGCGG +CAGCTTAATGGTGTGCAGCTCGCGTTTCGGGAATCCTTTCACACCGTTACGCGTGTTACGGAACAGCACG +CGGCTGGTGCCGTGGCGATCCATCAGCATCGAAACCAGCTCCTGACGGGCGCTCTGGGCATCTTCGCTGT +CGCTGTTTGCTGCCTGCAACAGCGGCTCGATATCCTGCTCGCCGATCATCTCGCCGAGCATGTTCAGTTC +GTCATTGCTCAGTTTGTTACCTGCCAGCAGCATGGCAACGGCGTCCGCAACCGGACGATAATTTTTCTGC +TCTTCAACGAACTGCGCAAAATCGTGGAAACGGTTCGGGTCCAGCAGACGCAGACGGGCGAAGTGGCTTT +CCATCCCCAGCTGTTCCGGGGTCGCGGTCAGCAGCAGAACGCCCGGCACGTGCTCTGCCAGTTGTTCAAT +GGCCTGATATTCACGGCTTGGCGCATCTTCGCTCCACACCAGGTGATGCGCTTCATCGACCACCAGCAGG +TCCCATTCGGCTTCACAGAGATGTTCCAGGCGCTGTTTGCTACGACGGGCAAAATCCAGCGAGCAAATCA +CCAGCTGTTCGGTGTCAAACGGGTTGTAAGCATCGTGCTGAGCTTCGGCATAACGCTCATCATCAAATAG +CGCAAAGCGCAGGTTGAAACGGCGCAGCATTTCTACCAGCCACTGATGCTGTAAGGTTTCCGGGACGATA +ATTAGCACACGTTCAGCAGCGCCAGAGAGCAGTTGCTGATGCAGGATCATCCCGGCTTCAATGGTTTTCC +CTAAACCCACTTCGTCAGCCAGCAGGACGCGCGGCGCGTGGCGGCGACCAACATCATGAGCGATGTTGAG +CTGATGCGGGATCAGGCTGGTACGCTGACCGCGCAGGCCGCTGTACGGCATACGGAACTGTTCGCTGGAA +TATTTACGCGCGCGATAACGCAGCGCAAAGCGGTCCATACGGTCAATCTGCCCGGCAAACAGACGGTCCT +GCGGTTTGCTGAACACCAGTTTGCTATCAAGGAAAACTTCACGCAGGGCTACGCCGGACTCTTCAGTATC +CAGGCGAGTACCGATATAGGTCAGCAAGCCATTTTCTTCTTTTACTTCTTCGACTTGCATCTGCCAGCCG +TCATGGCTGGTAATGGTATCACCAGGGTTGAACATCACGCGGGTCACGGGGGAATCACTGCGTGCGTACA +GACGGTTTTCACCAGTAGATGGGAAAAGTAAAGTGACAGTTCGCGCATCCACCGCGACAACGGTTCCAAG +TCCCAATTCGCTTTCTGTATCGCTGATCCAGCGTTGACCAAGTGTAAAAGGCATATGTGTTCGGCTCTAT +ATCTTTAATTGCAGGCAATAACCACCCGCTACCGTGCTTATGAGGTAGTGGTGTTATTCAGGTCCAGGAA +TGGAAAGGGCGCTATGGTACTGGATGGCAAAGCATTCGTCACGCATCAAAATGGTATCTGGCGAACTCTT +TTTTTTGCTCAAAATAGCCCAAGTTGCCCGGTCATAAGTGTAGCAAAATTATCCTCAATAAAAGGGAGTA +TTCCCTCCGCCACGGGTTGTAGCTGGCGGGTCAGATAGTGTTCGTAATCCAGTGGTGAACGTTGGTAGTC +CAGCGGCTCCGGGCCGTTGGTGGTCCATACGTACTTAATGGTGCCGCGATTCTGATATTGCAAGGGGCGA +CCACGCTTTTGGTTTTCTTCATCGGCAAGGCGAGCGGCGCGTACATGAGGCGGCACATTACGCTGATACT +CGCTCAGCGGACGGCGAAGGCGTTTACGGTAAACCAGTCGCGCATCCAGTTCACCCGCCATCAGTTTGTC +GATGGTTTCGCGTACATATTCCTGATATGGCTCGTTGCGGAAGATGCGCAGGTATAGCTCCTGCTGAAAC +TGCTGGGCCAGCGGCGTCCAGTCGGTGCGCACGGTTTCCAGCCCTTTAAACACCATCCGCTGCTTGTCGC +CCTCCTGAATCAGTCCGGCATAACGCTTTTTACTGCCGGTATCGGCTCCGCGAATGGTTGGCATCAGAAA +ACGGCAGAAATGGGTTTCATACTCCAGTTCTAATGCGCTGGTCAGCCGTTGTTTTTGCAGCGTTTCCGCC +CACCAGGCGTTAACGTGCTGCACCAGTGCACGACCGATTTTCGCCGCTTCTTCTTCCGAATGTGCGCCTT +TCAGCCAGACAAACGTTGAGTCGGTATCGCCGTAGATAACGTCGTAGCCCTGTGCTTCAATCAACGCTTT +GGTTTGCCGCATGATCTGATGACCACGCATGGTGATCGACGATGCCAGCCGCGGATCGAAGAAGCGGCAG +GCGGTGGTGCCGAGCACGCCATAAAAGGCATTCATGATGATTTTCAGCGCCTGCGACAGCGGTTTGTTAC +CCTGGCGTTTGGCTTCATCGCGCCCGTGCCAGATGTTAGTCACAATCTCCGGCAGGCAATGTTTTTCTCG +CGAGAACCAGGCATCGAGAAAACCTTCGGTACTGTGCTCTGGATCAGGCTGCGCCATGCCTTCCACCAGC +CCGACGGGATCAATCAGAAAGGTGCGGATGATCGACGGGTACAGGCTTTTATAGTCCAGCACCAGCACTG +AATCATAAAGCCCTGGCCGTGAATCCATCACGTAGCCGCCAGGGCTGGCGTGCGGCGGCACTTCGCCGAG +ATTAGGCGCGACATAACCAGCGCGATGCATTCGCGGAAAATAGAGATGACCAAATGCCGCCACCGAACCG +CCGTGTCGGTCCACCGGCAGGCCGTTCACCGTTGCCCGTTCGAGTAAAAATGGCATGATTTCAGTTTTGT +GGAAGATCTGCGTCACCAGCTCGCAATCTTTCAGGTTATAAGTTGCCAGCGCAGGTTTATCTTCGGCGAA +ACGGCGGTCAATTTCGTCCATTCGATCCCACGGGTTATCGATAGATTTTCCTTCGCCTAATAGCTCCTGA +GCGACAGTTTCCAGCGAGAATGAAGAGAAATTCCAGAACGCGGATTTCAGCGCCTCGATACCGTCGATAA +TTAGCCGACCTTTAGCCTGGGCAAAAAAGACGCCGTTTTTAAAGCCGTGCTCGCGCCACTCCAGCTCGCT +ATTATCGCGCCCAAGACGCAGCGGAAGACGGTAACGCTCGGCATGTTTTTGCAGCATTCGCAGATCGAAC +TGCACCACGTTCCAACCGATGATCACATCAGGATCGTAGTTGGCAAACCAGGCGTTGAGTTTTTCCAGCA +ACTGCGGGCGGCTGGCGACGTATTCCAGTTCGAAATCAAGCGAGGAGGCGTCGCCATTCTCCGGCCCCAG +CATATAAACGATGCGCTGCCCGCAGCCTTCCAGGCCGATGCAGTACAGCTCACCGTGGCGGGTGGTTTCA +ATATCTATAGAAACCCACTTGAGCGGCGGACGATAGTCGGGATGCGGTTTCAGACGGGCATTAACGATAG +TGCCATTGTGCATATCACCCTCGACCCACACCGGTGAGGTGATAAACCGCTCCATCAGATAGCGTTCTGG +CGGACGCACATCGGCCTCGTAGACGGTAACGCCACCTTCACGCAGGCGCTTTTCGTAATTCATCAATTGG +CGATGGGCGCGACAGTAAAGGCCATACACCGGCTGGCGGTGAAAATCCTTTAACGCCAGCGGTGTCAGGC +GAAAGCCTTGTTCACCCTGCAAAATATGCTGAGCGCGGGGAACCTGATCGGCGGGAATAAACGCCACGGA +CTCTTGCGGTGCAAGCGTAACCTGCAACGGCCCGTTGTCCGTCGCCAGCCAGAAGGAGACTTCTGTCCCT +TGCGGGGTGTCCCGCCAGTGTCGGGTTAAGATAAAACCTGCCTGCGCCACGCTGAAAATCCATCAAAAAA +CCAGGCTTGAGTATAGCCTGGTTTCGTTTGATTGGCTGTGGTTTTATACAGTCATTACTGCCCGTAATAT +GCCTTCGCGCCATGCTTACGCAGATAGTGTTTATCCAGCAGCGTTTGCTGCATATCCGGTAACTGCGGCG +CTAACTGACGGCAGAATATCCCCATATAAGCGACCTCTTCCAGCACGATGGCGTTATGCACCGCATCTTC +GGCATTTTTGCCCCATGCAAACGGGCCGTGGGAATGGACCAGAACGCCGGGCATTTGCGCTGCATCGATA +CCCTGTTTTTCAAAGGTTTCTACGATGACGTTACCGGTTTCCCACTCATATTCGCCGTTGATTTCTGCGT +CGGTCATTTTGCGGGTGCAGGGAATGGTGCCGTAGAAATAGTCGGCGTGGGTGGTGCCGGTTGCTGGAAT +CGACTGACCCGCCTGCGCCCAGATGGTGGCGTGGCGCGAGTGCGTATGCACAATGCCGCCAATGGAGGGG +AATGCCTGATAGAGCAGCCGGTGAGTTGGCGTGTCGGAGGAGGGCTTTTTCGTACCTTCAACCACTTCAC +CGGTTTCGATGCTAACCACGACCATATCGTCAGCGGTCATGACGCTGTAATCGACGCCGGAAGGTTTGAT +CACAAAGACGCCGCGCTCGCGATCAACGGCGCTGACGTTGCCCCATGTGAGCGTGACCAGGTTGTGTTTT +GGCAGCGCCAGGTTGGCTTCTAATACCTGGCGTTTGAGATCTTCTAACATGTTGACTCCTTCGTGCCGGA +TGCGCTTTGCTTATCCGGCCTACAAAATCGCAGCGTGTAGGCCTGATAAGACGCGCCAGCGTCGCATCAG +GCGTTGAATGCCGGATGCGCTTTGCTTATCCGGCCTACAAAATCGCAGCGCGTAGGCCTGATAAGACGCG +CCAGCGTCGCATCAGGCGTTGAATGCCGGATGCGCTTTGCTTATCCGGCCTACAAAATCGCAGCGTGTAG +GCCAGATAAGACGCGTCAGCGTCGCATCAGGCGTTACATACCGGATGCGGCTACTTAGCGACGAAACCCG +TAATACACTTCGTTCCAGCGCAGCGCGTCTTTAAACGCTGGCAGGCGTGTGTCGTTATCAATCACCGTGA +TTTCAATGTCGTGCATCTCGGCGAATTGGCGCATATCGTTGAGGTTCAGTGCATGGCTGAAGACGGTATG +GTGCGCGCCACCAGCGAGGATCCACGCTTCGGAAGCAGTTGGCAGATCCGGTTGCGCTTTCCACAGCGCA +TTCGCCACCGGCAGTTTCGGCAGGGAGTGCGGTGTTTTCACCGTGTCGATGCAGTTAACCAGTAGACGGT +AACGATCGCCGAGATCAATCAAGCTGGCGACAATCGCTGGGCCGGTTTGGGTATTGAAGATCAGGCGGGC +AGGATCGTCCTTACCACCAATACCGAGATGCTGAACGTCGAGGATCGGTTTCTCTTCTGCGGCGATCGAC +GGGCAGACTTCCAGCATATGGGAGCCGAGCACCAGGTCATTACCTTTCTCGAAGTGATAGGTGTAGTCCT +CCATAAAGGAGGTGCCGCCCTGCAGACCGGTTGACATCACCTTCATGATGCGAAGCAGGGCGGCAGTTTT +CCAGTCGCCTTCGCCCGCAAAGCCGTAACCCTGCTGCATCAGACGCTGTACGGCCAGACCAGGAAGCTGT +TTCAGACCGTGCAAATCTTCAAAGGTGGTGGTGAACGCGTGGAAGCCACCTTGTTCCAGGAAACGCTTCA +TCCCCAGCTCAATACGCGCCGCTTCCAGCACGTTCTGTCGTTTTTTGCCGTGGATTTGTGTGGCAGGCGT +CATGGTGTAGCAGCTTTCGTACTCATCGACCAGCGCGTTAACATCGCCGTCGCTGATGGAGTTCACCACC +TGCACCAGATCGCCAACCGCCCAGGTATTGACGGAGAAACCGAACTTGATCTGTGCGGCAACTTTATCGC +CATCGGTGACCGCCACTTCACGCATGTTATCGCCAAATCGGCAGACTTTCAGATGACGGGTATCCTGTTT +AGAGACCGCCTGACGCATCCAGGAGCCGATACGCTCATGGGCTTGTTTATCCTGCCAGTGACCGGTAACC +ACGGCATGTTGCTGACGCATACGCGCGCCAATGAAGCCGAACTCGCGACCGCCATGTGCAGTCTGGTTCA +GGTTCATAAAGTCCATATCGATACTGTCCCACGGCAGCGCCGCGTTGAACTGGGTGTGGAATTGCAGCAA +CGGTTTGTTGAGCATGGTCAGGCCGTTGATCCACATTTTGGCCGGGGAGAAGGTGTGCAGCCACACCACC +AGACCAGCGCAACGATCGTCGTAATTCGCGTCGCGGCAAATAGCGGTGATTTCATCCGGCGTGGTGCCCA +GCGGTTTCAACACCAGTTTGCAGGGCAGTTTCGCTTCCGTATTCAGCGCATTAACGACGTGCTCGGCATG +TTGGGTGACCTGACGCAGGGTTTCCGGGCCATACAGATGCTGGCTGCCAATGACAAACCACACTTCATAA +TTATCAAAAATCGTCATTATCGTGTCCTTATAGAGTCGCAACGGCCTGGGCAGCCTGTGCCGGGGCGGAA +GTTGGAAGATAGTGTTGTTCGGCGCTCATCGCCCATTGCTGATAGCGGCGATAAAGCTGTTCAAAGCGTT +GTGCCTGCTCGCTGCACGGTTGCAGGGTTTTCTCTACCGCACTGGCCATTTTTTGCTGAGCTGATGGGAT +GTCTGCGTGCACTTTCGCGGCGACGGCAGCAAAAATCGCCGCACCGAGCGCACAGCACTGGTCAGAGGCA +ACAATTTGCAGCGGGCGATTCAGCACGTCGCAGCAGGCCTGCATAATGACCTGGTTTTTCCGCGCGATGC +CGCCCAGTGCCATCACGTTATTAACGGCGATCCCCTGATCGGTAAAGCACTCCATGATTGCGCGTGCGCC +AAAGGCGGTGGCAGCAATCAAACCGCCGAACAGCAGCGGAGCGTCGGTAGCGAGGTTAAGATCGGTAATC +ACCCCTTTCAGGCGTTGGTTAGCGTTCGGTGTGCGGCGGCCGTTAAACCAGTCGAGCACCACCGGCAGGT +GATCCAGAGACGGATTTTTGGCCCATGCTTCGGTCAGCGCCGGAAGCAGTTGTTTCTGGCTGGCGTTGAT +TTGCGTTTTCAGTTCCGGATGCTGGGCGGCAAGCTGTTCCAGCGGCCAGCCGAGTACGCGACCAAACCAG +GCGTAGATATCACCAAACGCCGATTGGCCTGCTTCCAGACCGATAAATCCAGGCACCACGCTGCCATCAA +CCTGACCGCAAATACCTTTAACTGCCCGCTCGCCAACGCTCTGTTTGTCGGCAATCAGAATGTCGCAGGT +GGAAGTACCGATAACTTTTACCAGTGCGTTAGGCTGTGCGCCTGCGCCAACTGCGCCCATATGGCAGTCA +AACGCGCCGCCGGAAATCACCACGCTTTCAGGCAGGCCGAGACGCTGCGCCCATTCCGGGCATAAGGTGC +CCACCGGAATATCGGCAGTCCAAGTGTCAGTGAACAGCGGGGAAGGCAAATGGCGATTGAGGATCGGGTC +CAGCTCATCAAAGAAACTGGCTGGCGGCAGGCCGCCCCAGCTTTCGTGCCACAGAGATTTATGCCCGGCG +CTGCAACGTCCGCGACGAATATCCTGCGGGCGGGTGGTACCGGAAAGCAGAGCTGGCACCCAGTCGCACA +GCTCAATCCACGATGCGGCAGATTGCGCCACGGCGCTGTCCTGGCGAGTCACATGCAGGATTTTTGCCCA +GAACCATTCGCTGGAATAAATACCACCAATGTAGCGGGAGTAGTCAACGTTGCCCGGCGCGTGGCACAAA +CGGGTAATCTCTTCCGCTTCTTCAACCGCAGTGTGGTCTTTCCACAATACGAACATCGCGTTCGGGTTTT +CGGCAAACTCCGGGCGCAGCGCCAGCACGTTTCCGTCGGCATCAATCGGTGCGGGCGTCGAGCCGGTACT +GTCAACGCCAATCCCGACCACAGCTGCGCGCTGTTCGACGCTAAGCTCTGCAAGCACGGTTTTCAGTGCC +GCTTCCATTGACTCAATGTAGTCACGCGGATGATGACGGAACTGGTTATTCGGGGCATCACAAAATTGCC diff --git a/scripts/test_ambig.py b/scripts/test_ambig.py new file mode 100644 index 0000000..4094685 --- /dev/null +++ b/scripts/test_ambig.py @@ -0,0 +1,67 @@ +#!/usr/bin/env python +import argparse + +from kcollections import Kcounter, Kset +from collections import Counter + +from Bio import SeqIO + +KMER_SIZE = 23 + +def get_kmers(seq, k=KMER_SIZE): + for i in range(len(seq) - k + 1): + kmer = str(seq[i:i + k]) + yield kmer + + +def test_kcounter(sequence): + kcounter = Kcounter(KMER_SIZE) + kcounter_seq = Kcounter(KMER_SIZE) + kset = Kset(KMER_SIZE) + counter = Counter() + #tk = 'TGCCGGATGCGCTTTGCTTATCC' + with open(sequence, 'rU') as seq_fh: + for record in SeqIO.parse(seq_fh, 'fasta'): + print(len(record.seq)) + #kcounter_seq.add_seq(str(record.seq)) + for i, kmer in enumerate(get_kmers(record.seq)): + #print(i, kmer) + try: + kcounter[kmer] += 1 + counter[kmer] += 1 + #assert kcounter[tk] == counter[tk], "{} {} {}".format(kcounter[tk], counter[tk], kmer) + except ValueError as e: + print(e) + print(len(kcounter), len(counter)) + + for i, (kmer, count) in enumerate(kcounter.items()): + if count > 1: + print(i, '/', len(kcounter), 'kmer:', kmer, count) + + print("begin testing") + for kmer, count in counter.items(): + #print('test1', kmer) + if kmer not in kcounter: + print('ERROR: kmer present in Counter, but not in Kcounter') + continue + if kcounter[kmer] != count: + print('ERROR: count mismatch, Counter count:', count, 'Kcounter count:', kcounter[kmer], kmer) + + for kmer, count in kcounter.items(): + #print('test2', kmer) + if kmer not in counter: + print('ERROR: kmer present in Kcounter, but not in Counter') + continue + if counter[kmer] != count: + print('ERROR: count mismatch, Kcounter count:', count, 'Counter count:', counter[kmer], kmer) + + print("done!") + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description='Test Kcounter.') + parser.add_argument('sequence', type=str, default='./source.fa', + help='Path to a sequence file to test on') + + args = parser.parse_args() + + test_kcounter(args.sequence) diff --git a/scripts/test_counter.py b/scripts/test_counter.py index d96bd68..3123630 100644 --- a/scripts/test_counter.py +++ b/scripts/test_counter.py @@ -13,9 +13,10 @@ def get_kmers(seq, k=KMER_SIZE): for i in range(len(seq) - k + 1): kmer = str(seq[i:i + k]) nucleotides = set(kmer) + ambiguous = False if len(nucleotides.intersection(set('RYWSMKHBVDN'))) > 0: - continue - yield kmer + ambiguous = True + yield ambiguous, kmer def test_kcounter(sequence): @@ -23,23 +24,24 @@ def test_kcounter(sequence): counter = Counter() with open(sequence, 'r') as seq_fh: for record in SeqIO.parse(seq_fh, 'fasta'): - for kmer in get_kmers(record.seq): - kcounter[kmer] += 1 - counter[kmer] += 1 + for ambiguous, kmer in get_kmers(record.seq): + if not ambiguous: + counter[kmer] += 1 + kcounter[kmer] += 1 for kmer, count in counter.items(): if kmer not in kcounter: - print('ERROR:', kmer, 'present in Counter, but not in Kcounter') + print('ERROR: kmer present in Counter, but not in Kcounter') continue if kcounter[kmer] != count: - print('ERROR:', kmer, 'count mismatch, Counter count:', count, 'Kcounter count:', kcounter[kmer]) + print('ERROR: count mismatch, Counter count:', count, 'Kcounter count:', kcounter[kmer]) for kmer, count in kcounter.items(): if kmer not in counter: - print('ERROR:', kmer, 'present in Kcounter, but not in Counter') + print('ERROR: kmer present in Kcounter, but not in Counter') continue if counter[kmer] != count: - print('ERROR:', kmer,'count mismatch, Kcounter count:', count, 'Counter count:', counter[kmer]) + print('ERROR: count mismatch, Kcounter count:', count, 'Counter count:', counter[kmer]) if __name__ == '__main__': diff --git a/scripts/test_counter_p3.py b/scripts/test_counter_p3.py new file mode 100644 index 0000000..67a0553 --- /dev/null +++ b/scripts/test_counter_p3.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python +import argparse + +from kcollections import Kcounter, Kset +from collections import Counter + +from Bio import SeqIO + +KMER_SIZE = 23 + +def get_kmers(seq, k=KMER_SIZE): + for i in range(len(seq) - k + 1): + kmer = str(seq[i:i + k]) + yield kmer + + +def test_kcounter(sequence): + kcounter = Kcounter(KMER_SIZE) + kset = Kset(KMER_SIZE) + counter = Counter() + tk = 'TGCCGGATGCGCTTTGCTTATCC' + with open(sequence, 'rU') as seq_fh: + for record in SeqIO.parse(seq_fh, 'fasta'): + for kmer in get_kmers(record.seq): + kset.add(kmer) + kcounter[kmer] += 1 + counter[kmer] += 1 + assert kcounter[tk] == counter[tk], "{} {} {}".format(kcounter[tk], counter[tk], kmer) + + for kmer, count in counter.items(): + if kmer not in kcounter: + print('ERROR: kmer present in Counter, but not in Kcounter') + continue + if kcounter[kmer] != count: + print('ERROR: count mismatch, Counter count:', count, 'Kcounter count:', kcounter[kmer], kmer) + + for kmer, count in kcounter.items(): + if kmer not in counter: + print('ERROR: kmer present in Kcounter, but not in Counter') + continue + if counter[kmer] != count: + print('ERROR: count mismatch, Kcounter count:', count, 'Counter count:', counter[kmer], kmer) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description='Test Kcounter.') + parser.add_argument('sequence', type=str, default='./source.fa', + help='Path to a sequence file to test on') + + args = parser.parse_args() + + test_kcounter(args.sequence) diff --git a/scripts/test_counter_parallel.py b/scripts/test_counter_parallel.py new file mode 100644 index 0000000..2a0f91a --- /dev/null +++ b/scripts/test_counter_parallel.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python +import argparse + +from kcollections import Kcounter, Kset +from collections import Counter + +from Bio import SeqIO + +KMER_SIZE = 23 + +def get_kmers(seq, k=KMER_SIZE): + for i in range(len(seq) - k + 1): + kmer = str(seq[i:i + k]) + yield kmer + + +def test_kcounter(sequence): + kcounter = Kcounter(KMER_SIZE) + kc = Kcounter(KMER_SIZE) + kcounter.parallel_add_init(4) + counter = Counter() + tk = 'TGCCGGATGCGCTTTGCTTATCC' + with open(sequence, 'rU') as seq_fh: + for record in SeqIO.parse(seq_fh, 'fasta'): + kcounter.parallel_add_seq(str(record.seq)) + for kmer in get_kmers(record.seq): + counter[kmer] += 1 + kcounter.parallel_add_join() + + print(len(kcounter)) + + for kmer, count in counter.items(): + try: + if kmer not in kcounter: + print('ERROR: kmer present in Counter, but not in Kcounter {}'.format(kmer)) + continue + if kcounter[kmer] != count: + print('ERROR: count mismatch, Counter count:', count, 'Kcounter count:', kcounter[kmer], kmer) + except Exception as e: + print(e) + + + for kmer, count in kcounter.items(): + if kmer not in counter: + print('ERROR: kmer present in Kcounter, but not in Counter {}'.format(kmer)) + continue + if counter[kmer] != count: + print('ERROR: count mismatch, Kcounter count:', count, 'Counter count:', counter[kmer], kmer) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description='Test Kcounter.') + parser.add_argument('sequence', type=str, default='./source.fa', + help='Path to a sequence file to test on') + + args = parser.parse_args() + + test_kcounter(args.sequence) diff --git a/scripts/test_counter_seq.py b/scripts/test_counter_seq.py new file mode 100644 index 0000000..9bb40ef --- /dev/null +++ b/scripts/test_counter_seq.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python +import argparse + +from kcollections import Kcounter, Kset +from collections import Counter + +from Bio import SeqIO + +KMER_SIZE = 23 + +def get_kmers(seq, k=KMER_SIZE): + for i in range(len(seq) - k + 1): + kmer = str(seq[i:i + k]) + yield kmer + + +def test_kcounter(sequence): + kcounter = Kcounter(KMER_SIZE) + kc = Kcounter(KMER_SIZE) + counter = Counter() + tk = 'TGCCGGATGCGCTTTGCTTATCC' + with open(sequence, 'rU') as seq_fh: + for record in SeqIO.parse(seq_fh, 'fasta'): + kcounter.add_seq(str(record.seq)) + for idx, kmer in enumerate(get_kmers(record.seq)): + counter[kmer] += 1 + #print(idx, idx + KMER_SIZE, kmer) + + print(len(kcounter), len(counter)) + + for kmer, count in counter.items(): + try: + if kmer not in kcounter: + print('ERROR: kmer present in Counter, but not in Kcounter {}'.format(kmer)) + continue + if kcounter[kmer] != count: + print('ERROR: count mismatch, Counter count:', count, 'Kcounter count:', kcounter[kmer], kmer) + except Exception as e: + print(e) + + + for kmer, count in kcounter.items(): + if kmer not in counter: + print('ERROR: kmer present in Kcounter, but not in Counter {}'.format(kmer)) + continue + if counter[kmer] != count: + print('ERROR: count mismatch, Kcounter count:', count, 'Counter count:', counter[kmer], kmer) + print("done") + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description='Test Kcounter.') + parser.add_argument('sequence', type=str, default='./source.fa', + help='Path to a sequence file to test on') + + args = parser.parse_args() + + test_kcounter(args.sequence) diff --git a/scripts/test_counter_seq_ignore_n.py b/scripts/test_counter_seq_ignore_n.py new file mode 100644 index 0000000..a71ffc4 --- /dev/null +++ b/scripts/test_counter_seq_ignore_n.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python +import argparse + +from kcollections import Kcounter, Kset +from collections import Counter + +from Bio import SeqIO + +KMER_SIZE = 23 + +def get_kmers(seq, k=KMER_SIZE): + for i in range(len(seq) - k + 1): + kmer = str(seq[i:i + k]) + yield kmer + + +def test_kcounter(sequence): + kcounter = Kcounter(KMER_SIZE) + kc = Kcounter(KMER_SIZE) + counter = Counter() + tk = 'TGCCGGATGCGCTTTGCTTATCC' + with open(sequence, 'rU') as seq_fh: + for record in SeqIO.parse(seq_fh, 'fasta'): + kcounter.add_seq(str(record.seq)) + for idx, kmer in enumerate(get_kmers(record.seq)): + if 'N' in kmer: + continue + counter[kmer] += 1 + #print(idx, idx + KMER_SIZE, kmer) + + print(len(kcounter), len(counter)) + + for kmer, count in counter.items(): + try: + if kmer not in kcounter: + print('ERROR: kmer present in Counter, but not in Kcounter {}'.format(kmer)) + continue + if kcounter[kmer] != count: + print('ERROR: count mismatch, Counter count:', count, 'Kcounter count:', kcounter[kmer], kmer) + except Exception as e: + print(e) + + + for kmer, count in kcounter.items(): + if kmer not in counter: + print('ERROR: kmer present in Kcounter, but not in Counter {}'.format(kmer)) + continue + if counter[kmer] != count: + print('ERROR: count mismatch, Kcounter count:', count, 'Counter count:', counter[kmer], kmer) + print("done") + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description='Test Kcounter.') + parser.add_argument('sequence', type=str, default='./source.fa', + help='Path to a sequence file to test on') + + args = parser.parse_args() + + test_kcounter(args.sequence)